ListView und Scrollen
-
Hi,
ich habe ein Problem mit dem Scrollen in einer ListView (ViewStyle = vsReport). Folgender Code:
TPoint ptPosition[2]; int iCount, iHeight; ptPosition[0] = ListView1->Items->Item[0]->GetPosition(); ptPosition[1] = ListView1->Items->Item[1]->GetPosition(); iHeight = ptPosition[1].y - ptPosition[0].y; iCount = ListData->Count; // von TList Objekt ListView1->Scroll( 0, iCount * iHeight );
Damit ermittel ich die Höhe einer Zeile und mit iCount gehe ich dann z.B. ans Ende der Liste. Funktioniert bei meinem Rechner mit XP Pro 32bit ohne Probleme. Das gleiche Programm auf einem Rechner mit Vista 64bit bringt bei
ptPosition[0] = ListView1->Items->Item[0]->GetPosition(); ptPosition[1] = ListView1->Items->Item[1]->GetPosition();
utopisch hohe Zahlen bzw. Müll. Ich weis nicht ob das was mit Vista oder mit 64bit was zu tun hat ?!
Hat jemand von Euch eine Idee was das sein kann ?
-
Ist schon komisch, irgendwie funktioniert GetPosition mit vsReport auf manchen Rechnern und auf anderen nicht. Hab jetzt iHeight einen festen Wert gegeben, damit kann ich auf jeden Fall an das Ende der Liste scrollen.
Eine Sache ist mir aber auf unterschiedlichen Rechnern noch aufgefallen. Warum zeigt mir das Programm auf einem Rechner 30 Zeilen in der ListView und das gleiche Programm auf einem anderen Rechner nur 26 Zeilen ? Die Graphic-Auflösung der GraKa ist bei beiden Rechnern groß genug um das Formular komplett anzuzeigen und als Font ist Arial gewählt.