[code] Eventloop für mehrere Fenster

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Little John

Beitrag von Little John »

Kurzer hat geschrieben:Es müssen dabei maximal nur diese Variablen global sein:

Code: Alles auswählen

  Event
  EventType
  EventWindow
  EventwParam
  EventlParam
  EventGadget
  EventMenu
In dem Beispiel ja. In einem richtigen Programm kann es gut sein dass die verschiedenen Fenster Informationen austauschen. Wenn z.B. eines der Fenster ein Options-Dialog ist in dem der Benutzer 20 Variablen verändern kann, müssen diese Variablen auch in einem oder mehreren der anderen Fenster zugänglich sein, in denen die vom Benutzer gesetzten Werte dann verwendet werden.
Kurzer hat geschrieben:Wo siehst Du da Gefahren oder Probleme?
Ich sehe das Problem darin, dass bei zu vielen globalen Variablen die Übersichtlichkeit und damit auch die Wartbarkeit nicht mehr gut ist. Die vermeintlich bessere Übersichtlichkeit durch Prozeduren kann sich dadurch IMHO ins Gegenteil verkehren.

Gruß, Little John
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Beitrag von Kurzer »

Little John hat geschrieben:Ich sehe das Problem darin, dass bei zu vielen globalen Variablen die Übersichtlichkeit und damit auch die Wartbarkeit nicht mehr gut ist. Die vermeintlich bessere Übersichtlichkeit durch Prozeduren kann sich dadurch IMHO ins Gegenteil verkehren.
Und wie löst Du diese Problematik?
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Frösche an die Macht! Bild
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Bild
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

Kaeru Gaman hat geschrieben:Frösche an die Macht! Bild
Aber nicht das Schweinchen verhaften, ich bin in der Unterzahl :mrgreen:
Win11 x64 | PB 6.20
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Um das Eventhandling kümmere ich mich nicht mehr. Verwende eine automatisierung und brauch nur noch in die automatisch erzeugte Event Procedure gehen.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Little John

Beitrag von Little John »

Kurzer hat geschrieben:Und wie löst Du diese Problematik?
Wenn man es so macht wie in Kaeru Gamans Code hier im ersten Beitrag, dann entsteht das beschriebene Problem mit den globalen Variablen nicht. Daher gefällt mir diese Methode am besten.

Gruß, Little John
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

EasyVENT, ein paar eigene Callbacks und das EventLoop von PB bleibt übersichtlich, da fast leer :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Little John

Beitrag von Little John »

ts-soft hat geschrieben:EasyVENT, ein paar eigene Callbacks und das EventLoop von PB bleibt übersichtlich, da fast leer :mrgreen:
... und unter Linux kuckt man in die Röhre.

Gruß, Little John
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Little John hat geschrieben:... und unter Linux kuckt man in die Röhre.
Bei den max. 5% wo eine plattformunabhängige Version überhaupt einen
Sinn macht, kann man dies doch Vernachlässigen. Die Eventhandler der
LinuxAPI machen doch EasyVENT überflüssig.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten