Ich meinte nicht die Position, sondern den Inhalt merken. Und dadurch dann auf die passende Position springen.
Oder anders: Schau mal in der Hilfe nach SetGadgetItemData.
Da ist ein Beispiel, von dem ich glaube, das es genau dazu passt.
Probier es mal aus.
Und für die Mehrfachselektion würde ich wie schon erwähnt die Checkboxen im Treegadget aktivieren.
Das, was man wählen will, bekommt dann eben einen Haken verpasst.
Edit: Jetzt erst gelesen und begriffen. Du machst was? In einem Imagegadget? Wie, was, warum jetzt Image?
Achso, falls der Code nicht in der Linuxhilfe mit drinsteht hier noch mal das Bespiel zu SetGadgetItemData:
Edit2: Habe statt des ListViewGadget ein TreeGadget genommen
Code: Alles auswählen
If OpenWindow(0, 0, 0, 280, 250, "SetGadgetItemData", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(0, 10, 10, 80, 20, "Add")
ButtonGadget(1, 100, 10, 80, 20, "Remove")
ButtonGadget(2, 190, 10, 80, 20, "Test")
;ListViewGadget(3, 10, 40, 260, 200)
TreeGadget(3, 10, 40, 260, 200, #PB_Tree_NoLines | #PB_Tree_CheckBoxes)
For i = 0 To 10
AddGadgetItem(3, i, "Old Item "+Str(i))
SetGadgetItemData(3, i, i)
Next i
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
item = GetGadgetState(3)
Select EventGadget()
Case 0 ; Add
AddGadgetItem(3, item, "New Item")
If item <> -1
SetGadgetItemData(3, item, -1)
Else
SetGadgetItemData(3, CountGadgetItems(3)-1, -1)
EndIf
Case 1 ; Remove
If item <> -1
RemoveGadgetItem(3, item)
EndIf
Case 2 ; Test
If item <> -1
value = GetGadgetItemData(3, item)
If value = -1
MessageRequester("", "Its a new item.")
Else
MessageRequester("", "It was item number "+Str(value))
EndIf
EndIf
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
Denke mal, es wird helfen
Torsten