2 Fenster

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

mann kann auch ohne probs 2 mal die gleide gadget-nr. bei 2 verschiedenen fenstern verwenden denn nachdem man das fenster mittels OpenWindow() erstellt hat ruft man als nächstes ja eh erst mal CreateGadgetList(WindowID()) auf und somit werden die nachfolgend erstellten gadgets mit ihr nr in NUR dieser gadgetlist gesammelt die zuvor erstellt wurde. (sonst bräuchte man ja garkeinen Befehl CreateGadgetList)
Diese GadgetList is wiederum an das zuvor mittels OpenWindow erstellte fenster gebunden (man hat ja auch bei erstellen der GadgetList die WindowID() des fensters übergeben).

und nun noch ein gleiner auszug aus der hilfe mit dem man feststellt in welchem window ein ereignis stattdand
EventWindowID()

Syntax

#Window = EventWindowID()
Beschreibung

Benutzen Sie diese Funktion nach einem WindowEvent() oder WaitWindowEvent()Befehl, um das Fenster bestimmen zu können, in dem ein Ereignis stattfand.
Unterstützte OS

Windows, AmigaOS, Linux
gruß nico
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

nicolaus hat geschrieben:mann kann auch ohne probs 2 mal die gleide gadget-nr. bei 2 verschiedenen fenstern verwenden denn nachdem man das fenster mittels OpenWindow() erstellt hat ruft man als nächstes ja eh erst mal CreateGadgetList(WindowID()) auf und somit werden die nachfolgend erstellten gadgets mit ihr nr in NUR dieser gadgetlist gesammelt die zuvor erstellt wurde. (sonst bräuchte man ja garkeinen Befehl CreateGadgetList)
Das ist falsch. Gadgetnummern (so wie alle Objekt-Nummern)
sind in PB intern Global.

"CreateGadgetList" ist hier irreführend, da dieser Befehl zumindest
auf Windows keine Liste erzeugt (create), sondern nur eine interne
Variable setzt, so daß es weiß auf welches Fenster alle nächsten
Gadget-Befehle wirken.
Das mit "Create" Kommt wohl durch die Platformunabhängigkeit,
speziell vom Amiga.

Wenn man nochmal ein Gadget erstellt, was schon erstellt
ist, dann sollte das 1. automatisch gelöscht werden, so wie
das bei allen PB-Befehlen gemacht wird. Ist das nicht der
Fall, hast Du ein "totes" Gadget, das Du nicht mehr ansprechen
kannst.
Ein MoveGadget(), ResizeGadget() usw. wirkt dann immer
nur auf das letzte Gadget mit der Nummer, nicht auf alle.
Die vorhergehenden sind nicht mehr ansprechbar.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

@Danilo
danke dir für die erklärung. Dann hatte ich das wirklich falsch verstanden mit CreateGadgetList() denn ich bin davon ausgegangen das dadurch eine liste erstellt wird in der alle nachfolgen erstellten gadgets abgelegt werden und die Gadgetlist ja mit dem per WindowID() übergebenen handel des fenster verbunden ist und es somit halt gehen würde 2 mal die gleiche nr. zu vergeben.
Wieder was dazu gelernt!

Gruß Nico
Antworten