Einzelnen Beitrag anzeigen

BM_90

Registriert seit: 18. Dez 2007
29 Beiträge
 
Delphi 2007 Enterprise
 
#1

Fortschritt mit TProgressbar anzeigen

  Alt 26. Feb 2008, 16:10
Ich habe folgendes Problem:
Ich schreibe ein Programm mit dem man Bilder öffnen kann. Dazu habe ich eine Prozedur, die dafür TImages erstellt:
Delphi-Quellcode:
procedure TForm1.AusDatei1Click(Sender: TObject);
var I : Integer;
begin
  L:=imagescount;
  if OpenpictureDialog1.Execute then
    begin
      for I:=L to L+OpenpictureDialog1.Files.Count-1 do
        if ImagesCount<100 then
          begin
            Images[ImagesCount] := TImage.Create(self);
            Images[ImagesCount].Parent := Form1;
            Images[ImagesCount].OnClick := imageClick;
            images[imagescount].PopupMenu := form1.PopupMenu2;
            images[imagescount].OnProgress:= ImageProgress;
            Images[ImagesCount].Left := form1.GroupBox2.Width+form1.Button2.Width+form1.Button4.Width+I*Images[I].Width+5*I+4;
            Images[ImagesCount].Height := form1.button2.Height-6;
            Images[ImagesCount].Top := 31;
            images[ImagesCount].center := true;

            Images[ImagesCount].Stretch := true;
            Images[ImagesCount].Proportional := true;

            Images[ImagesCount].Picture.LoadFromFile(OpenpictureDialog1.Files.Strings[I-L]);

            Inc(ImagesCount);
...
          end;
    end;
form13.Visible:=true;
end;
Damit der Fortschritt angezeigt wird, habe ich eine OnProgress-Prozedur geschrieben, die wie folgt aussieht:
Delphi-Quellcode:
procedure tform1.ImageProgress(Sender: TObject; Stage: TProgressStage;
  PercentDone: Byte; RedrawNow: Boolean; const R: TRect; const Msg: string);
begin
form13.ProgressBar1.Stepit;
if form13.ProgressBar1.position=form13.progressbar1.Max then
begin
form13.Visible:=false;
end;
end;
Das funktioniert soweit, nur habe ich nun das Problem, dass in der Zeit, in der die Bilder geladen werden, die Progressbar entweder mehrmals durchläuft und/oder mitten drin stehen bleibt, weil die Bilder fertig geladen sind. Dabei soll die Progressbar genau dann auf 100% durchgelaufen sein, wenn die Bilder fertig sind.
Ich habe mich schon dumm und dämlich rumprobiert, aber es haut einfach nicht hin .
Die 'Hilfe' von Delphi, hat bei mir nur noch mehr Verwirrung gestiftet...
Bitte helft mir!
  Mit Zitat antworten Zitat