AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Events bei Konsole-application?

Ein Thema von Illuminator-23-5 · begonnen am 6. Sep 2003 · letzter Beitrag vom 7. Sep 2003
Antwort Antwort
Illuminator-23-5
(Gast)

n/a Beiträge
 
#1

Events bei Konsole-application?

  Alt 6. Sep 2003, 16:20
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
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Events bei Konsole-application?

  Alt 6. Sep 2003, 16:26
if Timer.Enabled then... Ist aber keine gute Lösung.
  Mit Zitat antworten Zitat
Illuminator-23-5
(Gast)

n/a Beiträge
 
#3

Re: Events bei Konsole-application?

  Alt 6. Sep 2003, 16:29
ich versteh nicht den zusammenhang zwischen deiner lösung und meinem Problem!?!
Das Problem ist, dass das Ereignis nicht ausgelöst wird!
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Events bei Konsole-application?

  Alt 6. Sep 2003, 16:44
Ich könnte mir denken, dass die VCL-Komponenten das Vorhandensein von Application voraussetzen, das es ja in einer Konsolenanwendung nicht gibt:
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.
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat
Illuminator-23-5
(Gast)

n/a Beiträge
 
#5

Re: Events bei Konsole-application?

  Alt 6. Sep 2003, 16:47
es geht eben nur im beispiel um den Timer, sonst gehts um WinSockets
  Mit Zitat antworten Zitat
Illuminator-23-5
(Gast)

n/a Beiträge
 
#6

Re: Events bei Konsole-application?

  Alt 6. Sep 2003, 17:57
kann ich irgendwie das Appliction in die Konsole einfügen? (wenn ich die Unit 'Forms' einbinde, Stimmt der Pfad, wenn ich Application.Exename nimm!
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Events bei Konsole-application?

  Alt 6. Sep 2003, 19:47
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...
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Illuminator-23-5
(Gast)

n/a Beiträge
 
#8

Re: Events bei Konsole-application?

  Alt 7. Sep 2003, 09:57
ja, thx! ich werds nochmal so versuchen, wenn nicht, frag ich
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 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