Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Zeile mit dem Index i färben (TRichEdit)


rafi@work - Fr 10.12.04 11:29
Titel: Zeile mit dem Index i färben (TRichEdit)
Hallo!

Gibt es ein property für die TRichEdit Komponente, wo ich sagen kann, dass die Buchstaben der Zeile i gefärbt werden sollen. Und wie heisst diese?

Ich möchte die Buchstaben der Zeile ändern, in der ein eine zahl von 0..9 an erster Zeile vorkommt.
Habe da mal schnell was geschrieben, wie ichs machen würde.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
procedure TFormMain.Button3Click(Sender: TObject);
var
  i : Integer;
  StartChar : Char;
begin
  //Zeile für Zeile durchlaufen
  for i := 0 to RichEdit1.Lines.count-1 do
  begin
    // Erstes Zeichen der aktuellen Zeile ermitteln 
    StartChar := RichEdit1.Lines[i][1];
    
    //Ist das erste Zeichen eine Zahl? 
    If StartChar in ['0'..'9'then
    begin
      //Juppi das erste Zeichen ist eine Zahl! Jezt Buchstaben der Zeile i färben.
      //Hier vermisse ich ein property der TRichEdit
      //wo ich die Buchstaben der Zeile i färben kann.
      //Also irgendwie so etwas:   
      RichEdit1.Lines[i].colour := clBlue;
    end
    else
    begin
      //Wenn das erste Zeichen keine Zahl ist, dann Zeile grün färben.
      //Aber eben, so etwas konnte ich leider nicht finden. 
      RichEdit1.Lines[i].colour := clGreen;
    end;  
  end;
end;


:roll:

gruss


rafi@work - Fr 10.12.04 13:35

weiss niemand eine Lösung? gibt es überhaupt eine Lösung dafür?
Wäre toll wenn sich jemand melden würde.

Gruss


bug0815 - Fr 10.12.04 13:37

Hallo,

die Richedit Componente ist an der Stelle leider nicht so flexibel.

Du kannst den betroffenen Bereich aber selektieren und dann über .SelAttributes entsprechend formatieren. (Farbe, Schriftart, ...)

Die Delphi Hilfe kann Dir an der Stelle sicher noch weiterhelfen. (SelStart, SelLength, SelAttributes)


rafi@work - Fr 10.12.04 13:53

danke. kenne diese propertys. und werde es jetzt auch so machen, da es das was ich geschrieben habe nicht gibt. ist zwar umständlich, aber ich habe ja keine andere Wahl.

Gruss