Auswählen von Einträgen beim Listview-Gadget

Anfängerfragen zum Programmieren mit PureBasic.
Angelo
Beiträge: 102
Registriert: 20.02.2010 14:47
Wohnort: Berlin

Auswählen von Einträgen beim Listview-Gadget

Beitrag von Angelo »

Hallo,
wenn man in einem Listview-Gadget zu einem Eintrag springt, dann wird immer ein solcher Ausschnitt des Listview-Inhalts gezeigt, sodass der angesprungene und damit markierte Eintrag in der zweitletzten Zeile steht. Schöner wäre es, wenn die Positionierung so wäre, dass der "angesprungene" Eintrag in der Mitte stehen würde. Gebt in dem folgenden Beispiel einfach mal einen Sprung zum Eintrag 27 oder 55 etc. ein. Dann wird deutlich, was ich meine. Kann man das so ändern, dass der markierte Eintrag in die Mitte rückt??

Code: Alles auswählen

#Window = 0

Enumeration
  #text
  #listview
  #string
EndEnumeration

OpenWindow(#Window, 0, 0, 590, 300, "Listview-Gadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListViewGadget(#listview, 55, 70, 480, 180)
TextGadget(#text, 10, 10, 130, 20, "Eintragnummer auswählen: ")
StringGadget(#string, 150, 10, 20, 20, "")

For i = 0 To 99
   AddGadgetItem(#listview, -1, "Eintrag mit Nummer: " + Str(i))
Next i

SetActiveGadget(#string)
 
Repeat 

   event = WaitWindowEvent()

   If Event = #PB_Event_CloseWindow
      quit = 1
   EndIf

   If event = #WM_KEYFIRST
      Select EventwParam()
         Case #VK_RETURN 
            nr$ = GetGadgetText(#string)
            SetGadgetState(#listview, Val(nr$))         
      EndSelect
   EndIf
         
Until quit = 1
PB 5.50; Win 7
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Auswählen von Einträgen beim Listview-Gadget

Beitrag von STARGÅTE »

[SchummelMous]

Wenn du folgende Zeilen abänderst, wird erst ein späterer eintrag angefahren und dann der echte:

Code: Alles auswählen

            nr$ = GetGadgetText(#string)
            If Val(nr$) < GetGadgetState(#listview)
              SetGadgetState(#listview, Val(nr$)-5)   
            Else
              SetGadgetState(#listview, Val(nr$)+5)   
            EndIf
            SetGadgetState(#listview, Val(nr$))         
[/SchummelModus]
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Angelo
Beiträge: 102
Registriert: 20.02.2010 14:47
Wohnort: Berlin

Re: Auswählen von Einträgen beim Listview-Gadget

Beitrag von Angelo »

Ja, was soll ich sagen: simple, but quite effective! :)
PB 5.50; Win 7
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Re: Auswählen von Einträgen beim Listview-Gadget

Beitrag von Jilocasin »

Kann aber abhängig von der verwendeten (evtl. Standard-)Schriftart auch ziemlich murksig aussehen :D
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Auswählen von Einträgen beim Listview-Gadget

Beitrag von STARGÅTE »

Das stimmt, hängt hat von der Anzahl sichtbarer Zeilen ab ...

Sicher gibs auch n API lösung ...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Angelo
Beiträge: 102
Registriert: 20.02.2010 14:47
Wohnort: Berlin

Re: Auswählen von Einträgen beim Listview-Gadget

Beitrag von Angelo »

Klar, eine Api-Lösung wäre schon optimal ...
PB 5.50; Win 7
Antworten