lässt sich die Tiefe einer Gadgetliste feststellen? Also wieviele CloseGadgetList() noch notwenig sind, um die Erstellung zu beenden?
Tiefe einer Gadget-Liste
Tiefe einer Gadget-Liste
Hi,
lässt sich die Tiefe einer Gadgetliste feststellen? Also wieviele CloseGadgetList() noch notwenig sind, um die Erstellung zu beenden?
lässt sich die Tiefe einer Gadgetliste feststellen? Also wieviele CloseGadgetList() noch notwenig sind, um die Erstellung zu beenden?
Gruß, Frank
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Tiefe einer Gadget-Liste
Ungetested, hab wenig Zeit, aber in etwa so könnte es gehen:
Gruß
Thomas
Code: Alles auswählen
count = 0
Repeat
gadlist = UseGadgetList(0)
If gadlist
CloseGadgetList()
count + 1
EndIf
Until gadlist = 0
Debug countThomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Tiefe einer Gadget-Liste
Du kannst ContainerGadget(), PanelGadget() und ScrollAreaGadget() unter
Preferences/Editor/Indentation mit 1 / 0 eintragen und CloseGadgetlist()
mit -1 / 0. Dann siehst Du es anhand der Einrückung im Code.
Grüße ... Kiffi
Preferences/Editor/Indentation mit 1 / 0 eintragen und CloseGadgetlist()
mit -1 / 0. Dann siehst Du es anhand der Einrückung im Code.
Grüße ... Kiffi
a²+b²=mc²
Re: Tiefe einer Gadget-Liste
Danke, scheint mir ein guter Ansatz zu sein, Thomas! 
Nur leider wird dadurch die Gadget-Liste zugemacht...
@Kiffi: Benutze meinen eigenen Editor, siehe Signaturbild. Geht auch nicht um die Ansicht beim Editieren, sondern um Infos während der Ausführung. Angenommen es werden (User-gesteuert) vom Programm Childs auf einem Panel (oder so) erzeugt und darauf wieder Childs usw. Wäre lästig, im Programm einen Zähler zu verwenden, zumal beliebig viele Panels/Childs/usw genutzt werden können, also mitunter viele Zähler nötig würden. Hoffe, das war etwas verständlicher.
Das Ganze ist für meinen visuellen Design.
Nur leider wird dadurch die Gadget-Liste zugemacht...
@Kiffi: Benutze meinen eigenen Editor, siehe Signaturbild. Geht auch nicht um die Ansicht beim Editieren, sondern um Infos während der Ausführung. Angenommen es werden (User-gesteuert) vom Programm Childs auf einem Panel (oder so) erzeugt und darauf wieder Childs usw. Wäre lästig, im Programm einen Zähler zu verwenden, zumal beliebig viele Panels/Childs/usw genutzt werden können, also mitunter viele Zähler nötig würden. Hoffe, das war etwas verständlicher.
Das Ganze ist für meinen visuellen Design.
Gruß, Frank
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Tiefe einer Gadget-Liste
Naja, wo ist das Problem?Frabbing hat geschrieben:Danke, scheint mir ein guter Ansatz zu sein, Thomas!
Nur leider wird dadurch die Gadget-Liste zugemacht...![]()
Code: Alles auswählen
Procedure CountLevelGadgetList()
Protected count, gadlist, oldlist
Repeat
gadlist = UseGadgetList(0)
If gadlist
If count = 0 : oldlist = gadlist : EndIf
CloseGadgetList()
count + 1
EndIf
Until gadlist = 0
UseGadgetList(oldlist)
ProcedureReturn count
EndProcedure
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Tiefe einer Gadget-Liste
Eine andere Möglichkeit (WinAPI):
Code: Alles auswählen
EnableExplicit
Define EventID
Procedure CountLevelGadgetList(Gadget)
Protected ParentGadgetHandle = GadgetID(Gadget)
Protected ParentGadgetTotal = -2
Repeat
ParentGadgetHandle = GetParent_(ParentGadgetHandle)
ParentGadgetTotal + 1
Until ParentGadgetHandle = 0
ProcedureReturn ParentGadgetTotal
EndProcedure
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(25, 10, 10, 100, 20,"Button 1",0)
If ContainerGadget(1, 10, 40, 480, 350, #PB_Container_Flat)
If PanelGadget(2, 10, 10, 460, 330)
If ContainerGadget(3, 10, 10, 440, 310, #PB_Container_Flat)
ButtonGadget(50, 10, 10, 100, 20,"Button 2",0)
CloseGadgetList()
EndIf
CloseGadgetList()
EndIf
CloseGadgetList()
EndIf
Debug CountLevelGadgetList(25)
Debug CountLevelGadgetList(50)
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Tiefe einer Gadget-Liste
>> ParentGadgetTotal = -2
Wer sind die 2?
Wer sind die 2?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Tiefe einer Gadget-Liste
1. Die Null am Ende, wenn kein weiteres ParentWindow gefunden wurde.
2. Das ParentWindow = OpenWindow
Daher abzüglich "-2".
2. Das ParentWindow = OpenWindow
Daher abzüglich "-2".
Re: Tiefe einer Gadget-Liste
Auch ein interessanter Ansatz, RSBasic. Danke! 
Sagt mir aber nicht, ob noch ein CloseGadgetList() nötig ist im Programm oder nicht. Tommis Lösung ist da sinnvoller.
Sagt mir aber nicht, ob noch ein CloseGadgetList() nötig ist im Programm oder nicht. Tommis Lösung ist da sinnvoller.
Gruß, Frank

