Hi,
ich habe folgenden Effekt festgestellt.
Bei Programmierung eines Fensters mit Dialog kann ich keinen Status einer CheckBox innerhalb eines ListIcons setzen. Programmiere ich das Fenster via PB funktioniert alles.
Kann das jemand bestätigen?
Status einer CheckBox in ListIcon Problem via Dialog Fenster
-
- Beiträge: 220
- Registriert: 30.04.2009 21:21
- Computerausstattung: i5-2300 (2.8 Ghz) Win10 -64bit / PB 5.73 LTS
Status einer CheckBox in ListIcon Problem via Dialog Fenster
Wissen schadet nur dem, der es nicht hat !
- HeX0R
- Beiträge: 2954
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 - Kontaktdaten:
Re: Status einer CheckBox in ListIcon Problem via Dialog Fen
Danke für den Code...
Kann ich nicht bestätigen:
Kann ich nicht bestätigen:
Code: Alles auswählen
Procedure.s GetXMLString()
Protected XML$
XML$ + "<?xml version='1.0' encoding='UTF-16'?>"
XML$ + ""
XML$ + "<dialogs>"
XML$ + " <window name='window_1' flags='#PB_Window_SystemMenu'>"
XML$ + " <frame name='frame_1' text='Test'>"
XML$ + " <listicon name='listicon_1' width='300' height='250' flags='#PB_ListIcon_CheckBoxes'/>"
XML$ + " </frame>"
XML$ + " </window>"
XML$ + "</dialogs><!--DDesign0R Definition: PureBasic|1|1|1|_-->"
XML$ + ""
ProcedureReturn XML$
EndProcedure
;Test it
CompilerIf #PB_Compiler_IsMainFile
a$ = GetXMLString()
CatchXML(0, @a$, StringByteLength(a$), 0, #PB_Unicode)
CreateDialog(0)
OpenXMLDialog(0, 0, "window_1")
For i = 1 To 20
AddGadgetItem(DialogGadget(0, "listicon_1"), -1, "Item " + Str(i))
Next i
SetGadgetItemState(DialogGadget(0, "listicon_1"), 5, #PB_ListIcon_Checked)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
CompilerEndIf
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}
-
- Beiträge: 220
- Registriert: 30.04.2009 21:21
- Computerausstattung: i5-2300 (2.8 Ghz) Win10 -64bit / PB 5.73 LTS
Re: Status einer CheckBox in ListIcon Problem via Dialog Fen
OK HeXOR,
erst mal Danke für die Info und den Code.
Ich verwenden zum Aufbau des Dialogs auch Dein Tool. Es gibt nur einen kleinen Unterschied. Ich verwende die ID anstelle des Namens.
Erzeuge ich den Code so wie Du, funktioniert es auch.
Erstaunlich ist, dass ich das ListIcon in meinem Programm auch mit Zeilen füllen kann. Nur sobald ich die CheckBoxen aktivieren möchte passiert nichts. Die Befehle scheinen auch OK zu sein, da keine Fehlermeldung generiert wird.
Hier mal ein Code snippet
XML Snippet:
ListIcon Füllsnippet (funktioniert problemlos!)
ListIcon CheckBox Steuerung (Funktioniert nicht!)
Woran könnte das liegen?
Ich setze PB 5.73 LTS ein
erst mal Danke für die Info und den Code.
Ich verwenden zum Aufbau des Dialogs auch Dein Tool. Es gibt nur einen kleinen Unterschied. Ich verwende die ID anstelle des Namens.
Erzeuge ich den Code so wie Du, funktioniert es auch.
Code: Alles auswählen
;/-------------------------
;|
;| Names, IDs, Procedures
;|
;| Example Template for Dialog Design0R
;|
;/-------------------------
Runtime Enumeration Windows
#Window_1
EndEnumeration
#DD_WIN_window_1 = "window_1"
Runtime Enumeration Gadgets
#listicon_1
EndEnumeration
#DD_GADGET_listicon_1 = "listicon_1"
Procedure.s GetXMLString()
Protected XML$
XML$ + "<?xml version='1.0' encoding='UTF-16'?>"
XML$ + ""
XML$ + "<dialogs>"
XML$ + " <window flags='#PB_Window_SystemMenu' width='200' height='200' name='window_1' id='#Window_1'>"
XML$ + " <listicon flags='#PB_ListIcon_CheckBoxes | #PB_ListIcon_GridLines' name='listicon_1' id='#listicon_1'/>"
XML$ + " </window>"
XML$ + "</dialogs><!--DDesign0R Definition: PureBasic|1|1|0-->"
XML$ + ""
ProcedureReturn XML$
EndProcedure
;Test it
CompilerIf #PB_Compiler_IsMainFile
a$ = GetXMLString()
CatchXML(0, @a$, StringByteLength(a$), 0, #PB_Unicode)
CreateDialog(0)
OpenXMLDialog(0,0,"window_1")
For i = 1 To 20
AddGadgetItem(#listicon_1,-1,"Item" + Str(i))
Next
SetGadgetItemState(#listicon_1,5,#PB_ListIcon_Checked)
SetGadgetItemState(#listicon_1,6,#PB_ListIcon_Checked)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
CompilerEndIf
;(c) HeX0R 2019
Hier mal ein Code snippet
XML Snippet:
Code: Alles auswählen
...
XML$ + " <hbox expand='equal'>"
XML$ + " <vbox expand='item:1'>"
XML$ + " <listicon flags='#PB_ListIcon_CheckBoxes | #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect' name='listicon_parameter_listenanzeige' id='#listicon_parameter_listenanzeige' onchange='newparameter()' onevent='newparameter()'/>"
XML$ + " <frame text=' Anzeige ab ' name='frame_parameter_anzeigeab' id='#frame_parameter_anzeigeab'>"
XML$ + " <vbox expand='equal'>"
XML$ + " <text text='50' flags='#PB_Text_Center' name='text_parameter_qualitylevel' id='#text_parameter_qualitylevel'/>"
XML$ + " <trackbar flags='#PB_TrackBar_Ticks' text=' Anzeige ab ' min='1' max='9' height='30' name='trackbar_parameter_quality' id='#trackbar_parameter_quality' onevent='newparameter()'/>"
XML$ + " </vbox>"
XML$ + " </frame>"
XML$ + " </vbox>"
XML$ + " <listicon flags='#PB_ListIcon_GridLines' name='listicon_parameter_statistik' id='#listicon_parameter_statistik'/>"
XML$ + " </hbox>"
...
Code: Alles auswählen
AddGadgetColumn(#listicon_parameter_listenanzeige,0,"Wahl",50)
AddGadgetColumn(#listicon_parameter_listenanzeige,1,"Listen Name",100)
AddGadgetColumn(#listicon_parameter_listenanzeige,2,"Listendatum",50)
AddGadgetItem(#listicon_parameter_listenanzeige,0,Chr(10) + "Liste 1")
AddGadgetItem(#listicon_parameter_listenanzeige,1,Chr(10) + "Liste 2")
AddGadgetItem(#listicon_parameter_listenanzeige,2,Chr(10) + "Liste 3")
AddGadgetItem(#listicon_parameter_listenanzeige,3,Chr(10) + "Liste 4")
Code: Alles auswählen
envi\SEU = ReadPreferenceInteger("SEU",1)
If envi\SEU = 1
SetGadgetItemState(#listicon_parameter_listenanzeige,0,#PB_ListIcon_Checked)
EndIf
envi\SUN = ReadPreferenceInteger("SUN",1)
If envi\SUN = 1
SetGadgetItemState(#listicon_parameter_listenanzeige,1,#PB_ListIcon_Checked)
EndIf
envi\SUK = ReadPreferenceInteger("SUK",1)
If envi\SUK = 1
SetGadgetItemState(#listicon_parameter_listenanzeige,2,#PB_ListIcon_Checked)
EndIf
envi\SUS = ReadPreferenceInteger("SUS",1)
If envi\SUS = 1
SetGadgetItemState(#listicon_parameter_listenanzeige,3,#PB_ListIcon_Checked)
EndIf
Ich setze PB 5.73 LTS ein
Wissen schadet nur dem, der es nicht hat !
- HeX0R
- Beiträge: 2954
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 - Kontaktdaten:
Re: Status einer CheckBox in ListIcon Problem via Dialog Fen
Es ist immer schwierig mit nur ein paar Snippets das Problem zu finden.
Ich sehe jetzt nichts was dafür verantwortlich sein könnte, kannst Du das Ganze nicht soweit zusammenstampfen, dass es gerade noch lauffähig ist, und trotzdem das Verhalten aufzeigt?
Vermutlich findest Du dann sogar den Fehler selbst schon.
Mach doch mal nen paar Debugs rein, um zu sehen, ob irgendeine Deiner SetGadgetItemState() Prozeduren überhaupt aufgerufen werden.
Ich sehe jetzt nichts was dafür verantwortlich sein könnte, kannst Du das Ganze nicht soweit zusammenstampfen, dass es gerade noch lauffähig ist, und trotzdem das Verhalten aufzeigt?
Vermutlich findest Du dann sogar den Fehler selbst schon.
Mach doch mal nen paar Debugs rein, um zu sehen, ob irgendeine Deiner SetGadgetItemState() Prozeduren überhaupt aufgerufen werden.
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}
-
- Beiträge: 220
- Registriert: 30.04.2009 21:21
- Computerausstattung: i5-2300 (2.8 Ghz) Win10 -64bit / PB 5.73 LTS
Re: Status einer CheckBox in ListIcon Problem via Dialog Fen
mea culpa
wenn man so blöd ist und Checkbox Status setzt bevor diese überhaupt im ListIcon eingetragen sind kann es nicht funktionieren.
Eindeutig saß der Fehler vor der Tastatur.
wenn man so blöd ist und Checkbox Status setzt bevor diese überhaupt im ListIcon eingetragen sind kann es nicht funktionieren.
Eindeutig saß der Fehler vor der Tastatur.
Wissen schadet nur dem, der es nicht hat !