Seite 1 von 1
neues Fenster in Vordergrund öffnen?
Verfasst: 11.06.2016 16:25
von udg
Hallo,
simpel oder nicht? ich hab mal wieder keine Ahnung.
Hab ja nun schon hunderte Fenster erstellt und geöffnet.
Mein Problem diesmal:
Ich habe mein Hauptfenster offen und möchte nun über einen Button ein 2tes Fenster anzeigen. Dieses soll natürlich über dem bereits geöffneten Fenster(davor) angezeigt werden, jedoch ohne den Befehl:
Grüße
Re: neues Fenster in Vordergrund öffnen?
Verfasst: 11.06.2016 16:45
von Kiffi
SetActiveWindow()?
Grüße ... Peter
Re: neues Fenster in Vordergrund öffnen?
Verfasst: 11.06.2016 17:10
von ts-soft
Da gibt es viele Möglichkeiten, so wie Kiffi schrieb, oder z.B. so:
Code: Alles auswählen
OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "MainWindow")
ButtonGadget(0, 10, 200, 100, 30, "NewWindow")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
If EventWindow() = 0
End
Else
CloseWindow(EventWindow())
DisableGadget(0, #False)
EndIf
Case #PB_Event_Gadget
If EventGadget() = 0
DisableGadget(0, #True)
OpenWindow(1, WindowX(0) + GadgetX(0), WindowY(0) + GadgetY(0) - GadgetWidth(0), 100, 100, "NewWindow", #PB_Window_SystemMenu, WindowID(0))
EndIf
EndSelect
ForEver
Kommt also drauf an, was Du vorhast, damit man Dir sagen kann, was zu empfehlen wäre!
Re: neues Fenster in Vordergrund öffnen?
Verfasst: 11.06.2016 17:52
von RSBasic
Wenn du ein neues Fenster erstellst, ist dieses standardmäßig automatisch im Vordergrund bzw. hat den Fokus.
Falls das zweite Fenster dauerhaft vor dem Hauptfenster angezeigt werden soll, also auch bei Klick auf das Hauptfenster, dann benutze den optionalen Parameter "ParentID".
Beispielcode:
Code: Alles auswählen
EnableExplicit
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If OpenWindow(1, 0, 0, 300, 200, "", #PB_Window_WindowCentered, WindowID(0))
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIf
Re: neues Fenster in Vordergrund öffnen?
Verfasst: 12.06.2016 16:22
von udg
Kiffi hat geschrieben:SetActiveWindow()?
Grüße ... Peter

natürlich hatte ich
SetActiveWindow() im code aber ausversehen doppelt. Der 2te
SetActiveWindow() Befehl war falsch und darum gabs die Probleme, denn er befand sich zur gleichen Zeit aktiv für das Fenster welches eigentlich in den Hintergrund sollte. Dann kanns natürlich nit gehen.
Jetzt geht es
Danke für die schnelle Hilfe