Opet sam negdje preskočio ili nisam dobro shvatio, a do sada nisam koristio na taj način.
Radi se o slijedećem:
Imam klasu / objekt koja se brine o nečemu (objektu korisnika - prijave, odjave, učitavanje podataka, pripadnost grupama, ser management, promjena lozinke i još dosta toga). Ta klasa ima jedan od eventa koji se zove
UserChanged složen klasičnom pričom: lokalno TNotifyEvent polje vezano na property i metoda kojom okidam lokalno polje.
Forme imaju metodu u kojoj nešto odrađujem kad nastupi event TKorisnik.userChanged. Ta metoda jeu konstruktoru forme vezana na event, s time da forma ima lokalno polje tipa TNotifyEvent u koje pospremam stari handle eventa,
u proceduri odradim preuzeti event i na kraju odradim ovaj "stari" preuzeti iz lokalne varijable principom OlduserChanged(Self);
I ostale forme (kojima je ova main forma gore owner) na isti način nadziru taj event (smisao je da promjena nekog parametra korisniku ili promjena korisnika odmah napravi promjene na izgledu i funkcionalnosti pootvaranih formi u TDI sučelju).
Problem je što sve radi, ali... samo sa jednom formom. Ako više od jedne forme/objekta handla event, bez obzira što se radi preusmjeravanje eventa tako da se upamti, odradi nešto svoje i proslijedi event dalje stvar ne funkcionira.
Još više me buni, što se event zakači za neku klasu, umjesto za instancu objekta. Primjerice postoji samo forma main, a event se poziva i skače i na neku klasu iz koje u tom trenutku uopće nije stvoren objekt (nije otvarana ta forma).
Ima li netko ideju ili riješenje, ne kužim gdje griješim i zašto više formi ne može funkcionirati ovako?
Edit: Znam da c# i .NET imaju multiple delegates iliti višestruki event handling, očito se multicast events ne može izvesti u Delphiju, nego treba posegnuti za nekom cakom tipa slanja windows messagea ili neka slična fora.
Ne mogu vjerovati da do ovoga nikad nisam došao, tj. nikad to zatrebao.
[Ovu poruku je menjao komplikator dana 12.01.2012. u 09:07 GMT+1]
God is real unless is declared as integer.