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 TEdit ableiten und OnEnter überschreiben (https://www.delphipraxis.net/12697-tedit-ableiten-und-onenter-ueberschreiben.html)

migi 2. Dez 2003 16:12


TEdit ableiten und OnEnter überschreiben
 
Hallo,

ich möchte eine EditKomponente, die ihre Farbe dann ändert wenn der Cursor in ihr aktiv ist. Dazu hätte ich gern TEdit abgeleitet, eine Eigenschaft hinzugefügt, die im Objektinspektor veränderbar ist und vom Typ TColor ist (funktioniert wunderbar!) und schließlich die beiden Ereignisse OnEnter und OnExit überschrieben (override ... dann inherited) und darin einfach die Eigenschaf Color von TEdit geändert. So weit die Theorie. Nun sind aber OnEnter und OnExit keine Proceduren bzw. Funktionen sondern vom Typ TNotifyEvent.
Wie kann ich mein Vorhaben trotzdem realiseren? Bin ich total auf dem Holzweg? Bitte helft mir...


Grüße

Michael

scp 2. Dez 2003 17:46

Re: TEdit ableiten und OnEnter überschreiben
 
Überschreib am besten folgende:

Delphi-Quellcode:
    procedure CMEnter(var Message: TCMEnter); message CM_ENTER;
    procedure CMExit(var Message: TCMExit); message CM_EXIT;
Ansonsten wie dz gesagt hast: override ... dann inherited.

migi 3. Dez 2003 07:35

Re: TEdit ableiten und OnEnter überschreiben
 
Hallo scp,

vielen Dank für deine Antwort. Wenn ich dann noch folgende Proceduren hinzufüge, funktioniert es wie gewollt.

Delphi-Quellcode:
constructor TGRIPSEdit.Create(AOwner: TComponent);
begin
  inherited;
  inherited OnExit := NewOnExit;
  inherited OnEnter:= NewOnEnter;

end;

procedure TGRIPSEdit.NewOnEnter(Sender: TObject);
begin
   color := clHighlightColor;
   if Assigned(fOnEnter) then fOnEnter(Sender);
end;

procedure TGRIPSEdit.NewOnExit(Sender: TObject);
begin
   color := clNormalColor;
   if Assigned(fOnExit) then fOnExit(Sender);
end;
..Natürlich mit entsprechender Deklaration.

Grüße

Michael


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:35 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