Seite 1 von 2

ListIconGadget/ CheckBoxes

Verfasst: 11.11.2004 18:11
von Pelagio
:cry:
Hallo Leute,

wahrscheinlich ist das Problem was ich habe recht simpel und ich konnte es bis jetzt nicht lösen weil ich nicht den richtigen Weg erkenne, daher bitte ich um HILFE.
Ich habe Daten in ein ListIvonGadget (5 Spalten) mit Checkboxes geschrieben.
Wenn ich die Checkboxes mit einem Häkchen versehe soll etwas passieren (im Menü soll Menüeintrag aktiviert werden [DisableMenuItem]) und ich will wissen in welcher Zeile ich dieses Häkchen gesetzt habe.
Ich habe versucht diese Informationsn mit GetGadgetItemState zu bekommen aber leider war es mir nicht möglich.
Wie kann ich also abfragen ob ich ein Häkchen setzte oder wieder gelöscht habe und in welcher Zeile dies geschieht?

Verfasst: 11.11.2004 18:17
von wichtel

Code: Alles auswählen

If GetGadgetItemState(#list,zeile)&#PB_ListIcon_Checked=#PB_ListIcon_Checked
;mach was
endif

GetGadgetItemState gibt dir immer beide Werte (checked und selected) zurück. Musst du logisch trennen vor dem Vergleich.

Verfasst: 11.11.2004 18:20
von Lars
@Wichtel

Das [c]=#PB_ListIcon_Checked[/c] lass aber mal weg :wink:

Verfasst: 11.11.2004 18:39
von Pelagio
8)
Ich danke euch, ich habe es ausprobiert und es Klappt.

If GetGadgetItemState(#list, zeile) & #PB_ListIcon_Checked
Debug "Hallo"
endif

Allerdings ist mir noch nicht geläufig wie ich die augenblicklich aktivierte Zeile ermittel. Habt ihr hierfür auch einen Tipp?

Verfasst: 11.11.2004 18:51
von bluejoke

Code: Alles auswählen

If GetGadgetItemState(#list, zeile) & #PB_ListIcon_Checked
Debug "Hallo"
endif
Ich kann mir nicht vorstellen, dass das " & #PB_ListIcon_Checked" in der If-Abfrage irgendwas verändert. If prüft ja nur ob wahr oder unwahr, und da #PB_ListIcon_Checked > 0 ist, ist diese Bedingung doch immer erfüllt, oder?

also einfach:

Code: Alles auswählen

If GetGadgetItemState(#list, zeile)
   Debug "Hallo"
endif

Verfasst: 11.11.2004 18:55
von Ynnus
Mit dem "&" Verknüpft man aber 2 Werte und in dem IF wird nicht auf Wahr bzw. >0 sondern auf Gleichheit geprüft, weshalb man zum Abfragen nicht den Wert allein nehmen kann sonder diesen verknüpfen muss.

Verfasst: 11.11.2004 18:58
von wichtel
@bluejoke:
falsch, da auch #PB_ListIcon_Selected zurückgegeben werden kann.
Und das sind zwei verschiedene Zustände die zusammen oder getrennt auftreten können.

@pelagio:
Mit einer Schleife die ganze Liste durchlaufen und alle Zeilen auf gechecked prüfen. Es können ja mehrere sein.

@Lars:
Klar, habs gerade mal so hingetippt und nicht nachgedacht.

Verfasst: 11.11.2004 19:00
von Pelagio
Hallo bluejoke,

ich habe es gerade ausprobiert, mit dem Zusatz & #PB_ListIcon_Checked wird wirklich nur dann in die IF-Abfrage gesprungen wenn die Checkbox angeglickt wird. Ist der Zusatz nicht vorhanden so wird jedesmal wenn das ListIconGadget angeklickt wird in die IF-Abfrage gesprungen.
:allright:

Verfasst: 11.11.2004 19:07
von Pelagio
:freak:
Hallo wichtel,
ich habe mir schon gedacht das ich nur mit einer Schleife die die ganze Liste durchläuft und alle Zeilen auf gechecked prüft mein Problem lösen kann, die frage ist nur wie groß darf meine Liste maximal sein! Zum glück habe ich nicht viel Daten.

DANKE an Alle für die Problemlösung.
:allright:

Verfasst: 11.11.2004 19:16
von bluejoke
Von mir auch ein Dankeschön dafür, dass ihr mich aufgeklärt habt.
Ich habe wohl "&" und "AND" verwechselt, oder?


EDIT: Und if prüft doch, ob wahr oder unwahr, aber eben den Ausdruck (if 1=1 ist ja wahr, und so interpretiert if das IMHO auch).
Ich ging ja davon aus, dass das nach dem & ein eigenständiger Ausdruck ist, und dann, hätte es wohl nichts verändert.