MaxGUI ... Viele Window's
Übersicht

![]() |
Mathias-KwiatkowskiBetreff: MaxGUI ... Viele Window's |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi wie bekomme ich raus welches fenster aktiv ist?
hier der codeCode: [AUSKLAPPEN] Global GUIWindowList:TList = New TList
Global GUIWindow:TGUIWindow Type TGUIWindow Field window:TGadget Field htmlview Field url:String Function Create(url:String) GUIWindow:TGUIWindow= New TGUIWindow GUIWindow.url= url GUIWindow.window:TGadget = CreateWindow("HTML",0,0,808,634,Desktop(),3) GUIWindow.htmlview = CreateHTMLView(0,0,800,600,GUIWindow.window,0) HtmlViewGo GUIWindow.htmlview,GUIWindow.url GUIWindowList.Addlast GUIWindow End Function EndType TGUIWindow.Create("www.web.de") TGUIWindow.Create("www.web.de") TGUIWindow.Create("www.web.de") Repeat event=WaitEvent() For GUIWindow:TGUIWindow = EachIn GUIWindowList If event=EVENT_WINDOWCLOSE Then FreeGadget EVENT_WINDOWACTIVATE FlushMouse() Next Forever also sobald man ein fenster schliesst soll diese auch weggehen ![]() ich weiss einfach keine möglichkeit mehr. |
||
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Repeat
WaitEvent() Select EventID() Case EVENT_WINDOWCLOSE FreeGadget(TGadget(EventSource())) EndSelect Forever Guck dir die Event-Module an. (BRL.EventQueue, BRL.Event) Gruß, FOODy PS: FlushMouse() ist hier für den Arsch. |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
jo die hatte ich schon mal gesehen^^ aber wie bekomme ich den namen heraus vom derzeit geöffnetem fenster? oder besser vom aktiven? | ||
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du dir die Event Module wirklich angeschaut hättest, müsstest du jetzt nicht fragen.
Ich werd dir jetzt keinen Code geben, sondern nur ein Tipp. Schau dir mal die Konstante EVENT_WINDOWACTIVATE an. Wofür sie steht, sollte in BRL.Event stehen. Wie du von einem Gadget den Text bekommst solltest du im BRL.MaxGUI Module finden. Außerdem gibt es da noch eine Funktion die das Aktivierte Gadget(!!! nicht unbedingt ein Window) zurückgibt. Auch diese Funktion findest du unter BRL.MaxGUI Gruß, FOODy |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
EVENT_WINDOWACTIVATE <- das es damit geht habe ich mir gedacht und das ich den befehl GadgetItemText nutzen muss so denke ich mal ist das auch korrekt allerdings wie anwenden?
weil TGadget will er nicht in GadgetItemText stehen haben. Code: [AUSKLAPPEN] Case EVENT_WINDOWACTIVATE
Print GadgetItemText ????...???? |
||
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Guck mal.
Bei einem TEvent gibt es ein Field namens source vom Type Object. Man kann vom aktuellen Event auf den Source mit der Funktion EventSource() zugreifen. MaxGUI speichert in dem Field source das betroffene Gadget. Das heißt: TGadget(EventSource()) = Das Betroffene Gadget. (Von Object zu TGadget gecastet) Also müsste es so aussehen: Code: [AUSKLAPPEN] Print GadgetItemText(TGadget(EventSource()))
Dies würde aber normalerweise nicht gehen. Da beim Erstellen eines Fensters die Source irgendwie nicht mitgegeben wird. Also brauchst du noch ein If davor: Code: [AUSKLAPPEN] If EventSource() Print GadgetItemText(TGadget(EventSource()))
So dürfte es eigentlich gehen. Gruß, FOODy |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
joa dann war ich genauso klug ![]() Code: [AUSKLAPPEN] Print GadgetItemText(TGadget(EventSource()))
dieser geht naja nun wirklich nicht und Code: [AUSKLAPPEN] If EventSource() Print GadgetItemText(TGadget(EventSource()))
ebenfalls nicht, ich bastel mit den paar befehlen die ganze nacht. wenn ich es nicht durch wissen herausgefunden hätte müsste ich's peer zufall haben ![]() und ich sags mal so viele befehle sinds nun wirklich nicht die ich benutzen könnte. jedenfalls nicht um den namen des fensters herauszufinden oder? |
||
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Framework BRL.Win32MaxGUI
Import BRL.EventQueue CreateWindow("Fenster 1",320,320,320,320) CreateWindow("Fenster 2",420,320,320,320) CreateWindow("Fenster 3",320,420,320,320) Global LastWindow:TGadget=ActiveGadget() Print LastWindow.GetText() Repeat WaitEvent() Select EventID() Case EVENT_WINDOWCLOSE End Case EVENT_WINDOWACTIVATE If EventSource() LastWindow=TGadget(EventSource()) Print LastWindow.GetText() Endif EndSelect Forever Die Variable LastWindow speichert das letzte fokusierte Fenster. ActiveGadget() gibt das aktuell Fokusierte Gadget zurück. (Hier ist es das zuletzt erstellte Fenster) EVENT_WINDOWACTIVE wird erzeugt wenn ein Fenster fokusiert wird. Gruß, FOODy |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
oha lol... darauf wäre ich nicht gekommen... THX
des ist den doch etwas anders als B+ und b+ konnte ich echt supi... naja aber gottsei dank der grössteil ist gleich geblieben! trotzdem danke nochmal |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group