Wie Abhakfelder in ListIconGadget() ausgrauen?
Verfasst: 20.06.2008 11:34
Hallo beieinander!
Habe ein ListIconGadget() mit #PB_ListIcon_Checked. Während nun die in der Liste eingetragenen Dateien in einer Procedure() abgearbeitet werden, die mit CreateThread() vom Hauptprogramm unabhängig operiert, will ich dem Benutzer die Gelegenheit entziehen, die Haken zu verändern. Es darf nicht die gesamte Liste ausgegraut werden! Dies ist die schnellste und einfachste Weise und dazu elegant. Es erspart mir ausufernde Berücksichtigung der Veränderungen an den Abhakfeldern, was ja auch an meine Prozedur übermittelt werden müßte.
Sollte das aus irgendwelchen Gründen nicht möglich sein, muß ich in der Lage sein, allein bei der Veränderung eines Hakens eine Meldung von Windoof zu bekommen. Soviel ich auch probierte, es will nicht klappen.
Signalverarbeitung für das ListIconGadget():
Ich bekomme zwar die Ereignisse _Change und _LeftClick, aber GetGadgetState() liefert mir nur die Nummer des selektierten Eintrags (oder -1, wenn noch nichts selektiert wurde), nicht die Nummer des gerade an-/abgehakten Eintrags. Selbst, wenn ich diese erhielte, könnte ich mit dem darauffolgenden GetGadgetItemState() nur den aktuellen Wert für das Abhaken auslesen. An die Veränderung käme ich erst, wenn ich noch einen alten Zustand, z.B. mit SetGadgetItemData(), zwischenspeicherte und vergleichen würde. Das ist mir alles zuviel Aufwand, wo ich doch schon genügend andere Kriegsschauplätze in meinem Programm habe.
Schließlich gibt es noch die Möglichkeit, wie Häns sie ganz unten in http://www.purebasic.fr/german/viewtopi ... icongadget anriß, alle Einträge immerfort zu testen. Das scheidet für mich aus, denn in meiner Testumgebung zu dem Programm, um das es geht, habe ich 2326 Einträge!
API will ich nicht nutzen, aber es sollte doch wohl möglich sein, die Abhakfelder separat lahmzulegen. Weiß jemand, wie?
Grüße - WPo
Habe ein ListIconGadget() mit #PB_ListIcon_Checked. Während nun die in der Liste eingetragenen Dateien in einer Procedure() abgearbeitet werden, die mit CreateThread() vom Hauptprogramm unabhängig operiert, will ich dem Benutzer die Gelegenheit entziehen, die Haken zu verändern. Es darf nicht die gesamte Liste ausgegraut werden! Dies ist die schnellste und einfachste Weise und dazu elegant. Es erspart mir ausufernde Berücksichtigung der Veränderungen an den Abhakfeldern, was ja auch an meine Prozedur übermittelt werden müßte.
Sollte das aus irgendwelchen Gründen nicht möglich sein, muß ich in der Lage sein, allein bei der Veränderung eines Hakens eine Meldung von Windoof zu bekommen. Soviel ich auch probierte, es will nicht klappen.
Signalverarbeitung für das ListIconGadget():
Code: Alles auswählen
blabla
Case #Liste
Debug "LeftClick="+Str(#PB_EventType_LeftClick)
Debug "LeftDoubleClick="+Str(#PB_EventType_LeftDoubleClick)
Debug "RightClick="+Str(#PB_EventType_RightClick)
Debug "RightDoubleClick="+Str(#PB_EventType_RightDoubleClick)
Debug "Change="+Str(#PB_EventType_Change)
Debug "DragStart="+Str(#PB_EventType_DragStart)
Debug EventType()
If EventType() = #PB_EventType_Change Or EventType() = #PB_EventType_LeftClick
Debug GetGadgetState(#Liste)
Debug GetGadgetItemState(#Liste, GetGadgetState(#Liste))
EndIf
Debug " "
Case blabla...
Schließlich gibt es noch die Möglichkeit, wie Häns sie ganz unten in http://www.purebasic.fr/german/viewtopi ... icongadget anriß, alle Einträge immerfort zu testen. Das scheidet für mich aus, denn in meiner Testumgebung zu dem Programm, um das es geht, habe ich 2326 Einträge!
API will ich nicht nutzen, aber es sollte doch wohl möglich sein, die Abhakfelder separat lahmzulegen. Weiß jemand, wie?
Grüße - WPo