again, vielen Dank für die Mühe die Du Dir machst und die wertvollen Ergebnisse.

Deine Lösung läuft bei mir auf Anhieb:
- Linux Suse 11.1 x86 mit PB 4.51 x86
- XP SP2
Gut ist, dass Deine Lösung nicht von der Spaltenanzahl abhängt und toll, dass der horizontale Scrollbalken berücksichtigt wird.
Beides macht nämlich Probleme in meinem von Omi wunderbar erweiterten Beispiel, worin ich nur einen ersten Schritt klären konnte.
Was beide Lösungen nicht abfangen ist ListIconGadget - #PB_EventType_Change, wenn nämlich durch manuelle Weitenänderung einer Spalte der horizontale Scrollbalken erscheint oder verschwindet. (Das könnte vermutlich auch passieren, wenn die Zelleninhalte variieren.) Mit dem #PB_Event_SizeWindow wird das im Nachgang jedoch abgefangen.
Fragt sich welches Gewicht (Relevanz) das für die letztendliche Anwendung haben würde.
Hallo Omi,
hab'mich über Deine Erweiterung gefreut

Willst Du daran noch weiter arbeiten? Vielleicht magst Du ja noch meine Repeat-Schleife ausprobieren.
Code: Alles auswählen
Repeat
Event = WaitWindowEvent(0)
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = ListIcon_0
If #PB_EventType_Change
CompilerIf #PB_Compiler_OS= #PB_OS_Linux
gInitLastColumnWidth= TV_GetLastColumnWidth(ListIcon_0)
CompilerEndIf
Debug "GetLast / InitLast: " + Str(TV_GetLastColumnWidth(ListIcon_0)) + " ?< " + Str(gInitLastColumnWidth)
EndIf
ElseIf EventGadget = Button_1
ClearGadgetItems(ListIcon_0)
TimerGet()
ElseIf EventGadget = Button_2
AddGadgetItem(ListIcon_0, -1, Str(Random(99999999)) + Chr(10) + "more... " + Str(Random(99999999)) )
TimerGet()
ElseIf EventGadget = Button_3
Debug "GetLast / InitLast: " + Str(TV_GetLastColumnWidth(ListIcon_0)) + " ?< " + Str(gInitLastColumnWidth)
ElseIf EventGadget = Button_7
RemoveGadgetItem(ListIcon_0, 1)
TimerGet()
EndIf
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = Window_0
CloseWindow(Window_0)
Window_0 = 0
Break
EndIf
Case #PB_Event_Timer
Debug "VSlider: " + Str(TV_IsVSliderVisible(ListIcon_0))
RemoveWindowTimer(Window_0, 0)
EndSelect
ForEver