SetGadgetItemData & SetGadgetItemColor fuer Panel
Hallo edel!
Mit diesem Schnipsel erhalte ich die erwähnten Werte unter XP:
Vielleicht findet sich ja sonst noch jemand, der das Verhalten unter Vista/XP testet?
Lord
Mit diesem Schnipsel erhalte ich die erwähnten Werte unter XP:
Code: Alles auswählen
IncludeFile "PanelGadget2.pbi"
;Define hwnd
hwnd = OpenWindow(0,#PB_Ignore,#PB_Ignore,300,300,"Test")
CreateGadgetList(hwnd)
PanelGadget(0,0,0,300,300)
AddGadgetItem(0,0,"1"):SetGadgetItemData(0,0,1)
AddGadgetItem(0,1,"2"):SetGadgetItemData(0,1,1)
AddGadgetItem(0,2,"3"):SetGadgetItemData(0,2,1)
Debug GetGadgetItemData(0,4); Liefert -1, das ist OK, da Tab nicht existiert
Debug GetGadgetItemData(0,0); Liefert 1, sollte besser 0 sein
SetGadgetItemData(0,0,0); Tab mit '0' füttern
Debug GetGadgetItemData(0,0); ab jetzt natürlich die oben gesetzte 0
Repeat : Until WaitWindowEvent() = 16
Lord
Oh, das ist mir aber peinlich.edel hat geschrieben:Wieso sollte das 0 sein? Du setzt doch die 1 selber.

Ja ja, leichte Schläge auf den Hinterkopf erhöhen das Denkvermögen
und verleihen dem Po ein glanzvolles Aussehen. Danke dafür.
Die drei SetGadgetItemData() hinter dem AddGadgetItem() stammten noch von den Tests wegen des vorherigen IMA. Die hatte ich mir da gleich dahintergeschrieben, damit dieser Fehler nicht auftrat. Später habe ich dann den Teil immer per Cut&Paste übernommen und somit auch die gesetzte '1'.
Tja, wenn dieTomaten auf den Augen doch durchsichtig wären.
Ich hoffe, ich hab' nicht zu stark genervt.
Gruß
Lord
Jetzt muß ich leider diesen Thread nochmal ausgraben.
Ich habe festgestellt, daß die neuen Befehle
SetGadgetItemColor() und SetGadgetItemData()
mit PB v4.30 unvorhersehbare IMA produzieren.
Bei mir trat ein IMA immer beim Öffnen eines neuen Fensters auf.
Auf das Nötigste reduziert, tritt beim folgenden Testcode beim Verlassen
von PB_PanelParentCB() der Fehler in dieser Zeile auf:
Bei den Befehlen GetGadgetItemColor() und GetGadgetItemData()
tritt das IMA-Problem nicht auf, sie liefern aber keine korrekten Werte.
Läßt sich das Includefile an PB v4.30 anpassen und wenn ja, wie?
Ich habe festgestellt, daß die neuen Befehle
SetGadgetItemColor() und SetGadgetItemData()
mit PB v4.30 unvorhersehbare IMA produzieren.
Bei mir trat ein IMA immer beim Öffnen eines neuen Fensters auf.
Auf das Nötigste reduziert, tritt beim folgenden Testcode beim Verlassen
von PB_PanelParentCB() der Fehler in dieser Zeile auf:
ProcedureReturn CallWindowProc_(callback,hwnd,msg,wparam,lparam)
Code: Alles auswählen
IncludeFile "PanelGadget.pbi"
#MainWindow = 1
#Panel = 1
#Tab1 = 1
OpenWindow(#MainWindow, 20, 20, 300, 200, "PanelGadget-Test")
PanelGadget(#Panel, 5, 5, 290, 190)
AddGadgetItem(#Panel, -1, "Tab 1")
SetGadgetItemColor(#Panel, #Tab1, #PB_Gadget_FrontColor, $0000FF)
;Debug GetGadgetItemColor(#Panel, #Tab1, #PB_Gadget_FrontColor)
;SetGadgetItemData(#Panel,#Tab1, 1)
;Debug GetGadgetItemData(#Panel,#Tab1)
Repeat:Until WaitWindowEvent(10)=#PB_Event_CloseWindow
OpenWindow(#MainWindow, 20, 20, 300, 200, "PanelGadget-Test")
PanelGadget(#Panel, 5, 5, 290, 190)
AddGadgetItem(#Panel, -1, "Tab 2")
Repeat:Until WaitWindowEvent(10)=#PB_Event_CloseWindow
tritt das IMA-Problem nicht auf, sie liefern aber keine korrekten Werte.
Läßt sich das Includefile an PB v4.30 anpassen und wenn ja, wie?

- alter Mann
- Beiträge: 201
- Registriert: 29.08.2008 09:13
- Wohnort: hinterm Mond
hat nichts mit PB4.3 zu tun
probier das mal
probier das mal
Code: Alles auswählen
IncludeFile "PanelGadget.pbi"
#MainWindow = 1
#Panel = 1
#Tab1 = 0
OpenWindow(#MainWindow, 20, 20, 300, 200, "PanelGadget-Test")
PanelGadget(#Panel, 5, 5, 290, 190)
AddGadgetItem(#Panel, -1, "Tab 1")
SetGadgetItemColor(#Panel, #Tab1, #PB_Gadget_FrontColor, $0000FF)
Debug GetGadgetItemColor(#Panel, #Tab1, #PB_Gadget_FrontColor)
SetGadgetItemData(#Panel,#Tab1, 1)
Debug GetGadgetItemData(#Panel,#Tab1)
Repeat:Until WaitWindowEvent(10)=#PB_Event_CloseWindow
[code]
Win11 64Bit / PB 6.0
im grunde genommen machst du dein zweites Fenster mit ner anderen Konstante
und passt die ersten zeilen noch an:
dann geht es auch.
(um den Code von alter mann noch zu ergänzen.)
und passt die ersten zeilen noch an:
Code: Alles auswählen
#MainWindow = 1
#Panel = 1
#Tab1 = 0
#Second = 2 ; das zweite Fenster
(um den Code von alter mann noch zu ergänzen.)
Win11 x64 | PB 6.20
Hallo Alter Mann!
Du hast natürlich zum Teil Recht.
Die falschen Attribute hatte ich natürlich durch das Ansprechen des falschen Tabs erhalten.
Das eigentliche Problem, der IMA, bleibt aber bestehen. Du erhältst ihn in deinem Code
nur deshalb nicht, weil Du das Fenster nicht wieder erstellst.
Hier nochmals der korrigierte Codeschnipsel:
Du hast natürlich zum Teil Recht.
Die falschen Attribute hatte ich natürlich durch das Ansprechen des falschen Tabs erhalten.

Das eigentliche Problem, der IMA, bleibt aber bestehen. Du erhältst ihn in deinem Code
nur deshalb nicht, weil Du das Fenster nicht wieder erstellst.
Hier nochmals der korrigierte Codeschnipsel:
Code: Alles auswählen
IncludeFile "PanelGadget.pbi"
#MainWindow = 1
#Panel = 1
#Tab1 = 0
OpenWindow(#MainWindow, 20, 20, 300, 200, "PanelGadget-Test")
PanelGadget(#Panel, 5, 5, 290, 190)
AddGadgetItem(#Panel, -1, "Tab 1")
SetGadgetItemColor(#Panel, #Tab1, #PB_Gadget_FrontColor, $0000FF)
; Debug GetGadgetItemColor(#Panel, #Tab1, #PB_Gadget_FrontColor)
; SetGadgetItemData(#Panel,#Tab1, 1)
; Debug GetGadgetItemData(#Panel,#Tab1)
Repeat:Until WaitWindowEvent(10)=#PB_Event_CloseWindow
OpenWindow(#MainWindow, 20, 20, 300, 200, "PanelGadget-Test")
PanelGadget(#Panel, 5, 5, 290, 190)
AddGadgetItem(#Panel, -1, "Tab 2")
Repeat:Until WaitWindowEvent(10)=#PB_Event_CloseWindow

hier noch mal vollständig, ohne Fehler und schön bunt:
Code: Alles auswählen
IncludeFile "PanelGadget.pbi"
#MainWindow = 1
#Panel = 1
#Tab1 = 0
#Second = 2
OpenWindow(#MainWindow, 20, 20, 300, 200, "PanelGadget-Test")
PanelGadget(#Panel, 5, 5, 290, 190)
AddGadgetItem(#Panel, -1, "Tab 1")
SetGadgetItemColor(#Panel, #Tab1, #PB_Gadget_FrontColor, $0000FF)
; Debug GetGadgetItemColor(#Panel, #Tab1, #PB_Gadget_FrontColor)
; SetGadgetItemData(#Panel,#Tab1, 1)
; Debug GetGadgetItemData(#Panel,#Tab1)
Repeat:Until WaitWindowEvent(10)=#PB_Event_CloseWindow
OpenWindow(#Second, 20, 20, 300, 200, "PanelGadget-Test")
PanelGadget(#Panel, 5, 5, 290, 190)
AddGadgetItem(#Panel, -1, "Tab 2")
SetGadgetItemColor(#Panel, #Tab1, #PB_Gadget_FrontColor, $0000FF)
Repeat:Until WaitWindowEvent(10)=#PB_Event_CloseWindow
Win11 x64 | PB 6.20