Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
Delphi 12 Athens
|
Re: Problem mit einer procedure (Action deklaration)
22. Nov 2009, 12:55
Im OnClose wird Dir Action als TCloseAction übergeben. In Deinem Code nicht (es ist ja nicht das OnClose-Ereignis), daher wird auf TForm.Action zugegriffen, das es ja auch automatisch als Property gibt. Dieses ist aber vom TYp TBasicAction, daher die Fehlermeldung. Wenn es diese Property nicht gäbe, hättest Du eine Fehlermeldung bekommen "Undefinierter Bezeichner: Action", dann wäre das Problem gar nicht erst aufgekommen.
[edit] Vielleicht etwas ausführlicher: das OnClose sähe ja so ausprocedure TDeinForm.FormClose(Sender: TObject; var Action: TCloseAction);
Wenn Du nun Action etwas zuweisen willst, wird der Parameter Action (also TCloseAction) herangezogen, wo caFree als Wert in Ordnung geht. In Deiner aufrufenden Methode gibt es diesen Parameter nicht, Action ist auch nicht als lokale Variable deklariert, also versucht Delphi, Action irgendwie aufzulösen und wird bei TForm fündig, welches eine Property Action besitzt. Diese Property ist aber nicht vom Typ TCloseAction, sondern vom Typ TBasicAction, was etwas ganz anderes ist. Hier ist eine Zuweisung von caFree nicht möglich, deshalb gibt Delphi eine Fehlermeldung aus. [/edit]
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|