In das "OnPaint" eines TEdits einklinken
Hai ihr,
bei meiner letzen Frage hat Bernhard mir ja den Tipp gegeben mich in das OnPaint des TEdits einzuklinken. Jetzt gibt es das aber dort nicht. Wenn ich versuche mich so in die Paint-Message inzuhängen wird diese natürlich durch das Zeichnen meines Rahmens immer wieder ausgelösst.
Delphi-Quellcode:
Wie muss ich denn da ansetzen um mir im Paint des TEdits einen Rahmen um diesen zu zeichnen?
procedure TShExEdit.WMPaint(var Message: TWMPaint);
begin inherited; FUpdateColor; // Hier wird ein Rahmen gezeichnet end; |
Re: In das "OnPaint" eines TEdits einklinken
Hi Sharky,
also ich hab mal n bissl mit "deinen" Quellen rumgespielt. Und folgendes produziert. Die Methode hat jedoch einige Einschränkungen (siehe Kommentare) aber vielleicht ist es ein Denkanstoß
Delphi-Quellcode:
Die Methode geht nur wenn kein Manifest eingebunden wurde.
procedure TTUOEdit.CMEnter(var Message: TCMEnter);
begin inherited; self.Repaint; end; procedure TTUOEdit.CMExit(var Message: TCMExit); begin inherited; self.Visible:=False; //frag mich nicht, warum es nicht anders geht self.Visible:=True; //aber ein einfaches repaint oder invalidate reicht nicht //zugegeben, ich hab der sache auch nur 10 Minuten gewidmet end; procedure TTUOEdit.WMPaint(var Message: TWMPaint); begin inherited; if (self.Focused) then DrawControlRect((Self as TWinControl).Handle, clBlue); end; |
Re: In das "OnPaint" eines TEdits einklinken
Hai Marco,
danke für den Tipp. Jetzt scheint alles so zu laufen wie ich es möchte. Ich habe dein Visible True/False durch diesen Code ersetzt ung es geht:
Delphi-Quellcode:
procedure TShExTntEdit.DoExit;
begin inherited DoExit; Inherited Perform(CM_RECREATEWND, 0, 0); end; |
Re: In das "OnPaint" eines TEdits einklinken
CM_RECREATEWND .... wunderbar... danach hatte ich gesucht :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 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