Hallo,
was ist in einem Programm mit mehreren Fenstern besser (und warum!):
Eine Event-Schleife fürs ganze Programm oder eine Event-Schleife pro Fenster (oder noch was anderes)?
Hängt das davon ab, ob ein Fenster modal ist?
Gruß, Little John
Eventverarbeitung mit mehreren Fenstern
Das geht pro Thread.
Wenn dein Hauptthread mehrere Fenster verwaltet, ist eine Schleife besser. Du kannst ja jederzeit mit EventWindow() prüfen, zu welchem Fenster das Ereignis gehört. DU prüfst ja schließlich mit EventGadget() auch, zu welchem Gadget das Ereignis gehört und hast nicht für jedes Gadget eine eigene Art Schleife.
Da aber jeder Thread sein eigenes Fensterhandling hat, muss bzw. sollte jeder Thread für sich seine eigenen Fenster verwalten, deswegen mein Einleitungssatz "Das geht pro Thread". Das gilt auch, wenn mehrere Threads mehrere Fenster haben. Ereignisse threadübergreifend managen zu wollen, ist als ob du die Hausaufgaben deines Banknachbarn erledigst und er stets deine — da kann auch gleich jeder seine eigenen Aufgaben erledigen.
Wenn dein Hauptthread mehrere Fenster verwaltet, ist eine Schleife besser. Du kannst ja jederzeit mit EventWindow() prüfen, zu welchem Fenster das Ereignis gehört. DU prüfst ja schließlich mit EventGadget() auch, zu welchem Gadget das Ereignis gehört und hast nicht für jedes Gadget eine eigene Art Schleife.
Da aber jeder Thread sein eigenes Fensterhandling hat, muss bzw. sollte jeder Thread für sich seine eigenen Fenster verwalten, deswegen mein Einleitungssatz "Das geht pro Thread". Das gilt auch, wenn mehrere Threads mehrere Fenster haben. Ereignisse threadübergreifend managen zu wollen, ist als ob du die Hausaufgaben deines Banknachbarn erledigst und er stets deine — da kann auch gleich jeder seine eigenen Aufgaben erledigen.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy EndFür jeden Thread, der Fenster erstellt wird eine Eventschleife benötigt.
Mehr Eventschleifen sind kontraproduktiv, da du entweder
- Events der anderen Fenster verschluckst
- alles doppelt und dreifach machen müsstest
Eine einzellne Eventschleife wäre höchstens für Requester oder
Messagefenster eine alternative, sofern diese die Programmausführen
komplet aufhalten dürfen/ sollen. In diesem Fall ist aber vorher jedes bis
dahin aktive Fenster zu deaktivieren oder zu verstecken.
MFG PMV
Mehr Eventschleifen sind kontraproduktiv, da du entweder
- Events der anderen Fenster verschluckst
- alles doppelt und dreifach machen müsstest
Eine einzellne Eventschleife wäre höchstens für Requester oder
Messagefenster eine alternative, sofern diese die Programmausführen
komplet aufhalten dürfen/ sollen. In diesem Fall ist aber vorher jedes bis
dahin aktive Fenster zu deaktivieren oder zu verstecken.
MFG PMV