Moin,
irgendwie seh ich zur Zeit den Wald vor lauter Bäumen nicht mehr. Ich geb euch erstmal die nötigen Quelltexte:
Rezepteklasse
1: 2: 3: 4: 5: 6: 7: 8: 9:
| type TListAdEvent = procedure(AName, ALastChange:String; AOK: Boolean);
TRezeptverwaltung = class private FAdToList: TListAdEvent; procedure SetAdToList(const Value: TListAdEvent); public property AdToList: TListAdEvent read FAdToList write SetAdToList; |
Das sollte erstmal klar sein. Jetzt will ich beim FormCreate der Form1 eine eigene Prozedur zuweisen. Wie muss ich die Prozedur denn deklarieren?
Ich habe es leider erfolglos so probiert:
Hauptform
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| type TMainForm = class(TForm)
private procedure ZurListeHinzufuegen(AName, ALastChange:String; AOK: Boolean);
procedure TMainForm.FormCreate(Sender: TObject); begin Rezepte := TRezeptverwaltung.Create(Application.ExeName); Rezepte.AdToList := ZurListeHinzufuegen; end; |
Ich wollte das eben so wie bei einem NotifyEvent machen, will aber nicht. Da kommt folgende Fehlermeldung:
Zitat: |
[Pascal Fehler] fMain.pas(189): E2009 Inkompatible Typen: 'Reguläre Prozedur und Methodenzeiger' |
Wie muss es richtig gemacht werden? Würde mich über eine ausführliche Beschreibung freuen, warum das mit TNotifyEvent funktioniert, aber nicht mit meiner eigenen Prozedur.
MfG
Regan