Seite 1 von 2
ComboBox
Verfasst: 14.07.2014 15:48
von schleicher
Ich habe im Forum gesucht, aber nichts darüber gefunden.
Ist es möglich eine Combobox in eine Statusbar einzubauen ?
Wenn ja, wie müsste der Code dann aussehen?
Re: ComboBox
Verfasst: 14.07.2014 15:48
von RSBasic
SetParent_()
Re: ComboBox
Verfasst: 14.07.2014 16:05
von schleicher
Leider gibt es zu SetParent_() in PB keine Hilfe.
Wie müsste der code lauten um eine ComboBox in die Statusbar zu bekommen?
Re: ComboBox
Verfasst: 14.07.2014 16:10
von RSBasic
SetParent_() ist keine PB-Funktion, sondern eine vom Betriebssystem bereitgestellte WinAPI-Funktion, die du in PureBasic ebenfalls nutzen kannst. Die Dokumentation dieser Funktionen findest du auf der Microsoft-Seite (MSDN).
Bezüglich dieser Funktion kannst du auf der folgenden Seite die Beschreibung und Parameterliste lesen:
http://msdn.microsoft.com/de-de/library ... 85%29.aspx
1. Parameter: Quell-Handle deines Gadgets (GadgetID())
2. Parameter: Ziel-Handle deiner StatusBar (StatusBarID())
Das sollte jetzt klar sein oder? Wenn nicht, frag nochmal.
\\Edit:
Siehe ts-softs Beispielcode, wobei ich der Meinung bin, dass man das selber lernen sollte, denn reines Copy Paste ist nicht so hilfreich.

Re: ComboBox
Verfasst: 14.07.2014 16:13
von ts-soft
Wenn es für Windows ist (und nur dann

):
Code: Alles auswählen
EnableExplicit
OpenWindow(0, #PB_Ignore, #PB_Ignore, 800, 600, "")
If ComboBoxGadget(0, 102, 2, 200, 19)
AddGadgetItem(0, -1, "True")
AddGadgetItem(0, -1, "False")
SetGadgetState(0, 0)
EndIf
If CreateStatusBar(0, WindowID(0))
AddStatusBarField(100)
SetParent_(GadgetID(0), StatusBarID(0))
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
Re: ComboBox
Verfasst: 14.07.2014 16:25
von schleicher
Danke für den Tip. Funktioniert !
Da es eine Winapi-Funktion ist, geht das nur in Windows, verstehe ich.
Gibt es eine andere Möglichkeit, das es auch für Linux funktionieren würde ?
Re: ComboBox
Verfasst: 14.07.2014 16:36
von RSBasic
Re: ComboBox
Verfasst: 14.07.2014 16:40
von NicTheQuick
So scheint es zu gehen:
Code: Alles auswählen
EnableExplicit
OpenWindow(0, #PB_Ignore, #PB_Ignore, 800, 600, "")
If ComboBoxGadget(0, 102, 2, 200, 19)
AddGadgetItem(0, -1, "True")
AddGadgetItem(0, -1, "False")
SetGadgetState(0, 0)
EndIf
If CreateStatusBar(0, WindowID(0))
AddStatusBarField(100)
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows
SetParent_(GadgetID(0), StatusBarID(0))
CompilerCase #PB_OS_Linux
gtk_widget_reparent_(GadgetID(0), StatusBarID(0))
CompilerEndSelect
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
Re: ComboBox
Verfasst: 14.07.2014 16:43
von edel
Also wenn gtk_widget_reparent funktioniert, dann sollte auch ein UseGadgetList reichen, und diesmal wirklich
Code: Alles auswählen
EnableExplicit
OpenWindow(0, #PB_Ignore, #PB_Ignore, 800, 600, "")
If CreateStatusBar(0, WindowID(0))
AddStatusBarField(100)
UseGadgetList(StatusBarID(0))
If ComboBoxGadget(0, 102, 2, 200, 19)
AddGadgetItem(0, -1, "True")
AddGadgetItem(0, -1, "False")
SetGadgetState(0, 0)
EndIf
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
Re: ComboBox
Verfasst: 14.07.2014 16:49
von ts-soft
edel hat geschrieben:und diesmal wirklich

Naja, aber unter linux kommt da nix
