ich habe mir mal das Example für das ListIconView aus der PB-Hilfe genommen und eine Eventverarbeitung für Mausklicks dazugepackt. Ich wollte einfach mal wissen, was da an Eventverarbeitung rauskommt, weil ich hier und im englischen Forum gelesen habe, dass die Mausklickverarbeitung manchmal tricky ist und es gibt ja auch Workarounds dafür. Na jedenfalls kommt da ein Verhalten raus, zu dem ich ne Frage habe.
Hier ist der Code:
Code: Alles auswählen
; Zeigt mögliche Flags des ListIconGadgets in Aktion...
If OpenWindow(0, 0, 0, 640, 300, "ListIconGadgets", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
; linke Spalte
TextGadget (6, 10, 10, 300, 20, "ListIcon Standard", #PB_Text_Center)
ListIconGadget(0, 10, 25, 300, 70, "Column 1", 100)
TextGadget (7, 10, 105, 300, 20, "ListIcon with Checkbox", #PB_Text_Center)
ListIconGadget(1, 10, 120, 300, 70, "Column 1", 100, #PB_ListIcon_CheckBoxes) ; ListIcon mit Checkbox
TextGadget (8, 10, 200, 300, 20, "ListIcon with Multi-Selection", #PB_Text_Center)
ListIconGadget(2, 10, 215, 300, 70, "Column 1", 100, #PB_ListIcon_MultiSelect) ; ListIcon mit Mehrfachselektion
; rechte Spalte
TextGadget (9, 330, 10, 300, 20, "ListIcon with separator lines",#PB_Text_Center)
ListIconGadget(3, 330, 25, 300, 70, "Column 1", 100, #PB_ListIcon_GridLines)
TextGadget (10, 330, 105, 300, 20, "ListIcon with FullRowSelect and AlwaysShowSelection",#PB_Text_Center)
ListIconGadget(4, 330, 120, 300, 70, "Column 1", 100, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
TextGadget (11, 330, 200, 300, 20, "ListIcon Standard with large icons",#PB_Text_Center)
ListIconGadget(5, 330, 220, 300, 65, "", 200,#PB_ListIcon_GridLines)
For a = 0 To 4 ; fügt Spalten zu jedem der ersten 5 ListIcons hinzu
For b = 2 To 4 ; fügt 3 weitere Spalten zu jedem ListIcon hinzu
AddGadgetColumn(a, b, "Column " + Str(b), 65)
Next
For b = 0 To 2 ; fügt 4 Einträge auf jeder Zeile der ListIcons hinzu
AddGadgetItem(a, b, "Item 1"+Chr(10)+"Item 2"+Chr(10)+"Item 3"+Chr(10)+"Item 4")
Next
Next
; Hier ändern wir die Anzeige des ListIcons in große Icons und zeigen ein Bild an
If LoadImage(0, #PB_Compiler_Home+"Examples\Sources\Data\File.bmp") ; ändern Sie Pfad/Dateiname für Ihr eigenes 32x32 Pixel Bild
SetGadgetAttribute(5, #PB_ListIcon_DisplayMode, #PB_ListIcon_LargeIcon)
AddGadgetItem(5, 1, "Picture 1", ImageID(0))
AddGadgetItem(5, 2, "Picture 2", ImageID(0))
EndIf
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 0
Select EventType()
Case #PB_EventType_LeftClick : Debug "Linksklick auf ListIcon Standard"
Case #PB_EventType_RightClick : Debug "Rechtsklick auf ListIcon Standard"
Case #PB_EventType_LeftDoubleClick : Debug "LinksDoppelklick auf ListIcon Standard"
Case #PB_EventType_RightDoubleClick : Debug "Rechtsdoppelklick auf ListIcon Standard"
EndSelect
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf
Hier meine Frage:Rechtsklick auf ListIcon Standard
Rechtsdoppelklick auf ListIcon Standard
Linksklick auf ListIcon Standard
LinksDoppelklick auf ListIcon Standard
Linksklick auf ListIcon Standard
Ich hatte schon gelesen, dass ein Doppelklick auch immer das Einzelklickevent auslöst. Damit könnte ich leben, das passt sogar zu dem, was ich mit den Mausevents vorhabe (Einzelklick löst eine Aktualisierung der Anzeige in einer Form aus, Doppelklick öffnet eine weitere Form zur Bearbeitung des Datensatzes).
Was mich stutzig macht:
Doppelklick Rechts löst folgende Kette aus: Einzelklickevent-Doppelklickevent
Doppelklick Links löste folgende Kette aus: Einzelklickevent-Doppelklickevent-Einzelklickevent
Warum dieser Unterschied? Ich finde in meinem primitiven Beispielcode nix, was das erklären könnte. Die Case-Fälle zur Eventverarbeitung sind doch alle gleich.
Könnt ihr mir das sagen?