![]() |
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:
logisch gesehen müsste nach 1 sec eine Nachricht erseinen, aber es kommt nix! Warum :?:
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. |
Re: Events bei Konsole-application?
Delphi-Quellcode:
Ist aber keine gute Lösung. ;)
if Timer.Enabled then...
|
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! |
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:
|
Re: Events bei Konsole-application?
es geht eben nur im beispiel um den Timer, sonst gehts um WinSockets
|
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!
|
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:
Autor: PhilippeRanger@compuserve.remove-this.com
(*$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. Ich hoffe es hilft Dir weiter... |
Re: Events bei Konsole-application?
ja, thx! ich werds nochmal so versuchen, wenn nicht, frag ich
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz