![]() |
Event Liste ("TEventList")
Hallo,
ich möchte eine Liste erstellen, in die man mehrere Events einfügen kann. Ich habe mir folgendes überlegt:
Delphi-Quellcode:
Leider funktioniert dieser Code nicht. An der mit dem Pfeil makierten Stelle meckert er "Nicht genügend wirkliche Parameter".type TPushEvent = procedure(ALua:Lua_State;ASender:TObject;ATable:integer); type TPushEventList = class(TList) private function GetItem(AIndex:integer):TPushEvent; procedure SetItem(AIndex:integer;AItem:TPushEvent); protected public property Items[AIndex:integer]:TPushEvent read GetItem write SetItem;default; published end; { TPushEventList } function TPushEventList.GetItem(AIndex:integer):TPushEvent; begin result := inherited Items[AIndex]; end; procedure TPushEventList.SetItem(AIndex:integer;AItem:TPushEvent); begin inherited Items[AIndex] := AItem; <--- end; Außerdem kommt die selbe Fehlermeldung, wenn ich ein Event einfügen möchte:
Delphi-Quellcode:
Ich kenne mich leider mit Events nicht so richtig aus, garantiert ist die Lösung ganz einfach.
AList.Add(OnPush);
Danke für eure Hilfe, igel457 |
Re: Event Liste ("TEventList")
Ich galaube, ich habe die Lösung doch noch gefunden:
![]() So eine Liste wäre vieleicht auch was für die CodeLib... |
Re: Event Liste ("TEventList")
Zitat:
IMHO fehlen bei dir nur die @s... Du willst ja die Adresse... TNotifyEvent is IMHO nix anderes, als n record mit nem Pointer auf den Code samt Zusatzinfos. Da ohne @ Delphi davon ausgeht, dass du die Funktion aufrufebn willst, musst du das @ davorschreiben, damit die Adresse der Prozedur bzw. des dazugehörigen Records verwendet wird...nicht zutreffendes bitte korrigieren mfg Christian |
Re: Event Liste ("TEventList")
Em... :oops:
Ist schon gelöst. Siehe ![]() [Edit]Ist aber richtig, was du gesagt hast. So gehts![/Edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz