No es correcto como lo estás haciendo er_lolo.
Una de las múltiples formas de hacerlo sería la siguiente:
Código Delphi
[-]
ProgressFrame1.Label1.Text := 'Realizando cálculos, por favor espere...';
ProgressFrame1.Visible := true;
ProgressFrame1.BringToFront;
TThread.CreateAnonymousThread(procedure
begin
CalculaDatos;
TThread.Synchronize(nil , procedure
begin
ProgressFrame1.Visible := false;
end);
end).Start;