Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Events bei Konsole-application? (https://www.delphipraxis.net/8511-events-bei-konsole-application.html)

Illuminator-23-5 6. Sep 2003 15:20


Events bei Konsole-application?
 
ich hab kurz versucht, bei einer Konsolenanwendung ein paar komponenten zu verwenden(TServer-und ClientSOcket). Dabei bin ich draufgekommen, dass keine zugewiesene Events ausgeführt werden.
Ich hab das ganze dann noch einmal mit einem Timer versucht, aber es klappt nicht.
Hier mal der Source:
Delphi-Quellcode:
program Main;

{$APPTYPE CONSOLE}

uses
  SysUtils, ExtCtrls;

var
  Timer1: TTimer;

procedure TimerEvent(Sender: TObject);
begin
  MessageBox(0, '', '', mb_Ok + mb_SystemModal);
  Timer1.Enabled := false;
end;

begin
  Timer1 := TTimer.Create(nil); //Hier weiß ich sonst nicht was nehmen - vielleicht is das das Problem
  Timer1.Interval := 1000;
  Timer1.OnTimer := TimerEvent;
  Timer1.Enabled := true;
  readln;
end.
logisch gesehen müsste nach 1 sec eine Nachricht erseinen, aber es kommt nix! Warum :?:

Matze 6. Sep 2003 15:26

Re: Events bei Konsole-application?
 
Delphi-Quellcode:
if Timer.Enabled then...
Ist aber keine gute Lösung. ;)

Illuminator-23-5 6. Sep 2003 15:29

Re: Events bei Konsole-application?
 
ich versteh nicht den zusammenhang zwischen deiner lösung und meinem Problem!?!
Das Problem ist, dass das Ereignis nicht ausgelöst wird!

Niko 6. Sep 2003 15:44

Re: Events bei Konsole-application?
 
Ich könnte mir denken, dass die VCL-Komponenten das Vorhandensein von Application voraussetzen, das es ja in einer Konsolenanwendung nicht gibt:
Zitat:

Zitat von Delphi-Hilfe
TApplication kapselt folgendes Verhalten:

Verarbeitung von Windows-Botschaften

Falls es nur um den Timer geht, würde ich die entsprechende API-Funktion benutzen.

Illuminator-23-5 6. Sep 2003 15:47

Re: Events bei Konsole-application?
 
es geht eben nur im beispiel um den Timer, sonst gehts um WinSockets

Illuminator-23-5 6. Sep 2003 16:57

Re: Events bei Konsole-application?
 
kann ich irgendwie das Appliction in die Konsole einfügen? (wenn ich die Unit 'Forms' einbinde, Stimmt der Pfad, wenn ich Application.Exename nimm!

APP 6. Sep 2003 18:47

Re: Events bei Konsole-application?
 
Hallo Illuminator-23-5,

Dein anfangs geposteter Code compiliert bei meinem D5 pro zu Hause gar
nicht, mich hat Dein Problem aber interessiert, ich habe folgendes in
einer NG gefunden:

Delphi-Quellcode:
(*$apptype console*)
Program timer;
Uses sysUtils, forms, windows, extCtrls;

(*Demos console app using timer.*)

Var
    qDone: boolean = false;

Type
    ToTimerHandler = class(Tobject)
        constructor create (nMs: integer);
        private
        FoT: Ttimer;
        procedure timerCall(o: Tobject);
        end;

Constructor ToTimerHandler.create(nMs: integer);
Begin
    inherited create;
    Fot := Ttimer.create(application);
    Fot.interval := nMs;
    Fot.onTimer := timerCall;
    Fot.enabled := true;
End;


Procedure ToTimerHandler.timerCall(o: Tobject);
Begin
    FoT.enabled := false;
    writeln;
    writeln;
    write ('Hi there! ...Tell me something ...');
    readln;
    writeln;
    writeln ('Oh my God! You hit Enter? We''re done for!');
    sleep(1000);
    qDone := true;
End;

Var
    oT: ToTimerHandler;
Begin
    oT := ToTimerHandler.create(5000);
    while not qDone do application.processMessages;
    oT.free;
    application.terminate;
End.
Autor: PhilippeRanger@compuserve.remove-this.com

Ich hoffe es hilft Dir weiter...

Illuminator-23-5 7. Sep 2003 08:57

Re: Events bei Konsole-application?
 
ja, thx! ich werds nochmal so versuchen, wenn nicht, frag ich


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz