Hallo,
ich generiere in meine Programm zur Laufzeit eine Progressbar auf einem Statusbar:
function TFrmJPGIndex.ProInStaBarCreate(StatusBar: TStatusBar; var ProgressBar: TALProgressBar; PanelItem: Word): Boolean;
var
k, PbLeft: Integer;
begin
Result := False;
if PanelItem > (StatusBar.Panels.Count - 1) then
Exit;
PbLeft := StatusBar.Left;
for k := 0 to PanelItem - 1 do
PbLeft := PbLeft + StatusBar.Panels.Items[k].Width;
ProgressBar := TALProgressBar.Create(StatusBar); //Wird mit Parent-Obj gelöscht
with ProgressBar do
begin
Parent := StatusBar;
Left := PbLeft + 2;
Top := 2;
Height := Statusbar.Height - 2;
Width := StatusBar.Panels[PanelItem].Width - 2;
BarColorStyle := cs2Colors;
Min := 0;
Max := 100;
Percentage := True;
ShowPosText := True;
PosTextSuffix := ' %';
end;
Result := True;
end;
Dies funktioniert super.
Aber nun meine Frage:
Wie lösche ich die Progressbar wieder?
Mit .free habe ich das Phänomen, daß es nur beim ersten löschen sauber funktioniert. Nach dem zweiten Lauf bleibt die Progressbar sichtbar. Nach einem Minimieren und Maximieren der Form, ist die Statusbar wieder sauber. Refresh und Repaint brachten keinen Erfolg.
Gruß aus Köln
Thomas