![]() |
In das "OnPaint" eines TEdits einklinken
Hai ihr,
bei meiner letzen ![]() 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 12:28 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