Du kannst eigentlich an beliebiger Stelle im Progamm einfach Application.Title eine beliebige Zeichenfolge zuweisen. Die wird dann in der Taskleiste angezeigt.
So 'ne Art Fortschrittsanzeige könne so aussehen:
Delphi-Quellcode:
var
sTitle : String;
begin
sTitle := Application.Title;
Table1.First;
while not Table1.EoF do begin
Table1.Edit;
// Irgendwas ändern
Table1.Post;
Table1.Next;
Application.Title := Format('ID: %.5d',[Table1.FieldByName('ID').AsInteger]);
end;
Application.Title := sTitle;
end;
Möchtest Du auch noch das Icon ändern, so müsste Application.Icon dafür die richtige Eigenschaft sein.
[EDIT]
Wenn Du einen eigenen Dialog haben möchtest, so kannst Du den TJvProgressDialog von den Jedis nehmen.
Aktualisieren des Dialoges könnte so gehen:
Delphi-Quellcode:
// pd -> Komponente TJvProgressDialog auf dem Formular
type
Tform1 =
class(TForm)
pd: TJvProgressDialog;
public
{ Public-Deklarationen }
procedure pdAnzeigen(sCaption :
String; sText :
String = '
'; iMin : Integer = 0; iMax : Integer = 100; iPosition : Integer = 50);
procedure pdHide;
end;
procedure Tform1.pdAnzeigen(sCaption :
String; sText :
String = '
'; iMin : Integer = 0; iMax : Integer = 100; iPosition : Integer = 50);
begin
pd.Caption := sCaption;
pd.Text := sText;
pd.Min := iMin;
pd.Max := iMax;
pd.Position := iPosition;
pd.Show;
if sText <> '
'
then Application.Title := sText;
end;
procedure TfmTextverwaltung.pdHide;
begin
pd.Hide;
Application.Title := '
Mein Programmname';
end;
// irgendwo im Programm
var
iMin : Integer;
iMax : Integer;
iPos : Integer;
sCaption :
String;
sText :
String;
begin
Screen.Cursor := crSQLWait;
pdAnzeigen('
Datenbankabfrage läuft ...');
qrySQL.ExecSQL;
// oder
pdAnzeigen('
SQL-Statement wird ausgeführt ...',qrySQL.SQL.Text);
qrySQL.ExecSQL;
//oder:
pdAnzeigen('
Öffne Abfrage ...',qrySQL.SQL.Text);
qry.Open;
iMin := 0;
iMax := qry.RecordCount;
iPos := 0;
sCaption := Format('
%d Datensätze werden verarbeitet ...',[iMax]);
sText := '
';
pdAnzeigen(sCaption, sText, iMin, iMax , iPos);
qry.First
while not qry.Eof
do begin
Inc(iPos);
sText := Format('
ID: %.5d',[qry.FieldByName('
ID').AsInteger]);
pdAnzeigen(sCaption, sText , iMin, iMax, iPos);
// Irgendwas mit den Daten machen ...
qry.Next;
end;
qry.Close;
pdHide;
Screen.Cursor := crDefault;
[/EDIT]