Wieso ist nur eine ToolBar möglich

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Wieso ist nur eine ToolBar möglich

Beitrag von STARGÅTE »

Tachchen,

mal n kleine Anfängerfrage:

Warum kann man nur eine einzige ToolBar machen ?

Code: Alles auswählen

OpenWindow(0, 0, 0, 400, 300, "Fenster", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
  Debug CreateToolBar(1, WindowID(0))
  ToolBarStandardButton(11, #PB_ToolBarIcon_New)
  ToolBarStandardButton(12, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(13, #PB_ToolBarIcon_Save)
  Debug CreateToolBar(2, WindowID(0))
  ToolBarStandardButton(21, #PB_ToolBarIcon_Cut)
  ToolBarStandardButton(22, #PB_ToolBarIcon_Copy)
  ToolBarStandardButton(23, #PB_ToolBarIcon_Paste)

Repeat

  Event = WaitWindowEvent()
 
  Select Event
    Case #PB_Event_CloseWindow
      End
    Case #PB_Event_Menu
      Debug EventMenu()
  EndSelect

ForEver
Beide ToolBars überlagern sich ...

Wird das in einer zukünftigen Version möglich sein ?

Ich würde mir halt so n ToolBar wünschen, wie es bei Windows ist, die man zB Fixieren kann, aber auch verschieben, und damit mehrere ToolBars hat, die man selber anordneen kann.
Das alles dann mit Flags bei CreateToolBar ...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: Wieso ist nur eine ToolBar möglich

Beitrag von TomS »

Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Wieso ist nur eine ToolBar möglich

Beitrag von STARGÅTE »

dankt für den Link, gibs da auch n "einfachere" Lösung ?
Will ja garkeine "anderen" Gadgets da mit rein haben, sonden die dezenten ToolBarButtons haben.
(also Ohne 3D-Rahmen, nur bei Hover, und halt 16x16)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Re: Wieso ist nur eine ToolBar möglich

Beitrag von Pelagio »

Hallo Stargate,

ich hatte mal was bei WinAPI von rsbasic gefunden was man als Ansatz eventuell noch ausbauen könnte, leider habe ich nicht genug Wissen über WinAPI's.

Code: Alles auswählen

OpenWindow(0, 0, 0, 400, 300, "Fenster", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
  Debug CreateToolBar(1, WindowID(0))
  ToolBarStandardButton(11, #PB_ToolBarIcon_New)
  ToolBarStandardButton(12, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(13, #PB_ToolBarIcon_Save)
  Debug CreateToolBar(2, WindowID(0))
  ToolBarStandardButton(21, #PB_ToolBarIcon_Cut)
  ToolBarStandardButton(22, #PB_ToolBarIcon_Copy)
  ToolBarStandardButton(23, #PB_ToolBarIcon_Paste)
  SetWindowLongPtr_(ToolBarID(2),#GWL_STYLE,#WS_CHILD|#WS_VISIBLE)
Repeat

  Event = WaitWindowEvent()

  Select Event
    Case #PB_Event_CloseWindow
      End
    Case #PB_Event_Menu
      Debug EventMenu()
  EndSelect

ForEver
:allright:
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS]. :allright:
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Wieso ist nur eine ToolBar möglich

Beitrag von Kiffi »

jede Toolbar braucht seinen eigenen 'Container'

Code: Alles auswählen

Enumeration
  #Window
EndEnumeration
Enumeration
  #ContainerGadget1
  #ContainerGadget2
  #Toolbar1
  #Toolbar2
EndEnumeration
Enumeration
  #Toolbar1_New
  #Toolbar1_Open
  #Toolbar1_Save
  #Toolbar2_New
  #Toolbar2_Open
  #Toolbar2_Save
EndEnumeration

OpenWindow(#Window, 0, 0, 400, 300, "Fenster", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)

ContainerGadget(#ContainerGadget1, 0, 0, 0, 0)

  CreateToolBar(#Toolbar1, GadgetID(#ContainerGadget1))
  ToolBarStandardButton(#Toolbar1_New, #PB_ToolBarIcon_New)
  ToolBarStandardButton(#Toolbar1_Open, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(#Toolbar1_Save, #PB_ToolBarIcon_Save)
  
CloseGadgetList()

ContainerGadget(#ContainerGadget2, 0, 0, 0, 0)
  
  CreateToolBar(#Toolbar2, GadgetID(#ContainerGadget2))
  ToolBarStandardButton(#Toolbar2_New, #PB_ToolBarIcon_New)
  ToolBarStandardButton(#Toolbar2_Open, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(#Toolbar2_Save, #PB_ToolBarIcon_Save)
  
CloseGadgetList()

Repeat
  
  Event = WaitWindowEvent()
  
  Select Event
    Case #PB_Event_SizeWindow
      ResizeGadget(#ContainerGadget1, 0, 0, WindowWidth(#Window), ToolBarHeight(#Toolbar1))
      ResizeGadget(#ContainerGadget2, 0, GadgetHeight(#ContainerGadget1), WindowWidth(#Window), ToolBarHeight(#Toolbar2))
    Case #PB_Event_CloseWindow
      End
    Case #PB_Event_Menu
      Debug EventMenu()
  EndSelect
  
ForEver
Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Wieso ist nur eine ToolBar möglich

Beitrag von STARGÅTE »

Danke Kiffi,

das ist genau das "einfache" was ich gesucht gabe, danke an dich.
Und auch an die andere für eure Beispiele.

btw. : NUn wäre auch das Geheimnis um den Sinn vom ContainerGadget gelüftet ^^

edit: (das mit dem verschieben kann erst mal warten)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
marco2007
Beiträge: 906
Registriert: 26.10.2006 13:19
Kontaktdaten:

Re: Wieso ist nur eine ToolBar möglich

Beitrag von marco2007 »

Noch 2 Vorteile, die mir spontan beim Containergadget einfallen:
- OptionGadget
- man kann´s färben
Windows 11 - PB 6.03 x64
_________________________________
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Wieso ist nur eine ToolBar möglich

Beitrag von STARGÅTE »

ich finde solche "Tricks" sollte man aber in der Hilfe dazuschrieben:

CreateToolBar
Erstellt eine leere Werkzeugleiste auf dem angegebenen Fenster 'WindowID', welche über die Nummer '#Toolbar' identifiziert wird.
[...]
Die 'WindowID' kann einfach mittels dem WindowID() Befehl ermittelt werden.
Das das nicht nur eine WindowID ist, sonden man auch GadgetsIDs ...
Das ist ja nicht immer möglich ...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Wieso ist nur eine ToolBar möglich

Beitrag von HeX0R »

Naja, die Frage dürfte sein, ob solche Tricks auch unter Linux oder Mac funktionieren.
Wahrscheinlich wird es deswegen nicht in der Hilfe stehen.
Stephan-X
Beiträge: 80
Registriert: 30.07.2008 16:02
Computerausstattung: PC 8 GB RAM NVIDIA Grafik 1 TB RAID // Ubuntu Mate 64 Bit // Pure 6.0 64
Wohnort: Oberösterreich

Re: Wieso ist nur eine ToolBar möglich

Beitrag von Stephan-X »

Hi Leute,
als Pinguin bin ich auf der suche "Wie färbe ich Panels" auf diesen interessanten Post gestossen... :o
Hier mal die Lösung für Linux !

Code: Alles auswählen

Enumeration
  #Window
 
  #ContainerGadget1
  #ContainerGadget2
  #Toolbar1
  #Toolbar2
 
  #Toolbar1_New
  #Toolbar1_Open
  #Toolbar1_Save
  #Toolbar2_New
  #Toolbar2_Open
  #Toolbar2_Save
EndEnumeration

OpenWindow(#Window, 0, 0, 400, 300, "Fenster", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
 
  CreateToolBar(#Toolbar1, WindowID(#Window))
  ToolBarStandardButton(#Toolbar1_New, #PB_ToolBarIcon_New)
  ToolBarStandardButton(#Toolbar1_Open, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(#Toolbar1_Save, #PB_ToolBarIcon_Save)
  
  CreateToolBar(#Toolbar2, WindowID(#Window))
  ToolBarStandardButton(#Toolbar2_New, #PB_ToolBarIcon_New)
  ToolBarStandardButton(#Toolbar2_Open, #PB_ToolBarIcon_Open)
  ToolBarStandardButton(#Toolbar2_Save, #PB_ToolBarIcon_Save)

Repeat
  
  Event = WaitWindowEvent()
  
  Select Event
    Case #PB_Event_SizeWindow
     
    Case #PB_Event_CloseWindow
      End
    Case #PB_Event_Menu
      Debug EventMenu()
  EndSelect
  
ForEver
Schönen Sonntag noch
Stephan
Wenn Sie nichts zu Tun haben, tun Sie es bitte nicht hier.
Antworten