Results 1 to 7 of 7

Thread: 'Multicast' event

  1. #1
    Konijnus Digitalus Bobo's Avatar
    Join Date
    Jul 2003
    Location
    Pernis
    Posts
    338

    'Multicast' event

    Voor een project op 't werk had ik een 'multicast' event nodig waarbij meerdere functies aangeroepen worden als het event afgaat. Het resultaat is te vinden in het attachment. Het is geen 'rocket science', maar misschien heeft iemand er wat aan..

    Een (niet bijzonder zinvol) voorbeeld van het gebruik ervan:

    Code:
    procedure TForm1.DoIets (const aData: array of const);
    begin
      ShowMessage ('DoeIets zegt : ' + aData[0].vPChar);
    end;
    
    procedure TForm1.DoNogIets(const aData: array of const);
    begin
      ShowMessage ('DoeNogIets zegt : ' + aData[0].vPChar);
    end;
    
    procedure TForm1.Test;
    var
      vEvent : TMultiEvent;
    begin
      vEvent := TMultiEvent.Create;
      try
        vEvent.RegisterHandler (DoIets);
        vEvent.RegisterHandler (DoNogIets);
        vEvent.TriggerEvent (['Hallo']);
      finally
        vEvent.Free;
      end;
    end;
    Het sneue aan het ding is uiteraard het verlies van je compile-time type-checking
    Attached Files Attached Files

  2. #2
    Die kan je weer gedeeltelijk terug winnen door niet array of const te gebruiken, maar een klasse. Overgens lijkt dit erg op een Observer Pattern.

    http://www.castle-cadenza.demon.co.uk/observe.htm
    http://www.delphi-jedi.org/Jedi:VOYP...45675#observer
    We adore chaos because we like to restore order - M.C. Escher

  3. #3
    Konijnus Digitalus Bobo's Avatar
    Join Date
    Jul 2003
    Location
    Pernis
    Posts
    338
    Ja, klopt. Maar dat heeft weer als nadeel dat alle 'consumenten' van het event van een zelfde basisklasse afgeleid dienen te worden terwijl er verder geen enkele relatie hoeft te zijn tussen deze consumenten (afgezien van het gebruik van het event). Misschien zou het nog beter zijn om een interface te laten registreren bedacht ik me net..

    Overigens bedankt voor de links!

  4. #4
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    Originally posted by Lord Larry
    Die kan je weer gedeeltelijk terug winnen door niet array of const te gebruiken, maar een klasse. Overgens lijkt dit erg op een Observer Pattern. ...
    Yup en yup!
    Nog beter met interfaces.
    All methodologies are based on fear. -- Kent Beck.

  5. #5
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    All methodologies are based on fear. -- Kent Beck.

  6. #6
    Ik heb ook ooit zo'n soort constructie gemaakt, maar dat werkte met messages. Een object kon zichzelf dus gewoon registreren of deregistreren en kreeg een message wanneer er iets interessants gebeurde. In feite natuurlijk een beetje hetzelfde systeem.
    1+1=b

  7. #7
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    Originally posted by GolezTrol
    ...In feite natuurlijk een beetje hetzelfde systeem
    Daarom is het een pattern.
    All methodologies are based on fear. -- Kent Beck.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Replies: 13
    Last Post: 11-Oct-04, 16:05
  2. Hook om buttonclicks op te vangen
    By cpri in forum Algemeen
    Replies: 10
    Last Post: 23-Jul-04, 16:17
  3. Nieuw event op basis van ander Event
    By jchompff in forum Algemeen
    Replies: 8
    Last Post: 06-Oct-03, 11:14
  4. Een event maken.
    By Kleine83 in forum Algemeen
    Replies: 2
    Last Post: 08-Aug-03, 22:35
  5. Replies: 33
    Last Post: 24-Jun-03, 00:17

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •