Hallo,
mittels folgendem Code positionier ich in die 5. Spalte einer ListView (Report) eine Progressbar:
Delphi-Quellcode:
with ListView_Dateien do
begin
//ProgressBar in der jeweiligen Zeile in der Spalte fünf erzeugen
PB_Rect := Items[Line].DisplayRect(drBounds);
with PB_Rect do
begin
Left := Left + Columns[0].Width + Columns[1].Width +
Columns[2].Width + Columns[3].Width;
Right := Pred(Left + Columns[4].Width);
Bottom := Pred(Bottom);
end;
//ProgressBar beschreiben
with PB_Status do
begin
BoundsRect := PB_Rect;
Visible := true;
Min := 0;
Max := 100;
end;
end;
Was auch gut funktioniert - nur kann ich zu diesem Zeitpunkt die ListView scrollen. Leider wird
dann die Progressbar nicht mehr in der dementsprechenden Zeile angezeigt, sondern bleibt einfach
an dem letzten Platz liegen (was ja klar ist, weil die Position absolut ist).
Wir kann ich nun die Progressbar entweder:
1. fix einer Zelle zuweisen, ohne selbst auf das Positionieren eingehen zu müssen oder
2. beim Scrollen die Progressbar-Positionen neu berechnen und anzeigen lassen?