Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi was machen mit den Hangups ? Konsolenprobleme die zweite ^ ^ (https://www.delphipraxis.net/37700-machen-mit-den-hangups-konsolenprobleme-die-zweite-%5E-%5E.html)

hboy 9. Jan 2005 00:53


was machen mit den Hangups ? Konsolenprobleme die zweite ^ ^
 
Hi leute. Brauch mal wieder eure Hilfe. Hab jetzt meine Konsole soweit fertig. Hat allerdings den gewaltigen Schönheitsfehler: :pale:

wenn ich z.B. while true do; ausführen lasse, lässt sich die Standardkonsole von Delphi abbrechen, meine eigene hängt allerdings fröhlich mit (es werden ja keine Messages mehr behandelt).

Messages in nem extra thread behandeln is auch nicht ( schon probiert ) ausserdem besteht die automatisch gelinkte konsole auch nur aus 1 thread.

Wie krieg ich das nu gebackn ? danke shcon mal^ :hello:

Edit: ja die frage is imma noch offen

Edit'2: für alle die mal sehen wollen was ich mein

Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

begin
  while true do;
end.
1 Thread
und trotzdem Message-behandlung ? Ist das in etwa über Interrupts gelöst ? Wenn ja wie setz ich das in Delphi um ???

Chris1986 9. Jan 2005 13:54

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
Hi hboy,
ich weiß nicht genau was du meinst, aber es sieht stark so aus, als würdest du eine Nachrichtenschleife meinen. :lol: Ich hab das so gelöst:
Delphi-Quellcode:
var Shutdown: boolean;
    Eingabe: string;

  while not Shutdown do
  begin
    readln(Eingabe);
    if lowercase(Eingabe) = 'quit'
      then begin
             writeln('# Server wird in Sek beendet');
             sleep(5000);           //5Sek auf das schließen warten
             writeln('# Auf Wiedersehen');
             Shutdown := true;
           end;
  end;
//Edit: pushen bitte erst nach 24Stunden :warn:
MfG
Christian

hboy 9. Jan 2005 18:20

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
hi danke erst mal für deine Antwort.

Wenn du dir mal reinziehen willst was ich mit meiner Konsole so ausgeheckt habe kannste dir den ersten Thread dazu anguckn ^^ Wie bastel ich mir meine eigene Konsole

diese hatte mehrere Macken: wenn ich Readln ausgeführt habe hat die Konsole zwar schön funktioniert, allerdings lies sie sich nicht beenden. also den Prozess beim OnHide terminieren. tut.

Ich habe jetzt - da die Konsole ja auf den Code der Anwendung keinen Einfluss hat und da auch eine Endlosschleife stehen kann - einen extra Thread erzeugt, der allerdings keine Messages behandeln kann. Also bringt das auch nix. Stutzig hat mich dabei gemacht dass die *normale* Konsole von Delphi mit einem einzigen Thread auskommt. Demnach hab ich vermutet, dass der Programmablauf regelmäßig unterbrochen wird, um angefallene Messages zu behandeln ( Konsole is ja beweg- minimier und schließbar )

Und bevor ich die ganze Konsole in einen extra thread stecke ( was ja nicht sein muss ) wär es sehr chic rauszufinden wie es eleganter geht.

Also getreu dem Motto :wiejetzt:



hf
hboy

Assarbad 11. Jan 2005 13:55

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
Was ist denn ...
Zitat:

Zitat von hboy
die *normale* Konsole von Delphi

???

Ich verstehe in deiner Frage nur Bahnhof. Falls du die "DOS-Konsole" meinst, die ist komplett anders aufgebaut und die Nachrichtenverarbeitung findet teils im Kernelmode statt. Daher nur "1 Thread".

hboy 11. Jan 2005 14:40

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
normal mein ich die Konsole die bei $Apptype Console automatisch gelinkt wird

Assarbad 11. Jan 2005 15:31

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
Die wird nicht "automatisch gelinkt". Der PE-Header enthält dann die Info, daß er das Console-Subsystem benutzen soll und alloziert automatisch die Konsole oder startet das Programm in der "Elternkonsole" wenn vorhanden. Da ist kein Stück von Delphi dabei beteiligt.

hboy 11. Jan 2005 16:01

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
okok... und jetzt zu >>>>>> meinem problem <<<<<< um das es eigentlich geht ;)

Christian Seehase 11. Jan 2005 16:03

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
Moin hboy,

wenn Du ein Programm mit Messagebehandlung aber ohne Fenster haben willst, nimmst Du ein "normales" und setzt Application.ShowMainform auf false.

Assarbad 11. Jan 2005 16:26

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
Zitat:

Zitat von hboy
okok... und jetzt zu >>>>>> meinem problem <<<<<< um das es eigentlich geht ;)

Das Problem ist ja gerade dich zu verstehen :-\

Also ohne Threads gehts evtl. mit Overlapped I/O, aber ansonsten wirst du bei Nutzung von Pipes (was ja nicht anders geht) kaum drumherumkommen.

hboy 11. Jan 2005 17:47

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
Problem ist:
Progamm hängt (logischerweise) bei einer Endlosschleife. jetzt will ich aber ( Interupts gibts ja wohl nich ? ) aus einem weiteren thread die eingehenden Messages behandeln. Ich frage mich jetzt ob ich den thread separat laufen lassen kann oder ob ich eigentliche Konsole mit in den Thread packen muss.

PS: ICH WILL WIEDER IN MEINE HEILE µC-WELT ZURÜCK ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 Uhr.
Seite 1 von 5  1 23     Letzte »    

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