Autor Beitrag
Heinz2k
Hält's aus hier
Beiträge: 2



BeitragVerfasst: So 02.02.03 15:06 
Hallo!

Ich habe eine Komponente erstellt, die bei einer Wertänderung ein selbst deklariertes OnChange-Ereignis (vom Typ TNotifyEvent) auslöst.

Diese Komponente wird dynamisch erzeugt, dem OnChange-Ereignis muss daher auch dynamisch die entsprechende Prozedur zugewiesen werden:

ausblenden Quelltext
1:
instanz.OnChange:=TMainform.UpdateValue;					


Hier kommt aber diese Fehlermeldung:
[Fehler] Unit1.pas(95): Inkompatible Typen: 'TNotifyEvent' und 'Procedure'


Die Prozedur UpdateValue ist folgendermassen deklariert:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
type
  TMainForm = class(TForm)
  ...
  private
    procedure UpdateValue(Sender: TObject);
  end;



Ich weiß echt nicht mehr weiter, vielleicht kann ja einer von euch meinen Tag retten?

Schönen Dank, Linus
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: So 02.02.03 15:14 
Hallo,

du brauchst eine Instanz der Prozedure. Bei der zuweisung:
ausblenden Quelltext
1:
instanz.OnChange:=TMainform.UpdateValue;					

versuchst du die Eigenschaft einer Klasse zuzuweisen, nicht die eines Objektes.
ausblenden Quelltext
1:
instanz.OnChange:=Mainform.UpdateValue;					

sollte hingegen funktionieren, da MainForm ein Objekt ist, und nicht nur die Klasse (wie tMainForm).

Gruß
Klabautermann
Heinz2k Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: So 02.02.03 15:27 
Geil! es geht!!!

Gibt es nicht irgendwo einen Füsseküss-Smilie?

Danke, Linus