Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Višestruko handlanje eventa

[es] :: Pascal / Delphi / Kylix :: Višestruko handlanje eventa

[ Pregleda: 1277 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

komplikator
Programer / sys. inženjering
CRO

Član broj: 29755
Poruke: 158
78.134.138.*

ICQ: 13387003


+8 Profil

icon Višestruko handlanje eventa12.01.2012. u 07:19 - pre 149 meseci
Pozdrav, ekipa, evo mene sa tjednim pitanjem iz OOP.
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.
 
Odgovor na temu

komplikator
Programer / sys. inženjering
CRO

Član broj: 29755
Poruke: 158
78.134.138.*

ICQ: 13387003


+8 Profil

icon Re: Višestruko handlanje eventa12.01.2012. u 09:31 - pre 149 meseci
Molim moderatore da obrišu ili zatvore temu. Našao sam rješenje u obliku eventa koji predstavlja objekt (koji pak sadrži listu proceduralnih tipova) koji se izvršavaju.
Dok se sve složi i upotrjebi dobro srukturiranje klasa i malo polimorfizma sve skupa čak dobro izgleda.
God is real unless is declared as integer.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Višestruko handlanje eventa

[ Pregleda: 1277 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.