Seite 1 von 2
Toolbar mit Schaltflächen erstellen
Verfasst: 11.11.2008 18:09
von Andesdaf
Hallo!
Ich wollte in eine Toolbar eine editierbare ComboBox (oder eben ein beliebiges anderes Gadget) legen, z.B für eine Art Word-Programm die Auswahlleiste für die Schriftart oder für einen Browser die Adressleiste. Diese sollte in ihren Funktionen nicht eingeschränkt sein, sondern wie normal funktionieren.
Weiß jemand, wie ich so etwas mache?
Suchfunktion habe ich schon genutzt, aber die Qualität der Suche ist ja bekannt und ich war noch nie sehr gut im Finden von Sachen, egal wo. Also bitte nicht böse sein, wenn die Lösung schon existiert und ich sie bloß nicht gefunden habe.
Verfasst: 11.11.2008 18:35
von milan1612
Folgendes funktioniert mit Windows einwandfrei:
1. Erstell deine Toolbar
2. Erstell ein Containergadget
3. Plazier dein gewünschtes Gadget darauf
4. Verwende SetParent_(GadgetID(#Container), ToolbarID(#Toolbar))
5. Verwende ResizeGadget() um das Containergadget richtig zu plazieren
Verfasst: 11.11.2008 18:35
von ts-soft
Wenns für Windows ist:
Code: Alles auswählen
If OpenWindow(0, 100, 200, 195, 260, "ToolBar example", #PB_Window_SystemMenu | #PB_Window_SizeGadget)
If CreateToolBar(0, WindowID(0))
ToolBarStandardButton(0, #PB_ToolBarIcon_New)
ToolBarStandardButton(1, #PB_ToolBarIcon_Open)
ToolBarStandardButton(2, #PB_ToolBarIcon_Save)
ToolBarSeparator()
ToolBarStandardButton(3, #PB_ToolBarIcon_Print)
ToolBarToolTip(0, 3, "Print")
ToolBarStandardButton(4, #PB_ToolBarIcon_Find)
ToolBarToolTip(0, 4, "Find a document")
ToolBarSeparator()
EndIf
; ######################################
; hier spielt die Musik
StringGadget(0, 130, 0, 50, 20, "Hallo")
SetParent_(GadgetID(0), ToolBarID(0))
; ###################################
If CreateMenu(0, WindowID(0))
MenuTitle("Project")
MenuItem(0, "New")
MenuItem(1, "Open")
MenuItem(2, "Save")
EndIf
;
; Attach our previously created ToolBar to this window
;
DisableToolBarButton(0, 2, 1) ; Disable the button '2'
;
; The event loop. A ToolBar event is like a Menu event (as tools are shortcut for menu the most
; of the time). This is handy, as if the ToolBar buttons and the MenuItem have the same ID, then
; the same operation can be done on both action without any adds..
;
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Menu
MessageRequester("Information", "ToolBar or Menu ID: "+Str(EventMenu()), 0)
Case #PB_Event_CloseWindow ; If the user has pressed on the close button
Quit = 1
EndSelect
Until Quit = 1
EndIf
End ; All the opened windows are closed automatically by PureBasic
Hab das Beispiel der Hilfe mal gepimped
Entscheidende Zeilen sind in ##### REMs
Verfasst: 11.11.2008 18:44
von milan1612
Mensch Thomas, muss du immer gleich mit Code daherkommen?

Verfasst: 11.11.2008 18:49
von ts-soft
milan1612 hat geschrieben:Mensch Thomas, muss du immer gleich mit Code daherkommen?

Hab ja nur 2 Zeilen eingefügt, den Rest hat Fantaisia Software geschrieben

Verfasst: 11.11.2008 19:58
von Andesdaf
@milan:
> 4. Verwende SetParent_(GadgetID(#Container), ToolbarID(#Toolbar))
Danke, diese Funktion hat gefehlt. Dass das so einfach ist hätt isch nisch gedacht.
@ts:
auch danke für deinen code

Verfasst: 12.11.2008 16:30
von bec
@ts-soft
das Codebeispiel funktioniert bei mir nicht. Es bleibt genau an der Stelle zwischen den Rem-Zeilen hängen.
(Debugger: There is no current Gadget-List)
Geht das möglicherweise erst ab 4.30 ??? Hab hier XP und 4.20.
bec
Verfasst: 12.11.2008 16:55
von Kiffi
bec hat geschrieben:Geht das möglicherweise erst ab 4.30 ???
japp. In 4.3 fällt CreateGadgetList() weg. Deswegen hat es Thomas nicht im
Code aufgeführt. Einfach hinter OpenWindow(...) ein CreateGadgetList(...)
und fertig
Grüße ... Kiffi
Verfasst: 12.11.2008 20:29
von ts-soft
Kiffi gefälschtes Zitat hat geschrieben:Deswegen hat es Thomas, der faule Sack, es nicht im Code aufgeführt.
So bin ich eben
Gruß
Thomas
Verfasst: 12.11.2008 21:59
von Kiffi
Gefälschtes von Thomas gefälschtes Kiffi-Zitat - Zitat hat geschrieben:Deswegen hat es der progressive Thomas, der als Innovationsmotor ständig
auf der Höhe der Zeit ist und aus diesem Grund auch nur das Neueste vom
Neuen benutzt, es nicht im Code aufgeführt.
Grüße ... Kiffi (der sich erst heute PB4.3 installiert hat)