Also das mit der Konsolenanwendung sollte unser
NonVCL-Experte aber doch selber wissen.
OK, einfaches Beispiel: Leg einen TTimer auf dein TService-Modul und erlebe, wie es seine WM_TIMER-Message verarbeitet.
Im Internen verwendet TService die
Unit Vcl.Forms und dessen Messagebehandlung.
Im Hauptthread kann man daher auch Problemlos diese
Unit einbinden und
Vcl.Forms.Application.ProgressMessages benutzen.
Nicht über
Vcl.SvcMgr.Application, aber wie man sieht, ist TService auch aus der
VCL, obwohl ein Service ja "grundsätzlich" nicht visuell sein sollte.
Und hier die Message-Loop aus TServiceApplication.Run (Application.Run der Service-
DPR):
Delphi-Quellcode:
while not Vcl.Forms.Application.Terminated
do
try
Vcl.Forms.Application.HandleMessage;
except
on E:
Exception do
DoHandleException(E);
end;