Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Im Memo die Farbe einer Zeile ändern (https://www.delphipraxis.net/8550-im-memo-die-farbe-einer-zeile-aendern.html)

nailor 7. Sep 2003 17:34


Im Memo die Farbe einer Zeile ändern
 
Ich habe ja gelernt: neue Frage, neues Topic. Es gab zwar schon Typen, die die Schriftfarbe ändern wollten, aber ich will die Hintergrundfarbe ändern (so wie zum Beispiel bei Breakpoints beim Delphi-Editor). Muss kein Memo sein, darf auch ein RichEdit o.ä. sein.

fkerber 7. Sep 2003 18:49

Re: Im Memo die Farbe einer Zeile ändern
 
Hi!

Ich denke, dass müsste dir helfen:

http://www.swissdelphicenter.ch/de/showcode.php?id=1438
Allerdings brauchst du dafür Richedit 2.0; vielleicht hilft es dir ja trotzdem!


ciao fkerber

nailor 7. Sep 2003 19:05

Re: Im Memo die Farbe einer Zeile ändern
 
was wo wie? richedit 2.0????

Luckie 7. Sep 2003 19:07

Re: Im Memo die Farbe einer Zeile ändern
 
TRichEdit.

nailor 7. Sep 2003 19:14

Re: Im Memo die Farbe einer Zeile ändern
 
Ja, klappt. Aber ich kann damit nur den markierten Text färben. Ich will ganze, nicht markierte, Zeilen färben. Die extra zwischenzeitlich markieren, ist ja wohl nicht das Gelbe vom Ei! Und da das ganze irgendwie über WindowsMessages grht, ist ein Analogieschluss nicht ganz so simpel!

Luckie 7. Sep 2003 19:52

Re: Im Memo die Farbe einer Zeile ändern
 
Und jetzt das ganze bitte noch mal auf deutsch. :roll:

nailor 7. Sep 2003 19:56

Re: Im Memo die Farbe einer Zeile ändern
 
Also: Der Code färbt wunderbar DAS, was markiert ist. Ich einfach über die Angabe der Zeilennummer färben, ohne diese erst zu markieren, und dann das markierte zu färben. Das ist mir aber nicht möglich, da irgendwelche WindowsMessages verwendet werden, bei denen ich nicht erraten kann, wie ich den Wert ändern soll, wenn ich nicht den markierten Text, sondern z.b. Zeile 142 färben will.

Hoffe, man versteht mich. :freak:

Keldorn 7. Sep 2003 21:12

Re: Im Memo die Farbe einer Zeile ändern
 
Hallo
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
Var i:integer;
    CharRange: TCharRange;
    Zeile:integer;
begin
  Zeile:=3; //jetz hier nur zum testen
  with richedit1 do
    begin
      //angegebene Zeile markieren
      charrange.cpMin:=SendMessage(Handle, EM_LINEINDEX, Zeile, 0);
      charrange.cpmax:=charrange.cpMin+length(Lines[Zeile]);
      SendMessage(Handle, EM_EXSETSEL, 0, LongInt(@CharRange));

      SelAttributes.Color:=clblue;//oder hier halt die Proc von Swissedelphi-center ansetzen
      SelLength:=0;//markierung aufheben
    end;
end;
mit sendmessage und PdsK etc. habe ich noch nicht so viel am hut, wenn es auch anders geht dann herdamit :)

Mfg Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz