AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi was machen mit den Hangups ? Konsolenprobleme die zweite ^ ^
Thema durchsuchen
Ansicht
Themen-Optionen

was machen mit den Hangups ? Konsolenprobleme die zweite ^ ^

Offene Frage von "hboy"
Ein Thema von hboy · begonnen am 9. Jan 2005 · letzter Beitrag vom 26. Jan 2005
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#1

was machen mit den Hangups ? Konsolenprobleme die zweite ^ ^

  Alt 9. Jan 2005, 00:53
Hi leute. Brauch mal wieder eure Hilfe. Hab jetzt meine Konsole soweit fertig. Hat allerdings den gewaltigen Schönheitsfehler:

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^

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 ???
Power is nothing without TControl
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 9. Jan 2005, 13:54
Hi hboy,
ich weiß nicht genau was du meinst, aber es sieht stark so aus, als würdest du eine Nachrichtenschleife meinen. 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
MfG
Christian
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#3

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 9. Jan 2005, 18:20
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



hf
hboy
Power is nothing without TControl
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#4

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 11. Jan 2005, 13:55
Was ist denn ...
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".
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#5

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 11. Jan 2005, 14:40
normal mein ich die Konsole die bei $Apptype Console automatisch gelinkt wird
Power is nothing without TControl
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#6

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 11. Jan 2005, 15:31
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.
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#7

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 11. Jan 2005, 16:01
okok... und jetzt zu >>>>>> meinem problem <<<<<< um das es eigentlich geht
Power is nothing without TControl
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 11. Jan 2005, 16:03
Moin hboy,

wenn Du ein Programm mit Messagebehandlung aber ohne Fenster haben willst, nimmst Du ein "normales" und setzt Application.ShowMainform auf false.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#9

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 11. Jan 2005, 16:26
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.
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#10

Re: was machen mit den Hangups ? Konsolenprobleme die zweite

  Alt 11. Jan 2005, 17:47
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
Power is nothing without TControl
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


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 17:12 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