Seite 4 von 6

Verfasst: 14.08.2005 17:24
von DarkDragon

Code: Alles auswählen

#WindowWidth  = 640
#WindowHeight = 480
#WindowFlags  = #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_SystemMenu

hWnd = OpenWindow(0, 0, 0, #WindowWidth, #WindowHeight, #WindowFlags, "")

CreateGadgetList(WindowID())
ListIconGadget(0, 0, 0, #WindowWidth, #WindowHeight, "Test", #WindowWidth)
ActivateGadget(0) ;Das muss sein ;) 
For k=0 To 10
  AddGadgetItem(0, -1, "Test "+Str(k))
Next

Repeat
  If ElapsedMilliseconds()-t > 2000
  SetGadgetState(0, Random(CountGadgetItems(0)-1))
  t = ElapsedMilliseconds()
  EndIf
  Event = WindowEvent()
  Delay(10)
Until Event = #PB_Event_CloseWindow
End

Verfasst: 14.08.2005 17:32
von ts-soft
Da haste was verkehrt verstanden, bzw. ich mich schlecht ausgedrückt. Wenn mehr Zeilen vorhanden als sichtbar, muß ich das ListIconGadget ja irgendwie weiterscrollen. Also mit SendMessage. Wahrscheinlich #LVM_SCROLL oder #LVM_ENSUREVISIBLE, kriegs aber nicht gebacken, der Scrollt nicht so, das die aktuelle Zeile sichtbar ist. Wenn ich dafür die Lösung hätte, das andere ist jetzt eingebaut. Nach Return oder Button springt er weiter zum nächsten Eintrag, aber wenn dieser ausserhalb des sichtbaren Bereichs liegt, scrollt er nicht, also das selektierte Element im ListIconGadget ist nicht sichtbar

Verfasst: 14.08.2005 18:19
von HeX0R

Code: Alles auswählen

#WindowWidth  = 640
#WindowHeight = 480
#WindowFlags  = #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_SystemMenu

hWnd = OpenWindow(0, 0, 0, #WindowWidth, #WindowHeight, #WindowFlags, "")

CreateGadgetList(WindowID())
ListIconGadget(0, 0, 0, #WindowWidth, #WindowHeight, "Test", #WindowWidth)
ActivateGadget(0) ;Das muss sein ;)
For k=0 To 1000
  AddGadgetItem(0, -1, "Test "+Str(k))
Next

Repeat
  If ElapsedMilliseconds()-t > 2000
    i = Random(CountGadgetItems(0)-1)
    SetGadgetState(0, i)
    SendMessage_(GadgetID(0), #LVM_ENSUREVISIBLE, i, 0)
    t = ElapsedMilliseconds()
  EndIf
  Event = WindowEvent()
  Delay(10)
Until Event = #PB_Event_CloseWindow
End

Verfasst: 14.08.2005 18:46
von DarkDragon
Ach so war das gemeint, naja, HeXOR hat dir die Lösung ja schon gegeben.

Verfasst: 14.08.2005 19:04
von ts-soft
Auch nicht, ich habs aber Mithilfe der PV_Gadget Lib gelöst. Kannste jetzt Version 1.5.4 downloaden :)
Ich hoffe es entspricht Deinen Wünschen :wink:

Verfasst: 14.08.2005 19:07
von HeX0R
Wie auch nicht ?
Das einzige was ich vergessen hab, is ein ActivateGadget(0) vor das SetGadgetState(0, i) zu setzen, damit das auch funzt, wenn das Gadget den Focus verliert.
Ansonsten sollte es keine Probleme geben

Verfasst: 14.08.2005 19:13
von ts-soft
Das wahr leider auch nicht das richtige, hab jetzt mit:
PV_Gadgets.chm hat geschrieben: Forces the selected row of a ListIconGadget into view.

Use:
PVGadgets_SelectListIconRow(#Gadget,Row)
gelöst. Trotzdem vielen Danke für Eure Bemühungen :allright:

//Edit eine reine API-Lösung wäre trotzdem interessant, es muß ja ene passende Message geben :freak:

Verfasst: 03.01.2006 13:02
von MVXA
Warum gibt es denn kein Download mehr :cry: ?

Verfasst: 03.01.2006 15:07
von ts-soft
weil der Thread alt ist
Kann Dir aber gerne einen Downloadlink zukommen lassen, öffentlich gibts
im Moment keine Links, dafür haben mich zuviele verärgert!

Verfasst: 03.01.2006 15:23
von dige
Ich wäre auch interessiert! Habe den Thread erst jetzt bemerkt