App konsolowa + ApplicationUnit

0

Witam!

Potrzebuję wskazówek co do użycia komponentu ApplicationUnit w aplikacji konsolowej.

Poniżej ów komponent:

{
  Delphi Application Unit by Aphex
  http://iamaphex.cjb.net
  [email protected]
}
unit ApplicationUnit;

interface

uses
  Windows;

type
  TProcedure = procedure;

  TApplication = class(TObject)
  private
   FStartup: TProcedure;
   FMain: TProcedure;
   FShutdown: TProcedure;
   FTerminated: boolean;
   function ProcessMessage(var Msg: TMsg): Boolean;
  protected
  public
   property Startup: TProcedure read FStartup write FStartup;
   property Main: TProcedure read FMain write FMain;
   property Shutdown: TProcedure read FShutdown write FShutdown;
   property Terminated: boolean read FTerminated write FTerminated;
   procedure StayResident;
   procedure Terminate;
   procedure ProcessMessages;
  end;

implementation

function TApplication.ProcessMessage(var Msg: TMsg): Boolean;
begin
  Result := False;
  if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then
  begin
   Result := True;
   if Msg.Message <> $0012 then
   begin
     TranslateMessage(Msg);
     DispatchMessage(Msg);
   end
   else
   begin
     FTerminated := True;
   end;
  end;
end;

procedure TApplication.ProcessMessages;
var
  Msg: TMsg;
begin
  while ProcessMessage(Msg) do;
end;

procedure TApplication.Terminate;
begin
  FTerminated := True;
end;

procedure TApplication.StayResident;
var
  Msg: TMsg;
begin
  if Assigned(FStartup) then FStartup;
  while not FTerminated do
  begin
   while ProcessMessage(Msg) do;
   Sleep(100);
   if Assigned(FMain) then FMain;
  end;
  if Assigned(FShutdown) then FShutdown;
end;

end.

Co mnie interesuje:

  • sposób użycia komponentu w aplikacji konsolowej;
  • w jaki sposób obsługiwać zdarzenia w app kons.

Będę wdzięczny za każdy kawałek informacji. Na googlach jest raptem kilka odnośników, które nie zawierają treściwych info.

0

Z tego co ja tu widze... to wygląda jak zwykły pascalowski moduł... nie mam dużego doświadczenia ale myślę że w sekcji uses programu głównego wystarczy dodać

ApplicationUnit

a później wywoływać funkcje z odpowiednimi parametrami.

1 użytkowników online, w tym zalogowanych: 0, gości: 1