Seite 1 von 1

SetActiveGadget

Verfasst: 04.01.2014 18:50
von enigma
Hallo,
nach langer erfolgloser Suche hier im Forum und auch mit Google muss ich mich mal wieder melden.
Mein Problem: Bei Programmstart öffne ich drei Fenster in der Reihenfolge CoverWindow - ProtokollWindow - MainWindow. Das CoverWindow und das ProtokollWindow werden mit HideWindow versteckt. Im MainWindow ist ein StringGadget das den Fokus bekommen soll um dort direckt eine Texteingabe machen zu können ohne erst in das Fenster zu klicken. SetActiveGadget und SetActiveWindow lösen mein Problem nicht. Das Beispiel in der Hilfe zu SetActiveGadget läuft. Liegt das an meinen versteckten Fenstern?

Schon mal vielen Dank im Vorraus
Enigma

Re: SetActiveGadget

Verfasst: 04.01.2014 19:00
von RSBasic
In der Regel sollte es funktionieren, aber da ich dein Code nicht kenne und nicht sehen kann, kann ich dir leider nicht helfen.
Ich kann höchstens ein Beispielcode posten:

Code: Alles auswählen

EnableExplicit

Define EventID

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  StringGadget(1, 10, 10, 100, 20, "", 0)
  
  If OpenWindow(1, 0, 0, 300, 200, "SubWindow 1", #PB_Window_WindowCentered, WindowID(0))
  EndIf
  If OpenWindow(2, 0, 0, 200, 100, "SubWindow 2", #PB_Window_WindowCentered, WindowID(0))
  EndIf
  
  ;SetActiveWindow(0);Ist glaube ich nicht erforderlich
  SetActiveGadget(1)
  
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf
Kannst du versuchen, dein Code als Kopie auf minimale Größe zu reduzieren, damit du diesen Code posten kannst? Eventuell findest du sogar beim Reduzieren des Codes den Fehler.
Ansonsten kann man ohne Code nicht viel sagen. Es könnte vielleicht sein, dass ein anderes Fenster erst später erstellt oder sichtbar gemacht wird und dann den Fokus bekommt, weiß ich nicht.
Oder vielleicht verwendest du woanders SetActiveGadget() oder SetActiveWindow()? Such mal in deinem Code nach solchen Funktionen.

Re: SetActiveGadget

Verfasst: 04.01.2014 20:30
von enigma
Danke RSBasic für die schnelle Antwort.
Dein Code macht genau das was ich wollte, auch wenn ich die beiden SubWindows verstecke.
Ich habe den Code durchsucht keine weiteren SetActiveGadget() oder SetActiveWindow() gefunden.
Werde versuchen den entsprechenden Codeteil zu reduzieren und dann hier posten.

Besten Dank
Enigma

Re: SetActiveGadget

Verfasst: 05.01.2014 14:10
von enigma
RSBasic hat geschrieben: Es könnte vielleicht sein, dass ein anderes Fenster erst später erstellt oder sichtbar gemacht wird und dann den Fokus bekommt
Das wars :oops:

Nochmals besten Dank für die schnelle Hilfe :allright:

Gruß
Enigma