Forum: Object-Pascal / Delphi-Language
by jaenicke,
28. Mär 2009
Das liegt am div. Beispiel: Anzahl 5, pro Seite 3. Dann müssten es zwei Seiten sein.(FContactList.Count - 1) div CONTACTS_PER_PAGE(5 - 1) div 3 = 4 div 3 = 1
Also muss es so lauten:Ceil(FContactList.Count / CONTACTS_PER_PAGE)
Forum: Object-Pascal / Delphi-Language
by jaenicke,
28. Mär 2009
Das liegt daran, dass du (wie in deinem vorherigen Quelltext) immer eine neue Seite aufmachst, egal ob noch Daten folgen. ;-)
Die Höhe kann man eigentlich recht gut berechnen, ich habe mir seinerzeit eine Routine geschrieben, die das übernommen hat. So habe ich eine recht komplexe Druckfunktion realisiert.
Forum: Object-Pascal / Delphi-Language
by jaenicke,
28. Mär 2009
Das ist auch kein Wunder, denn du nutzt ja jeweils die Indizes i div 2 und (i + 1) div 2. Jetzt schauen wir mal:
i = 0: Index 1 = 0 div 2 = 0, Index 2 = 1 div 2 = 0
i = 1: Index 1 = 1 div 2 = 0, Index 2 = 2 div 2 = 1
Du hast also schon da den Eintrag 0 dreimal gedruckt. ;-)
Dadurch, dass du immer zwei auf einmal druckst, trotzdem aber alle Einträge durchgehst, klappt das nicht. Du hast zwei...