Listview Paginieren Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

KHA
Posts: 232
Joined: 21 Aug 2018, 11:11

Listview Paginieren

04 Oct 2019, 15:06

Guten Abend,
ist es möglich eine Listview zu paginieren, also zB. in 10er Zeilen zu unterteilen, auf der ersten Seite 1-10, auf der zweiten Seite 11-20 usw.

vielen Dank im Voraus

Code: Select all

Gui, +Resize
Gui, Add, ListView, xm vPagnierenWert gPaginierenEreignis r25 w500 Grid AltSubmit, ID|Überschrift|Preis|Beschreibung|Erstell-Datum
Loop, 100
{
LV_Add("", A_index, "Ueberschrift " . A_index , "Preis " . A_index , "Beschreibung " . A_index, "Erstelldatum " . A_index, "Entfernung" . A_index)

if Mod(A_index, 10) = 0
	{
	break
	}
}
LV_ModifyCol()
Gui, Show, Maximize
Return

GUISize:
	Width:=A_GuiWidth-15
	Height:=A_GuiHeight-120
	Guicontrol, Move, PagnierenWert, w%Width% h%Height%


Return


PaginierenEreignis:
Return

GuiClose:
ExitApp
just me
Posts: 7224
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Listview Paginieren

07 Oct 2019, 02:39

Moin,

ich weiß nicht, was Du unter 'paginieren' verstehst. Du kannst aber die Anzahl der Zeilen, die ein ListView anzeigt, per R Option festlegen.
KHA
Posts: 232
Joined: 21 Aug 2018, 11:11

Re: Listview Paginieren

07 Oct 2019, 08:22

Hallo @just me,
mit paginieren meine ich "mit Seitenzahlen versehen". Das habe ich mir so vorgestellt, wie z.B hier im Forum, die ersten 10 Beiträge auf der 1. Seite, 11-20 auf der 2. Seite usw.
Unterhalb des Listviews würde ich links einfügen z.B

Code: Select all

Gui, Add, Link,xm ym+950 gSeite1, <a href="Zeilein 1-20">   1   </a>
Gui, Add, Link,x+ gSeite2, <a href="Zeilein 21-40">   2   </a>
Gui, Add, Link,x+ gSeite3, <a href="41-50">  3  </a>
Gui, Add, Link,x+ gSeite4, <a href="...">  ...  </a>
Gui, Add, Link,x+ gSeite5, <a href="51-60">   10   </a>
Ich hoffe, man hat mich jetzt verstanden.

LG
just me
Posts: 7224
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Listview Paginieren  Topic is solved

09 Oct 2019, 04:02

Moin,

ich glaube ich habe verstanden. Hier ist etwas, das Deinen Wünschen nahe kommen könnte:

Code: Select all

#NoEnv
; ListView data ------------------------------------------------------------------------------------------------------------------
LV_Array :=[]
Loop, 48
   LV_Array[A_Index] := [A_Index, "Ueberschrift " . A_Index , "Preis " . A_Index , "Beschreibung " . A_Index
                       , "Erstelldatum " . A_Index, "Entfernung" . A_Index]
; --------------------------------------------------------------------------------------------------------------------------------
LV_Start := 0                 ; Startindex der aktuellen 'Seite'
LV_Index := 0                 ; aktueller Zeilenindex
LV_Count := LV_Array.Length() ; Zeilen im Array
LinesPerPage := 10            ; Zeilen pro 'Seite'
; --------------------------------------------------------------------------------------------------------------------------------
Gui, +Resize
Gui, Margin, 10, 10
Gui, Add, ListView
        , xm vPagnierenWert gPaginierenEreignis r20 w500 Grid AltSubmit -VScroll
        , ID|Überschrift|Preis|Beschreibung|Erstell-Datum
Gui, Add, Button, xm w100 vPrev gPrevPage, <<
BX := 500 + 10 - 100
Gui, Add, Button, x%BX% yp w100 vNext gNextPage, >>
GoSub, ShowPage
Gui, +MinSize
Gui, Show, Hide
Gui, Show, Maximize
Return
; --------------------------------------------------------------------------------------------------------------------------------
GuiSize:
   If (A_EventInfo <> 1)
   {
   	LVW := A_GuiWidth - 20
   	LVH := A_GuiHeight - 120
   	GuiControl, Move, PagnierenWert, w%LVW% h%LVH%
      BY := LVH + 10 + 10
   	GuiControl, Move, Prev, y%BY%
      BX := LVW + 10 - 100
   	GuiControl, Move, Next, x%BX% y%BY%
   }
Return
; --------------------------------------------------------------------------------------------------------------------------------
PrevPage:
   If (LV_Start > 0)
   {
      LV_Start -= LinesPerPage
      GoSub, ShowPage
   }
Return
; --------------------------------------------------------------------------------------------------------------------------------
NextPage:
   If (LV_Index < LV_Count)
   {
      LV_Start += LinesPerPage
      GoSub, ShowPage
   }
Return
; --------------------------------------------------------------------------------------------------------------------------------
ShowPage:
   LV_Index := LV_Start
   GuiControl, -Redraw, PagnierenWert
   LV_Delete()
   Loop, 10
   {
      If (LV_Index < LV_Count)
         LV_Add("", LV_Array[++LV_Index]*)
   }
   LV_ModifyCol()
   GuiControl, +Redraw, PagnierenWert
   If (LV_Index = LV_Count)
      GuiControl, Disable, Next
   Else
      GuiControl, Enable, Next
   If (LV_Start = 0)
      GuiControl, Disable, Prev
   Else
      GuiControl, Enable, Prev
Return
; --------------------------------------------------------------------------------------------------------------------------------
PaginierenEreignis:
Return
; --------------------------------------------------------------------------------------------------------------------------------
GuiClose:
ExitApp
KHA
Posts: 232
Joined: 21 Aug 2018, 11:11

Re: Listview Paginieren

09 Oct 2019, 12:30

Mensch, wie genial bist Du den!
Vielen Dank!

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 5 guests