AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Ergänzung zu "Events in einer Liste"
Thema durchsuchen
Ansicht
Themen-Optionen

Ergänzung zu "Events in einer Liste"

Ein Thema von igel457 · begonnen am 30. Dez 2006 · letzter Beitrag vom 29. Mär 2007
 
Benutzerbild von Shivan
Shivan

Registriert seit: 5. Mär 2003
Ort: Ravensburg
131 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Ergänzung zu "Events in einer Liste"

  Alt 27. Mär 2007, 22:18
Zitat von igel457:
Was du vorschlägst geht aus einem ganz einfachen Grund nicht: TMyEvent oder auch TNotifyEvent ist ein Record des Typs TMethod und keine Klasse.
Dann wäre ein Schritt, alle TMyEvent's durch TMethod zu ersetzen. Jedoch ob dann die Übergabe der jeweiligen Methoden so klappt? Wahrscheinlich noch hart als TMethod casten im "Add". Werd ich morgen mal probieren. Weil hab eben den Fall, dass ich ein Eventhandling nicht mit Hilfe einer Eventchain lösen möchte, da ich nur an manchen Stellen auf das Event reagieren möchte und mit der klassischen Eventchain beim Entfernen in falscher Reihenfolge ein Problem entstehen wird...

Ich meinte, bei .net oder java oder so gibts doch schon so Eventhandler? Oder lieg ich da falsch... deswegen wollte ich sowas nun auch in Delphi mal verwenden, weil die Idee des Eventhandlers im Gegensatz zur Eventchain eben doch einiges besser ist

Zitat von Der_Unwissende:
...kann man das ganze auch mit Interfaces oder Abstrakten Klassen realisieren. Hier würdest Du dann eben ein Interface oder ein Objekt übergeben (also den Verweis darauf), statt den Zeiger auf eine Methode.
Dennoch müsste ich dort ja ein Property TMethod übergeben, um es verwenden zu können. Oder für jeden Event-Typ eine eigene kleine Klasse, die dann den Aufruf des Ereignisses implementiert, erstellen. Oder hab ich da was falsch verstanden?

Zitat von Der_Unwissende:
Alternativ kannst Du auch noch ein Array of Const als Argument der Methode angeben. Damit wäre es dann möglich, dass Du beliebige Argumente übergibst (müssten Variante Typen sein), allerdings dürfte es das Prüfen auf Korrektheit doch etwas erschweren.
Damit ließen sich dann aber die aktuellen Eventhandler-Methoden nicht so einfach in dem Eventhandler registrieren sondern müssten groß überarbeitet werden.... zumindest hört sich das so an


Mein Ziel war eigentlich sozusagen bspw. ich hab ein TNotifyEvent oder sonstige Events wovon Prozeduren implementiert wurden die im Moment 1:1 auf das Ereignis der jeweiligen Klasse (OnXY) gesetzt werden können... und dort eben statt 1:1 --> 1:n anzulegen
Delphi-Quellcode:
procedure myClass.OnBlubKlick(Sender: TObject);
begin
   //blabla
end;

procedure myClass.OnDingsKlick(Sender: TObject);
begin
  //nochmalwas
end;

procedure myClass.RegisterEventHandlerProcedures;
begin
  m_EventHandler.Register(OnDingsKlick);
  m_EventHandler.Register(OnBlubKlick);
end;

procedure myClass.InvokeEventhandler;
var
  i: Integer;
begin
  for i := 0 to m_EventHandler.Count - 1 do
    TNotifyEvent(m_EventHandler.Items[i])(self);
end;
So in der Art dachte ich mir das von der Anwendung her...

Im Moment denk ich, dass die einzige Lösung wirklich mit TMethod sein dürfte...
TMethod ist ein record mit 2 Eigenschaften Data und Code - richtig?

Naja morgen früh gehts weiter mit TMethod-Versuchen.
Markus Stein
 
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:01 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