Wenn du befürchtest, dass der Refresh zu lange dauert, dann schau dir mal
http://www.delphipraxis.net/185749-f...-callback.html
an. Da habe ich genau so ein Szenario aufgezeigt.
Gib der Form einfach einen Service an die Hand, wo diese einfach nachfragen kann.
Delphi-Quellcode:
procedure TFooForm.GetData();
begin
RetrieveData := True;
// Kreisenden Kringel anzeigen ;o)
FSomeService.GetFooDataByDate( FDate, FooDataCallback );
end;
procedure TFooForm.FooDataCallback( AResult: TFooData; AException:
Exception;
var ADispose : Boolean );
begin
RetrieveData := False;
if Assigned( AException )
then
begin
// Exception-Meldung in der Form anzeigen
ErrorMessageLabel.Caption := AException.
Message;
end
else
begin
ErrorMessageLabel.Caption := '
';
PresentFooData( AResult );
// Daten im Formular anzeigen lassen
end;
end;
Ob diese Daten vom Service jetzt im Thread oder nicht geholt werden, entscheidet der Service bzw. die Implementierung des Services. Der Form ist es so egal wie das dort bewerkstelligt wird.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)