Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   GUI-Design zu Konsolenanwendung (https://www.delphipraxis.net/161115-gui-design-zu-konsolenanwendung.html)

Patrick.bsp 17. Jun 2011 11:20

GUI-Design zu Konsolenanwendung
 
Hallo zusammen,

bin neu hier und habe leider nochg keine tiefgehende Erfahrung im Umgang mit GUI und Delphi.

Ich habe folgendes Problem:

Ich soll zu einer recht komplexen Konsolenanwendung, eine grafische Eingabemaske erstellen, habe allerdings bisher absolut Null Ahnung, wie dies geht und ob das überhaupt so einfach möglich ist.

Wäre dankbar, wenn ihr mir da ein paar Tipps geben könntet.

VG,

Patrick

Klaus01 17. Jun 2011 11:35

AW: GUI-Design zu Konsolenanwendung
 
Hallo,

soll die GUI die Console ersetzen oder
soll die GUI die Console bedienen?

Grüße
Klaus

Patrick.bsp 17. Jun 2011 12:14

AW: GUI-Design zu Konsolenanwendung
 
Hi,

die GUI soll die Console bedienen. Sie soll also lediglich als Eingabemaske der Konsolenanwendung dienen, so dass kein DOS-Fenster mehr benötigt wird.

VG,

Patrick

DeddyH 17. Jun 2011 12:18

AW: GUI-Design zu Konsolenanwendung
 
Wie wird die Anwendung denn bedient, über Aufrufparameter? Oder macht die eine Konsole auf und wartet auf Eingaben? Der erste Fall wäre mit ShellExecute und Konsorten noch recht einfach zu realisieren.

Patrick.bsp 17. Jun 2011 12:22

AW: GUI-Design zu Konsolenanwendung
 
HI,

wohl eher letzteres, also Dos-Fenster geht auf und fragt die einzelnen Variablen über writeln, readln ab.

VG,

Patrick

Klaus01 17. Jun 2011 12:24

AW: GUI-Design zu Konsolenanwendung
 
Wenn die Console schon eine Art Menuführung hat - musst Du die Ein- und Ausgabe in deine Form umleiten.
Unter dem Stichwort: pipe console.

Oder Du versuchst es mit TDosCommand.

Grüße
Klaus

Patrick.bsp 17. Jun 2011 12:31

AW: GUI-Design zu Konsolenanwendung
 
Hi,

aber die Menüführung der Konsole soll ja denn praktisch durch die GUI ersetzt werden. hatte mir das so vorgestellt, dass ich die Eingabe dann über Edit-Felder erledige.

VG,

Patrick

Memnarch 17. Jun 2011 12:52

AW: GUI-Design zu Konsolenanwendung
 
Wenn es sich bereits um eine vollständige konsolenanwendung handelt, wie breits gesagt, per shellexecute aufrufen(die konsole) und den input/output über Pipes behandeln. Dein programm nimmt dann zb die daten aus nem editfeld, schreibt sie in die pipe, welche dann automatisch von der konsole ausgelesen wird.

MFG
Memnarch

blackfin 17. Jun 2011 13:39

AW: GUI-Design zu Konsolenanwendung
 
Gibt es nicht trotzdem das Problem, dass die GUI blockiert wird, wenn die bestehende Konsolen-Anwendung per readln() etwas anfordert?
Auch wenn man den I/O umleitet...
Ich schätze deswegen, dass die Inputs des bestehenden Konsolenprogramm zumindest teilweise umgeschrieben werden müssen, um von readln() wegzukommen.
Denn es nützt ja nichts, ein Eingabefeld in der GUI zu haben, dass man nicht bedienen kann, während die Konsole alles durch das readln() blockiert.
Oder gibt es da einen Ausweg, den ich nicht kenne? :-)

generic 17. Jun 2011 13:47

AW: GUI-Design zu Konsolenanwendung
 
Liegt von der Konsolen-Anwendung die Quelltext vor?

Wenn ja, wäre zu prüfen ob die View-Schicht einfach ausgetauscht werden kann.

p80286 17. Jun 2011 15:06

AW: GUI-Design zu Konsolenanwendung
 
Die consolen-Steuerung kann z.B. über eine .txt-Datei erfolgen, wobei jedes Zeichen in der TXT-Datei ein Zeichen für die Console ist, das Zeilenende als auch das [Cr].
in einem Dosfenster sähe das dann so aus:
Code:
c:> MeinConsolenprogramm < MeinSteuerungs.TXT
Gruß
K-H

P.S.
Aus welchem Museum stammt denn die Software, die heute noch mit Read/Readln und Keypressed gefüttert wird. Vor allem eine "komplexere"???

jaenicke 17. Jun 2011 16:15

AW: GUI-Design zu Konsolenanwendung
 
Zitat:

Zitat von p80286 (Beitrag 1107014)
Die consolen-Steuerung kann z.B. über eine .txt-Datei erfolgen, wobei jedes Zeichen in der TXT-Datei ein Zeichen für die Console ist, das Zeilenende als auch das [Cr].

Und wofür der Aufwand? Über die Ein- und Ausgabepipes bekommst und sendest du die Daten direkt...

p80286 17. Jun 2011 16:24

AW: GUI-Design zu Konsolenanwendung
 
Da ich mich mit der Shell nicht so besonders auskenne (Syntax) halte ich mich da zurück.
Wenn ich mich richtig erinnere habe ich allerdings das Prinzip der Ein/Ausgabe-Umleitung durchaus genutzt, und was die Quelle einer "Datei" ist letztendlich egal (Festplatte,Programm...)
Wobei ich auch CON: PRN: etc. als Datei sehe (vgl. Input/Output bei Consolen).

Gruß
K-H

jaenicke 17. Jun 2011 17:11

AW: GUI-Design zu Konsolenanwendung
 
Zitat:

Zitat von p80286 (Beitrag 1107044)
Da ich mich mit der Shell nicht so besonders auskenne (Syntax) halte ich mich da zurück.

Das ist nicht sonderlich schwer, hier findest du das ganze z.B. fertig (geht mit leichten Anpassungen auch mit D2009 und höher):
http://maxxdelphisite.free.fr/doscmd.htm

shmia 17. Jun 2011 17:51

AW: GUI-Design zu Konsolenanwendung
 
Nicht jedes "Konsolenprogramm" spricht mit dem Std Input/Output.
Es gibt noch jede Menge DOS-Programme, die noch wie das früher üblich war direkt in den Bildschirmspeicher schreiben und Eingaben von der Tastatur erwarten.
Das sieht dann z.B. so aus wie hier: http://www.chip.de/ii/3/1/3/5/9/7d8eff19464a57c2.gif

Man müsste also direkt den ScreenBuffer des Konsolenfenster auslesen.
Die API-Funktion MSDN-Library durchsuchenReadConsoleOutput sieht ganz vielversprechend aus.

Patrick.bsp 22. Jun 2011 12:57

AW: GUI-Design zu Konsolenanwendung
 
Hallo,

wenn der Quelltext zum Programm bekannt und verfügbar ist, ist es dann nicht auch möglich das grafische Menüdort einzusetzen und somit das bestehende Menü zu ersetzen und auf Pipes zu verzichten? Jedoch sind alle zugehörigen Bibliotheken und Berechnungen noch als Konsolenanwendung geschrieben.

VG,

Patrick


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:37 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