Danke
habe das Problemm schon gelöst.....
)
Procedure die mit den Daten ein Progressbar in die Listview hinzufugt
Delphi-Quellcode:
procedure AddFileToDownloadListView(NewDownload : TDownloadFile);
var
i, n : integer;
Rechteck : TRect;
begin
for i := 0 to form1.DownloadFilesListView.Items.Count do
begin
form1.DownloadFilesListView.Items.Add;
if Form1.DownloadFilesListView.Items[i].Caption = '' then
begin
Form1.DownloadFilesListView.Items[i].Caption := NewDownload.DFile.SFilename;
Form1.DownloadFilesListView.Items[i].SubItems.add( NewDownload.DFile.SArtist); //:= ;
Form1.DownloadFilesListView.Items[i].SubItems.add(NewDownload.DFile.STitle);
//Hinzufuegen der Progressbar.
RechtEck := form1.DownloadFilesListView.Items[i].DisplayRect(drBounds);
RechtEck.Left := Form1.DownloadFilesListView.columns[0].Width + Form1.DownloadFilesListView.columns[1].Width + Form1.DownloadFilesListView.Columns[2].Width;
RechtEck.Right := RechtEck.Left + Form1.DownloadFilesListView.columns[3].Width;
GlobalPB := TProgressBar.Create(GlobalPB );//GlobalPB = globale variable vom TProgressbar
GlobalPB.Parent := form1.DownloadFilesListView;
GlobalPB.BoundsRect := RechtEck;
GlobalPB.Position := 30;
Form1.DownloadFilesListView.Items[i].Data := GlobalPB;
end; // if
end; // for
end; // AddFileToDownloadListView
das einzige Problemm das beim ziehen der Spalte dir Progressbar stehen bleibt und sich nicht anpasst..das OnResize Erreignis tritt komischerweise nicht gleich beim resizen sondern paar Sekunden !!! spater...
die Funktion zur Grösenanpasung der Progressbar bei ändern der Grösse..
Delphi-Quellcode:
procedure PBRefreshOnDownloadListView();
var
i, n : integer;
RechtEck : Trect;
begin
for i:=0 to form1.DownloadFilesListView.Items.Count - 1 do
begin
PB := Form1.DownloadFilesListView.Items[i].Data; //PB globaler Progressbar.
RechtEck := form1.DownloadFilesListView.Items[i].DisplayRect(drBounds);
RechtEck.Left := Form1.DownloadFilesListView.columns[0].Width + Form1.DownloadFilesListView.columns[1].Width + Form1.DownloadFilesListView.Columns[2].Width;
RechtEck.Right := RechtEck.Left + Form1.DownloadFilesListView.columns[3].Width;
PB.BoundsRect := RechtEck;
form1.DownloadFilesListView.Items[i].Data := PB;
end; // for
end;
ich hoffe ich konnte damit jemandem helfen.....
)))
Sergej