![]() |
RichEdit Hintergrundfarbe ändern klappt nicht??
Hallo Forum,
diesmal mit einem (wahrscheinlich) gaaanz dummen Fehler... Irgendwie kann ich bei mir die Hintergrundfarbe bei einem RichEdit nicht ändern... Hier mal der Quelltext:
Delphi-Quellcode:
Ich hab auch
uses ...RichEdit;
var Hintergrundfarbe: TColor; Formatierung: TCharFormat2; procedure TEditor.GelbExecute(Sender: TObject); begin Hintergrundfarbe := clYellow; TexthervorhebungsfarbeExecute(Gelb); end; procedure TEditor.HellgrünExecute(Sender: TObject); begin Hintergrundfarbe := clLime; TexthervorhebungsfarbeExecute(Hellgrün); end; ... procedure TEditor.TexthervorhebungsfarbeExecute(Sender: TObject); begin Formatierung.cbSize := SizeOf(Formatierung); Formatierung.dwMask := Formatierung.dwMask or CFM_BACKCOLOR; Formatierung.crBackColor := Hintergrundfarbe; SendMessage(Text.Handle, EM_SETCHARFORMAT, SCF_SELECTION, LongInt(@Formatierung)); end; ![]() |
AW: RichEdit Hintergrundfarbe ändern klappt nicht??
In einem kurzen Test hat das hier zumindest bei mir funktioniert:
Delphi-Quellcode:
var
Formatierung: TCharFormat2; begin Formatierung.cbSize := SizeOf(Formatierung); SendMessage(RichEdit1.Handle, EM_GETCHARFORMAT, SCF_SELECTION, LongInt(@Formatierung)); Formatierung.dwMask := Formatierung.dwMask or CFM_BACKCOLOR; Formatierung.dwEffects := Formatierung.dwEffects and not CFE_AUTOBACKCOLOR; Formatierung.crBackColor := clRed; SendMessage(RichEdit1.Handle, EM_SETCHARFORMAT, SCF_SELECTION, LongInt(@Formatierung)); end; |
AW: RichEdit Hintergrundfarbe ändern klappt nicht??
Okay ich weiß zwar nicht wieso es voher geklappt hat, aber mit dem Zusatz von
Delphi-Quellcode:
klappt es jetzt...
Formatierung.dwEffects := Formatierung.dwEffects and not CFE_AUTOBACKCOLOR;
Danke :thumb: |
AW: RichEdit Hintergrundfarbe ändern klappt nicht??
Das steht im MSDN zur CHARFORMAT2-Struktur:
Zitat:
|
AW: RichEdit Hintergrundfarbe ändern klappt nicht??
Ja hab ich nicht dran gedacht, weil es komischerweise vorher ohne funktioniert hat...
|
AW: RichEdit Hintergrundfarbe ändern klappt nicht??
Dann war das Flag wohl vorher nicht gesetzt. Ich denke aber, dass man mit der Vorgehensweise
- aktuelle Formatierung ermitteln - manipulieren - zurückschreiben am besten fährt, wie man hier sieht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz