Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Events hooken + chainen (https://www.delphipraxis.net/193878-events-hooken-chainen.html)

TigerLilly 19. Sep 2017 07:19

Events hooken + chainen
 
Hi + danke für jede Info!

Ich durchforste meine Codebase + finde viele Sachen, die schon recht in die Jahre gekommen sind + die jetzt den neuen Delphi Versionen eleganter gelöst werden können bzw Eingang in diverse Libraries gefunden haben. Bei manchen Sachen weiß ich das aber nicht, ob es da schon was Kluges gibt:

Ich möchte fallweise einen Event hooken und dessen Aufruf mit dem ursprünglichen verbinden.
Also dieses:
OldEvent:=Form.OnResize;
Form.Onresize:=MyEvent;

Und MyEvent ruft dann OldEvent auf etc.

Ich würde gerne einen Aufruf dieser Art haben:
ChainEvent(Form.OnResize,MyEvent);

Gibt es da schon irgendetwas?

Danke!

jaenicke 19. Sep 2017 09:18

AW: Events hooken + chainen
 
Sinnvoller wäre eine saubere Kapselung, die dann bei Bedarf auch z.B. generische Multicastevents anbieten kann.

Direkt von verschiedenen Stellen auf ein GUI-Event zugreifen zu wollen riecht nach zu starker Koppelung der Business Logik mit der GUI.

TigerLilly 19. Sep 2017 11:47

AW: Events hooken + chainen
 
Womit du natürlich völlig recht hast + meine Frage nicht beantwortest hast. :-D

mkinzler 19. Sep 2017 17:20

AW: Events hooken + chainen
 
https://github.com/spinettaro/delphi-event-bus

jaenicke 19. Sep 2017 18:11

AW: Events hooken + chainen
 
Es gibt diverse Multicast Event Implementierungen, aber eben keine, die direkt auf die regulären GUI-Events aufsetzen. Denn das geht eben nicht sauber.

Deshalb ist die Lösung eben eine Kapselung, die die Events nach außen als Multicast anbietet. Da reicht im Zweifelsfall eine generische Liste mit dem Eventtyp.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 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