Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Event Liste ("TEventList") (https://www.delphipraxis.net/77442-event-liste-teventlist.html)

igel457 19. Sep 2006 17:32


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:

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;
Leider funktioniert dieser Code nicht. An der mit dem Pfeil makierten Stelle meckert er "Nicht genügend wirkliche Parameter".

Außerdem kommt die selbe Fehlermeldung, wenn ich ein Event einfügen möchte:
Delphi-Quellcode:
  AList.Add(OnPush);
Ich kenne mich leider mit Events nicht so richtig aus, garantiert ist die Lösung ganz einfach.

Danke für eure Hilfe,
igel457

igel457 19. Sep 2006 18:04

Re: Event Liste ("TEventList")
 
Ich galaube, ich habe die Lösung doch noch gefunden:
http://www.swissdelphicenter.ch/torr...ode.php?id=959

So eine Liste wäre vieleicht auch was für die CodeLib...

r2c2 19. Sep 2006 18:50

Re: Event Liste ("TEventList")
 
Zitat:

Zitat von igel457
Ich galaube, ich habe die Lösung doch noch gefunden:
http://www.swissdelphicenter.ch/torr...ode.php?id=959

Wobei da deine Lösung von der Umsetzung her deutlich besser ist. Alles in Button<sionstwas>Click zu packen is nicht gerade schön und alles andere als OOP.

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

igel457 19. Sep 2006 18:52

Re: Event Liste ("TEventList")
 
Em... :oops:
Ist schon gelöst. Siehe http://www.delphipraxis.net/internal...ct.php?t=92684

[Edit]Ist aber richtig, was du gesagt hast. So gehts![/Edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz