Autor Beitrag
icolo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Di 18.03.03 21:49 
hiho

Ich mache gerade meine ersten Schritte in der Komponentenentwicklung. Mein erstes Problem: Ich möchte verschiedene Ereignisse meiner abgeleiteten TEdit bearbeiten, also bestimmen, was gemacht wird, wenn zum Beispiel der Benutzer das Edit fokussiert (OnEnter). Ich hab da was probiert (mit Hilfe des Internets und ein wenig Kreativität ;)), doch es funktioniert nicht wirklich...

Vielleicht könnte mir jemand sagen, was ich falsch mache:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
type
  TCommentedEdit = class(TEdit)
  protected
    { Protected declarations }
    procedure Enter; override;

implementation

procedure TCommentedEdit.Enter;
begin
   inherited;
   if (text = Comment) and (font.color = CommentColor) then
   begin
      text := '';
      font.Color := OrigColor;
   end;
end;
end.

Alles Weitere wie nötige Variablendeklarationen, constructor, usw hab ich jetzt nicht kopiert, aber natürlich hab ich das.

Der Compiler jammert, "[Error] CommentedEdit.pas(20): Method 'Enter' not found in base class", woraus ich schliesse, dass diese Methode anders heisst. Mit OnEnter hab ich's schon versucht, ohne Erfolg.
Bin ich auf dem richtigen Weg oder bringt das nichts, was ich gemacht habe?

Ich danke herzlichst für Hilfe.

greets, icolo
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Mi 19.03.03 00:36 
hallo,

mach mal folgendes

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
protected
  procedure myOnEnter(Sender: TObject);

...

constructor create;
begin
  inherited;
  OnEnter := myOnEnter;
...


Gruß
ken
LarsMiddendorf
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mi 19.03.03 11:19 
Das erste Beispiel war schon richtig. Nur statt Enter heißt die Methode DoEnter.
icolo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Mi 19.03.03 18:18 
Wunderbar! Es klappt. Kann man die Namen dieser Methoden irgendwo nachschlagen? Ich hab sie nirgends in der Dokumentation gefunden.

Nun folgt die nächste Frage:

Ich möchte, wenn in meinem abgeleiteten TEdit die Schriftfarbe verändert wird, eine von mir implementierte Prozedur ausgeführt wird. In der Unit StdCtrls, wo TEdit definiert ist, ist nichts dergleichen, was ich (wie oben) überschreiben könnte.

Kann mich da mal jemand aufklären? Danke!

greets, icolor