Da es die Variabel FrmDm für die Klasse TFrmDm gibt, hätte ich eher dashier erwartet:
Delphi-Quellcode:
procedure TEuropeanCentralBankCurrencyService.Timer1Timer(Sender: TObject);
begin
WriteToLog('Timer1Timer','Start');
FrmDm.doDownload(WEBSITE, outputFilePathName);
WriteToLog('Timer1Timer','Finished');
DoStop;
end;
Befremdlich finde ich auch, dass dm in der Timerprozedure erstellt und freigegeben wird, aber die Variabel dazu nicht in der Prozedure deklariert ist, sondern eine globale Variabel zu sein scheint.
Sehe ich das richtig?
dm:= TFrmDm.Create(FrmDm);
Damit wird ein Datenmodul dm vom Typ TFrmDm erstellt, dessen Owner ein Datenmodul vom Typ TFrmDm ist?
Das ist rekursionsverdächtig.