
Mausclick in ListIcon "zündet" doppelt ?? GELÖST!
...was aber nichts an der falschen Einsetzung der Flags vom einem Gadgets beim anderen gadget ändert 

PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- Captn. Jinguji
- Beiträge: 397
- Registriert: 07.06.2005 19:47
- Computerausstattung: PB 4.73x64, i7, WIN 10x64, ATI NVidia RTX 2070
- Wohnort: Witten
Ja, DESWEGEN habe ich ja betont, dass Dein Tip richtig & wichtig war.AND51 hat geschrieben:...was aber nichts an der falschen Einsetzung der Flags vom einem Gadgets beim anderen gadget ändert
Ich gehe allerdings andererseits inzwischen davon aus, dass das falsche Flag sowieso ignoriert wurde oder wirkungslos war, denn das Verhaltn ist ja ohne es auch das Falsche.
Die Flags sind inzwischen auch ordentlich per VisualDesigner generiert, nicht mehr per Hand eingetragen.

Fazit: es war zwar ein grober Flüchtigkeitsfehler drin, aber bisher kein so ganz richtig auffälliger Denkfehler erkennbar.
HMnja..... gibt's noch irgendeine bessere Möglichkeit als den Weg, den ich gewählt habe, um die Herkunft des falschen Events zu ermitteln ?
Die Definition des ListIcongadgets sieht nun - vom Visual Designer generiert - SO aus:
Code: Alles auswählen
ListIconGadget(#LIG_SOURCE, 15, 25, 550, 340, "Sel.", 30, #PB_ListIcon_CheckBoxes | #PB_ListIcon_MultiSelect | #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect)

Beissen einander vielleicht #PB_ListIcon_FullRowSelect und #PB_ListIcon_MultiSelect
Zuletzt geändert von Captn. Jinguji am 23.09.2006 18:25, insgesamt 1-mal geändert.
Ist das Kunst hier, oder kann das weg ?
nein, die beißen sich nicht, sonst hätt ich das schon wissen müssen.
habe die beiden selber schon mal per hand zusammengebracht.
habe die beiden selber schon mal per hand zusammengebracht.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- HeX0R
- Beiträge: 3042
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
Code: Alles auswählen
#PB_ListView_ClickSelect = #PB_ListIcon_AlwaysShowSelection
Habe mir das mal so grob durchgelesen.
Das Problem ist in der Regel das von den Gadget immer mehrere Events kommen können. So mit EventType() erst auf das richtige Event reagieren.
FF
Das Problem ist in der Regel das von den Gadget immer mehrere Events kommen können. So mit EventType() erst auf das richtige Event reagieren.
FF

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
> Das Problem ist in der Regel das von den Gadget immer mehrere Events kommen können. So mit EventType() erst auf das richtige Event reagieren.
außerdem kann pro Event-abfrage nur eines bearbeitet werden.
wenn also innerhalb einer schleife auf Events reagiert werden muss,
muss man sicherstellen, dass sie alle vorhandenen abarbeitet,
bevor neue erzeugt werden können.
außerdem kann pro Event-abfrage nur eines bearbeitet werden.
wenn also innerhalb einer schleife auf Events reagiert werden muss,
muss man sicherstellen, dass sie alle vorhandenen abarbeitet,
bevor neue erzeugt werden können.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Captn. Jinguji
- Beiträge: 397
- Registriert: 07.06.2005 19:47
- Computerausstattung: PB 4.73x64, i7, WIN 10x64, ATI NVidia RTX 2070
- Wohnort: Witten
Lieber mk-soft, nach einem ersten Test würde ich sagen: Du hast es nun endgültig getroffen, danke.mk-soft hat geschrieben:Habe mir das mal so grob durchgelesen.
Das Problem ist in der Regel das von den Gadget immer mehrere Events kommen können. So mit EventType() erst auf das richtige Event reagieren.
FF
Es werden in der Tat zwei Events erzeugt, und zwar in der Reihenfolge:
768 = #PB_EventType_Change
0 = #PB_EventType_LeftClick
Wenn Du mich jetzt noch erleuchten kannst, welches der beiden Events denn nun "in solchen Fällen" das "Richtige" ist / nach welchem ich filtern soll, kennt meine Dankbarkeit kaum noch Grenzen

Gehe ich recht in der Annahme, dass der "768er" das eigentliche Markieren der Zeile darstellt ? Dann würde ich - sozusagen kontraintuitiv - eher den abfragen als den "0er" (=Leftclick), weil Letzterer ja eher device- und eben nicht gadgetbezogen ist?
Zuletzt geändert von Captn. Jinguji am 24.09.2006 23:11, insgesamt 1-mal geändert.
Ist das Kunst hier, oder kann das weg ?
- Captn. Jinguji
- Beiträge: 397
- Registriert: 07.06.2005 19:47
- Computerausstattung: PB 4.73x64, i7, WIN 10x64, ATI NVidia RTX 2070
- Wohnort: Witten
Hmnja... aber das ist doch in diesem Falle nur Zufall, oder ? Nehmen wir den - sehr unwahrscheinlichen - Fall an dass Microsoft bzw. Monsieur Laboureur einmal darauf verfallen sollten, #PB_ListView_ClickSelect ungleich #PB_ListIcon_AlwaysShowSelection zu machen, wäre das Dilemma dann doch da. Den Einwand, versehentlich eine "falsche" Konstante einge-oder-t zu haben, mache ich mir schon zu eigen.HeX0R hat geschrieben:Es wurde also nicht ignoriert, oder war gar falsch, es wurde einfach nur anders interpretiert...Code: Alles auswählen
#PB_ListView_ClickSelect = #PB_ListIcon_AlwaysShowSelection
Ist das Kunst hier, oder kann das weg ?
- Captn. Jinguji
- Beiträge: 397
- Registriert: 07.06.2005 19:47
- Computerausstattung: PB 4.73x64, i7, WIN 10x64, ATI NVidia RTX 2070
- Wohnort: Witten
Ja, so ähnlich ist das wohl. Jedoch muss ich ehrlich gestehen, dass, selbst wenn Du mir das so VOR meiner Umstellung auf "Clickmarkierung" geschrieben hättest, ich ohne mk-softs Hinweis dennoch in diese Falle gegangen wäre, weil das Programm bei Nutzung der SelectBox in der ersten Spalte - jawohl, das IST ein anderer Mechanismus, wie ich jetzt weiss - exakt so funktioniert hat wie ich mir das gedacht hatte. In erster Näherung sieht das ja "von aussen" nicht so viel anders aus, ob auf einen Mausclick ein Häkchen in einer Box oder eine Markierung einer Zeile gesetzt wird.Kaeru Gaman hat geschrieben:> Das Problem ist in der Regel das von den Gadget immer mehrere Events kommen können. So mit EventType() erst auf das richtige Event reagieren.
außerdem kann pro Event-abfrage nur eines bearbeitet werden.
wenn also innerhalb einer schleife auf Events reagiert werden muss,
muss man sicherstellen, dass sie alle vorhandenen abarbeitet,
bevor neue erzeugt werden können.
Wenn ich es jetzt aber einigermassen verstanden habe, muss ich zumindest bei der von mir gewählten Konstruktion NACH Einführung der
Code: Alles auswählen
if EventType() = ...
Ist das Kunst hier, oder kann das weg ?
No' 'ne Idee: Verwendest du WindowEvent oder WAITWindowEvent? Kann ja vielleicht sein, dass ein mausklick zwei mal gewertet wird, weil du den Mausbutton über mehrere Windowevents hinweg gedrückt hälst...
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End