ListIconGadget/ CheckBoxes

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

ListIconGadget/ CheckBoxes

Beitrag 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?
Benutzeravatar
wichtel
Beiträge: 150
Registriert: 09.09.2004 08:35
Wohnort: Hattersheim

Beitrag 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.
PB / jaPBe jeweils aktuellste Version, seit 3.62 dabei, XP sp3 de/en & W7 en
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag von Lars »

@Wichtel

Das [c]=#PB_ListIcon_Checked[/c] lass aber mal weg :wink:
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Beitrag 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?
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag 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
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag 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.
Benutzeravatar
wichtel
Beiträge: 150
Registriert: 09.09.2004 08:35
Wohnort: Hattersheim

Beitrag 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.
PB / jaPBe jeweils aktuellste Version, seit 3.62 dabei, XP sp3 de/en & W7 en
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Beitrag 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:
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Beitrag 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:
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag 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.
Antworten