![]() |
TRichEdit transparent bzw. mit Hintergrund
Hi!
Ich habe schon viel herumgesucht, nur nichts hilfreiches gefunden. Ich möchte das TRichEdit auch nicht auf ein Bild kopieren und dort den Hintergrund einblenden, weil ich gerne das markieren etc. behalten würde. Ich habe probiert die Message WM_ERASEBKGND abzufangen und dort den Hintergrund zu zeichnen, dann sieht man nur die aktuelle Zeile, und die auch mit schwarzem Hintergrund. Auch die Message WM_PAINT hat mir nicht weitergeholfen Habt ihr noch eine Idee oder auch eine andere Komponente? Ich brauche das RichEdit eigentlich nur zum Anzeigen, markieren sollte aber trotzdem möglich sein. Eine Möglichkeit wäre noch TWebBrowser bzw. TMozillaBrowser (ich glaube so heißt die FireFox-Kompo) zu verwenden, aber das würde das Programm wieder unnötig aufblasen... LG, ich |
Re: TRichEdit transparent bzw. mit Hintergrund
Es sollte mit einer RichEdit-Komponente funktionieren, die Version 3 oder höher unterstützt (z.B. das TJvRichEdit von den Jedis). Davon musst du eine eigene Klasse ableiten und dort in der Methode CreateParams das Bit WS_EX_TRANSPARENT hinzufügen:
Delphi-Quellcode:
Danach sollte das RichEdit einen transparenten Hintergrund haben.
TJvRichEdit_Transparent.CreateParams(var Params: TCreateParams);
begin inherited CreateParams(Params); Params.ExStyle := Params.ExStyle or WS_EX_TRANSPARENT; end; |
Re: TRichEdit transparent bzw. mit Hintergrund
Danke mal, aber irgendwie wills bei mir nicht. Es zeigt das RichEdit zwar an, aber nicht transparent. Frage dazu - müsste das dann nicht auch mit setWindowLong und GWL_EXSTYLE gehen?
LG, ich |
Re: TRichEdit transparent bzw. mit Hintergrund
Liste der Anhänge anzeigen (Anzahl: 1)
Zu deiner Frage: es kann sein, muss aber nicht. Meine Vermutung ist, dass das RichEdit-Control die Bits nur in WM_CREATE auswertet und danach nicht mehr.
Zur Transparenz: bei mir funktionierts - allerdings mit einer komplett eigenen Komponente und nicht TJvRichEdit. Ggf. musst du noch WM_ERASEBKGND abfangen und einfach 1 zurückliefern:
Delphi-Quellcode:
Das angehängte Bild zeigt einen völlig sinnlosen Text in einem transparent RichEdit-Control. Kleines Problem sind nur die Scrollbars, die stellenweise nicht neu gezeichnet werden.
procedure TJvRichEdit_Transparent.WMEraseBkgnd(var Msg: TWMEraseBkgnd);
begin Msg.Result := 1; end; |
Re: TRichEdit transparent bzw. mit Hintergrund
Hi,
oder nimm das JvRichEdit. Da kannst du ein Hintergrundbild festlegen. Florian |
Re: TRichEdit transparent bzw. mit Hintergrund
Ist mir irgendwie nicht aufgefallen - mit welcher Eigenschaft? Oder als Objekt? - Geht es dann auch "fixed"?
LG, ich |
Re: TRichEdit transparent bzw. mit Hintergrund
Zitat:
Florian |
Re: TRichEdit transparent bzw. mit Hintergrund
Gibts aber nicht - zumindestens nicht bei mir...
LG, ich |
Re: TRichEdit transparent bzw. mit Hintergrund
Seltsam ... ich bin mir sicher, dass ich eine solche Eigenschaft mal bei einer RichEdit ähnlichen Komponente in den Jedis gesehen habe. Hast du die neuste Version?
|
Re: TRichEdit transparent bzw. mit Hintergrund
Ich habe Version 3.10...
LG, ich PS: Entschuldige, wenn ich in nächster Zeit nicht antworte, ich habe nicht unbedingt dann Zeit. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 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 by Thomas Breitkreuz