Hinweise zum neuen Forum
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Ausgabe in Kommandozeile wenn /PM:PM

Eigentlich ist mir die Frage peinlich, aber es kann sonst niemand helfen ... :)

Moderator: Moderatoren

Antworten
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Ausgabe in Kommandozeile wenn /PM:PM

Beitrag von Wonderer » Mo, 07. Mär 2016 10:49

Ich habe hier ein Programm welches umgestellt wurde auf GUI.

Wie kann ich jetzt dennoch in der Kommandozeile - wenn dort der Aufruf erfolgt - eine Ausgabe vornehmen?
Angenommen das Programm erwartet Kommandozeilen-Parameter und prüft auch am Anfang einige Datenbanken ob diese vorhanden und konsistent sind. Wenn irgendetwas nicht Ok ist soll eine Ausgabe nicht als Windows-Fenster erfolgen sondern im Kommandozeilen-Fenster als Text...

Ich weiß das klingt seltsam - als Anforderung von einem GUI-Programm - aber gesetzt den Fall man möchte das so - geht das? :)

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13588
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim
Kontaktdaten:

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitrag von brandelh » Mo, 07. Mär 2016 10:56

Das ist das Standardverhalten solange man nicht die Prozedur AppSys überschreibt.
Also normal geht ein XbpCrt() Fenster auf, das auf die Consolen Befehle reagiert:

Code: Alles auswählen

? "Test"
@ 1,1 say "Test2
Die GUI Fenster (XbpDialog()) sind zusätzlich und über ihr Objekt anzusprechen.
Gruß
Hubert

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10364
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitrag von AUGE_OHR » Mo, 07. Mär 2016 12:07

Wonderer hat geschrieben:Ich habe hier ein Programm welches umgestellt wurde auf GUI.

Angenommen das Programm erwartet Kommandozeilen-Parameter und prüft auch am Anfang einige Datenbanken ob diese vorhanden und konsistent sind. Wenn irgendetwas nicht Ok ist soll eine Ausgabe nicht als Windows-Fenster erfolgen sondern im Kommandozeilen-Fenster als Text...
unter Windows gibt man einen Text per MsgBox() aus wenn die Xbase++ App mit /PM:PM gelinkt wurde.
gruss by OHR
Jimmy

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13588
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim
Kontaktdaten:

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitrag von brandelh » Mo, 07. Mär 2016 12:12

Der PM Schalter verbietet NICHT die Verwendung der alten ? / SAY Anweisungen.
Für Statusmeldungen wie oben beschrieben (eine Art von Debugging) ist das sogar sehr nützlich.
Gruß
Hubert

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13588
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim
Kontaktdaten:

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitrag von brandelh » Mo, 07. Mär 2016 12:18

wenn die EXE allerdings aus einem CMD Fenster gestartet wurde verhält es sich je nach PM Einstellung anders. /PM=PM (GUI=YES) öffnet ein Fenster und gibt dort die Infos aus ...
Gruß
Hubert

georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1867
Registriert: Fr, 08. Feb 2008 22:29

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitrag von georg » Mo, 07. Mär 2016 13:56

Kunden haben manchmal seltsame Wünsche ...

Wenn die Ausgabe in dem cmd-Fenster erfolgen soll, aus dem das Programm gestartet wird, dann gäbe es den Ansatz, mit zwei Programmen zu operieren:

das erste Programm (stub) übernimmt die Prüfungen und gibt gegebenenfalls eine Fehlermeldung aus, ist alles in Ordnung, startet
das zweite Programm, das dann die normalen Aktionen ausführt.

Dadurch kannst Du mit vollem grafischen Programm arbeiten, und doch bleibt die Kontrolle über das cmd-Fenster möglich.


Ich vermute mal, es geht darum, dass die (Fehler-)Ausgabe des Programms umgeleitet und ausgewertet werden kann. Das geht nicht, wenn das Programm ein Fenster öffnet.
Liebe Grüsse aus der Eifel,

Georg

Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1790
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Kontaktdaten:

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitrag von Herbert » Mo, 07. Mär 2016 14:05

Du kannst das Programm etwas unorthodox unter einem CMD-Fenster starten. Die Ausgabe erfolgt so auch dort.
Ich habe noch die alte Sache mit dem /?-Parameter so gelöst. In der Main-Rutine könntest in dieser Art ganz billig nach Auffinden eines groben Fehlers an das CMD eine Info weitergeben.

Code: Alles auswählen

IF cUser=='?' .OR. cUser=='/?'
  ?'Aufruf: ZL7 [n] [/m] [pfad]'
  QUIT
ENDIF
Grüsse Herbert
Immer in Bewegung...

Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitrag von Wonderer » Mo, 07. Mär 2016 17:29

Danke für die Antworten, Hinweise und Vorschläge.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast