ProgressBar sa vytvorí po kliknutí na tlačidlo:
Kód:
procedure TForm1.Button1Click(Sender: TObject);
var
polozka: TListItem;
polozkaRect: TRect;
begin
pb := TProgressBar.Create(nil);
pb.Parent := ListView1;
pb.Position:= 60;
polozka := ListView1.Items.Add;
polozka.Data:= pb;
polozkaRect := polozka.DisplayRect( drBounds );
polozkaRect.Left := 1; // kde ma ProgressBar zacinat
polozkaRect.Right := ListView1.Columns[0].Width - 1; // kde ma koncit (je to vlastne jeho sirka)
pb.BoundsRect := polozkaRect;
end;
Stačí už len prispôsobiť pozície, podľa toho, v akom stĺpci sa má nachádzať. Čo sa týka zmeny šírky pri zmene stĺpca, tak ListView nemá udalosť
OnColumneResize. Takže treba buď použiť iný komponent alebo nejako inak kontrolovať zmenu šírky stĺpca.