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!