Seite 1 von 1
Tricky: Schaltflächen von Panels entfernen
Verfasst: 23.10.2013 17:59
von Delle
Hallo,
ich versuche bestimmte Schaltflächen von einem Panel zu entfernen:
Code: Alles auswählen
For tab=2 To CountGadgetItems(#Panel)-1
If GetGadgetItemText(#Panel,tab)="leer":RemoveGadgetItem(#Panel,tab):EndIf
Next
Sieht sicher auf den 1. Blick logisch aus, funktioniert aber leider nicht wie gewünscht
Nach jeder Entfernung rutschen ja die folgenden Schaltflächen im Index runter. Die Folge sind übersprungene/nichtentfernte Schaltflächen.
Eventuell CountGadgetItems(#Panel)-1 als Start wählen und nach 2 runterzählen?
Oder eine Variable mit einbauen, die den Index wieder berichtigt?
Danke,
Delle
Re: Tricky: Schaltflächen von Panels entfernen
Verfasst: 23.10.2013 18:09
von alter Mann
ne, einfach von hinten nach vorne
Code: Alles auswählen
For tab=CountGadgetItems(#Panel)-1 To 2 Step -1
If GetGadgetItemText(#Panel,tab)="leer":RemoveGadgetItem(#Panel,tab):EndIf
Next
Re: Tricky: Schaltflächen von Panels entfernen
Verfasst: 23.10.2013 18:10
von NicTheQuick
Rückwärts ist es am einfachsten. Oder was wolltest du eigentlich wissen?
Also ich verstehe jetzt nicht ganz die Frage, da du ja eh zwei mögliche Antworten dafür gegeben hast.
Re: Tricky: Schaltflächen von Panels entfernen
Verfasst: 23.10.2013 18:10
von Delle
alter Mann hat geschrieben:ne, einfach von hinten nach vorne
Genauso dacht ich's mir ja auch
Eventuell CountGadgetItems(#Panel)-1 als Start wählen und nach 2 runterzählen?
Re: Tricky: Schaltflächen von Panels entfernen
Verfasst: 23.10.2013 18:11
von Delle
NicTheQuick hat geschrieben:Rückwärts ist es am einfachsten.
Hatte ich schon probiert, allerdings erfolglos. Hatte
Step -1 vergessen

Re: Tricky: Schaltflächen von Panels entfernen
Verfasst: 23.10.2013 18:24
von ts-soft
Naja, man kann die Laufvariable auch korrigieren:
Code: Alles auswählen
; Zeigt die Verwendung mehrerer Panels...
If OpenWindow(0, 0, 0, 322, 220, "PanelGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
PanelGadget (0, 8, 8, 306, 203)
AddGadgetItem (0, -1, "Panel 1")
PanelGadget (1, 5, 5, 290, 166)
AddGadgetItem(1, -1, "Sub-Panel 1")
AddGadgetItem(1, -1, "Sub-Panel 2")
AddGadgetItem(1, -1, "Sub-Panel 3")
CloseGadgetList()
For tab = 0 To CountGadgetItems(1) - 1
If GetGadgetItemText(1, tab) = "Sub-Panel 2"
RemoveGadgetItem(1, tab)
tab - 1
EndIf
Next
AddGadgetItem (0, -1,"Panel 2")
ButtonGadget(2, 10, 15, 80, 24,"Button 1")
ButtonGadget(3, 95, 15, 80, 24,"Button 2")
CloseGadgetList()
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf