2011-07-22 9 views
4

Existe-t-il une implémentation du mécanisme des signaux et des slots pour l'envoi d'événements pour Delphi?L'implémentation des signaux et des slots dans Delphi?

+0

gestion des événements non-multidiffusion est intégré. Il est juste la partie multicast qui a besoin d'add-ons. –

+1

J'ai ajouté un mélange des méthodes suggérées à https://bitbucket.org/MX4399/multicast-events-using-generics – MX4399

Répondre

4

Recherche d'événements de multidiffusion. Il y a quelques implémentations là-bas, par ex.

Certains d'entre eux ont besoin de médicaments génériques, ce sont D> 2009 seulement.

+0

TApplicationEvents utilise aussi eventsink. –

+0

@Downvoter: J'ai essayé d'utiliser TApplicationEvents pour mes propres événements de multidiffusion une fois. Malheureusement, il est conçu principalement non réutilisable, comme la plupart des VCL. : -/ –

2

Si vous pouvez implémenter vous-même des événements multi-cast, ils ne sont pas directement pris en charge dans la langue contrairement à C# et VB.NET. Le manque de support linguistique rend toute tentative d'émulation d'événements multi-acteurs plutôt maladroite. Il est intéressant de noter que C++ ne prend pas en charge les signaux et les emplacements et que la solution Qt implique un processus supplémentaire dans la chaîne d'outils de compilation, le compilateur d'objets Meta.

+1

Plus important encore, * VCL * et * IDE * ne supportent pas * votre * implémentation d'événements multi-cast, rendant son utilisation maladroite. La langue telle qu'elle est peut être utilisée pour implémenter de jolis événements multi-cast, et même implémenter la chose "signaux and slots" sans inscription complète (en utilisant les attributs RTTI). En utilisant la surcharge de l'opérateur, vous pouvez presque faire fonctionner la syntaxe C#. –

0

J'ai passé un certain temps à faire fonctionner le code d'événement multicast d'Allen Bauer. Il a quelques limitations, mais fonctionne bien dans mon code. Vous pouvez voir le code here.

Bien sûr, il ne fonctionne que dans Delphi> 2009

Questions connexes