Dynamische Fenster- und Gadgethandles

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Dynamische Fenster- und Gadgethandles

Beitrag von Chimorin »

Heyho,

Ich habe da mal ne Frage:
Bisher habe ich meine Fenster und Gadgets immer mit Konstanten klassifiziert, was natürlich einwandfrei funktioniert. Ich dachte mir nun, dass ich es eventuell "besser" machen könnte, indem ich diese "Konstanterei" dynamisch gestalte.
Gesagt, getan, habe ich mein Projekt umgestellt (Hauptfenster und mehrere Fenster, die nur unter Umständen dazukommen - Einstellungsfenster,...).
Funktioniert super, sieht auch super aus :D
Nur gibt es ab und zu ein Problem:

Code: Alles auswählen

Select window
  Case f1
    
  Case f2
    
EndSelect
Wenn f1 mal offen war, f2 ist nun offen und hat die selbe ID wie f1 davor, wird natürlich auf f1 im Select:Case angesprungen, was in einem Absturz endet.

Mich würde jetzt interessieren, wie man das mit den Fenstern und Gadgets als Profiprogrammierer löst (Berufliche Progger und sowas). Ich bin ja nur Hobbyprogrammierer und habe auch sonst nichts damit am Hut (Bildungstechnisch).
Setze ich einfach alle Gadgets und Fenster, die nicht mehr offen sind, auf 0 zurück? Oder macht man das gar nicht dynamisch, sondern über Konstanten? Oder werden die Fenster gar nicht geschlossen, sondern nur unsichtbar gemacht?!
Bild

- formerly known as Bananenfreak -
matbal
Beiträge: 261
Registriert: 30.03.2011 20:53

Re: Dynamische Fenster- und Gadgethandles

Beitrag von matbal »

Ich benutze für alle Fenster, die es nur einmal gibt, Konstanten. Ich sehe auch kein Grund, warum ich dafür die Konstanten nicht benutzen sollte.

Für dynamische Fenster, die also mehrfach parallel geöffnet werden können, verwende ich auch dynamischen Speicher, der z.B. in einer strukturierten LinkedList verwaltet wird. Beim Erstellen eines Fensters wird ein Element hinzugefügt, wo dann die Window-Nummer und alle Gadget-Nummern und sonstige Daten zum Fenster gespeichert werden. Wenn das Fenster geschlossen wird, wird auch der Speicher wieder freigegeben, und damit werden die Window- und Gadget-Nummern ungültig.
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: Dynamische Fenster- und Gadgethandles

Beitrag von Chimorin »

Joar, hätte ich auch vorher dran denken sollen, dass die dynamische Sache nicht so ganz funktionieren wird...
Bild

- formerly known as Bananenfreak -
Benutzeravatar
Kiffi
Beiträge: 10725
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Dynamische Fenster- und Gadgethandles

Beitrag von Kiffi »

Chimorin hat geschrieben:Joar, hätte ich auch vorher dran denken sollen, dass die dynamische Sache nicht so ganz funktionieren wird...
die 'dynamische Sache' funktioniert schon, wenn man das ordentlich programmiert ;-)

Ich halte es auch wie matbal. 'Feste' Fenster (Main, Optionen, etc.) und Gadgets bekommen eine Konstante. Dynamische Fenster und Gadgets erstelle ich mit #PB_Any.

Grüße ... Peter
a²+b²=mc²
Antworten