Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Schrift...


opfer.der.genauigkeit - Di 24.09.02 15:16
Titel: Schrift...
In einer RichEditKomponente soll:
- wenn eine Zeile markiert worden ist über einen Button die Hintergrundfarbe nur für diese Zeile geändert werden.
(siehe Word: Hervorheben)

Wie kann ich das simpel schaffen?
Sagt jetzt bitte nicht "steht in der Hilfe" ich finds nicht sonst würd ich es nicht posten. :puke:

Ok soweit dann noch danke.


DeCodeGuru - Di 24.09.02 15:46

Zitat:
Sagt jetzt bitte nicht "steht in der Hilfe" ich finds nicht sonst würd ich es nicht posten. :puke:


Dann helfe ich jetzt mal beim Suchen :mrgreen:
Nein, pass auf, geh mal in die Delphid-Hilfe und such dort mal unter TRichEdit nach SelStart, SelLength und SelAttributes. SelStart stellt die Anfangsposition der "Hervorhebung" dar und SelLength die Länge des zu makierenden Textes. In SelAttributes kannste dann die Hervorhebung einstellen.

Zum Vorgehen: Du setzt SelStart auf die Position des ersten Zeichens in deiner Zeile, dann stellst du SelLength auf die Länge der Zeile ein. Schließlich musst du nur noch die Attribute einstellen. Probier mal etwas rum. Mit der Delphi-Hilfe zusammen, bekommst du das hin.

Wenn nicht, frag nochmal.


Sven - Di 24.09.02 15:48

Die meinem Button hinterlegte Funktion sieht so aus:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TMainForm.RichEditBackCol1Execute(Sender: TObject);
var
  Child: TForm;
begin
  dlgColor.ShowModal;
  Child := MainForm.ActiveMDIChild;
  if Child = nil then exit;
  with (Child as TMDIChild) do
    Editor.SelAttributes.BackColor := dlgColor.Color;
end;


Editor ist bei mir übrigens ein TRxRichEdit. Bezogen auf die Hintergrundfarbe des Textes dürfte dies aber keine Rolle spielen.
Ich hoffe es hilft. :P