Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - RichEdit - Problem
mambo - Mo 22.03.04 14:51
Titel: RichEdit - Problem
Ich füge in meinem Programm in einen RichEdit eine Textzeile ein und möchte diesen Text z.B. in rot schreiben:
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:
| var iSize: Integer; cColor: TColor; begin
with RichEdit do begin
Lines.Add(strText);
pLine := SendMessage(Handle, EM_LINEFROMCHAR, SelStart, 0); SelStart := Perform(EM_LINEINDEX, pLine - 1, 0);
SelStart := Perform(EM_LINEINDEX, pLine - 1, 0); SelLength := Length(strText); SelAttributes.Color := cColor; SelAttributes.Size := iSize;
Perform(EM_SCROLLCARET, 0, 0);
end; |
So weit, so gut. Nur, wenn der Text so lang ist, dass er umgebrochen wird (WordWrap=True), d.h. also teilweise im RichEdit in eine neue Zeile kommt, dann funktioniert meine Prozedur nicht mehr. Nur die letzte Zeile wird dann rot geschrieben. Wie kann ich z.B. auf das SelStart kommen, indem ich die letzte Stelle MINUS die Länge des strText nehme ? Wäre doch einfacher als mit dem ganzen EM_LINEINDEX-Zeug, oder ? Ich weiß nur nicht wie ?
Oder hat jemand sonst noch eine Idee ?
Danke inzwischen
Heinz
Moderiert von
Peter Lustig: Code- durch Delphi-Tags ersetzt
Udontknow - Di 23.03.04 12:13
Hallo!
Schmeiss das mit dem Perform raus; Setze doch einfach Selstart auf die Anzahl der im Richedit enthaltenen Zeichen vor dem Einfügen der Linie.
Cu,
Udontknow
SuperS - Mi 24.03.04 20:21
Ich hab da ne Idee, aber weiß nicht ob sie dir gefällt:
also
du erstellst ein Memo und tippst deinen Text in das memo ein.
Dann stellst du im Objektinspektor Visible auf false.
Erstelle eine ColorBox und stelle (ich weiß nicht genau wie das heißt) standartColor auf die gewünschte Farbe sodass sie angezeigt wird.
Den Wert True von Visible der ColorBox stellst du auf false.
Jetzt erstelle einen Button und mach ein OnClick-Ereigniss:
procedure TForm1.Button...
begin
Memo1.Text.Color:=ColorBox1.selected;
end;
Wenn was nicht stimmt sags mir.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!