Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Console Application mit Pfeiltasten navigieren? (https://www.delphipraxis.net/182570-console-application-mit-pfeiltasten-navigieren.html)

Lyan 1. Nov 2014 19:09

Delphi-Version: XE5

Console Application mit Pfeiltasten navigieren?
 
Hallo,

schreibe grade zur Seltenheit eine Console-Application. Würde gerne das Optionsmenü mittels Pfeiltastennavigation(hoch/runter) realisieren.
Habe auf Anhieb dazu nichts gefunden, d.h. sry falls ähnliche Themen schon öfters hier(oder sonstwo) behandelt wurden.

Wäre für WinAPI-Funktionsnamen oder Direktlösungen sehr dankbar!


Lg,

lyan

Dejan Vu 1. Nov 2014 19:44

AW: Console Application mit Pfeiltasten navigieren?
 
Irgendwie widerspricht sich das: Konsolen-Applikation und Optionsmenü.

Lyan 1. Nov 2014 19:48

AW: Console Application mit Pfeiltasten navigieren?
 
Warum ->widerspricht<- sich das?

z.B.

1. Enter info
2. Save/Load info
3. Display current info
4. Reset Values
5. Exit Program

Anstatt dass der User die Nummer (1-5) eingibt und dann enter drückt, möchte ich eben dass man in diesem Menü mit den Pfeiltasten navigieren kann, und die aktuelle Auswahl highlighted wird.

Ich würde mit meinem Wissen die pressed keys abfangen und dann mit blödem Zählen in welcher Zeile ich grade bin und SetConsoleTextAttribute() die Farbe ändern..

himitsu 1. Nov 2014 19:55

AW: Console Application mit Pfeiltasten navigieren?
 
Erstmal zu den Grundlagen:

Konsolen werden über Pipes gesteuert und davon gibt es drei Stück
Standard input (Delphi-Referenz durchsuchenInput)
Standard output (Delphi-Referenz durchsuchenOutput)
Standard error output (Delphi-Referenz durchsuchenErrOutput)

Output wird standardmäßig verwendet, wenn man Write, WriteLn und Co. benutzt
und Input bei ReadLn, Read usw.

Man kann natürlich auch direkt die genannten Funktionen oder File-Variablen benutzen, oder alles andere, was mit Dateien/Dateihandles arbeiten kann.


Zusätzlich könnte man zwar auch noch alles andere verwenden, wie z.B. spezielle Consolen-Komponenten oder GetAsyncKeyState usw.

Dejan Vu 1. Nov 2014 21:27

AW: Console Application mit Pfeiltasten navigieren?
 
Also, es widerspricht sich, weil eine Konsolenanwendung klassischerweise nur zeilenweise Ausgaben macht. Mit einem CR, LF und FF kann man natürlich einiges machen, aber .. nun gut. Nur macht man das heute eigentlich nicht mehr.

Sir Rufo 1. Nov 2014 22:11

AW: Console Application mit Pfeiltasten navigieren?
 
Wenn sich das widerspricht, wie haben die denn die Anwendungen in der Vor-GUI-Zeit gebaut?

Es ist nicht mehr üblich, weil es eben ein GUI gibt (hieß das früher dann eigentlich TUI? :mrgreen:) Und ein passendes Framework wie zu Turbo-Pascal-Zeiten ist mir auch nicht bekannt.

Also muss man wohl alles selber machen

Dejan Vu 2. Nov 2014 00:00

AW: Console Application mit Pfeiltasten navigieren?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1278375)
Wenn sich das widerspricht, wie haben die denn die Anwendungen in der Vor-GUI-Zeit gebaut?

Man Rufo. Es widerspricht sich, sei doch nicht so. Konsole = Zeilenorientierte Ausgabe und Eingabe.
Vor-GUI-Zeit != Konsole.
Vor-GUI-ZEIT == Terminal.

Gähn.

PS: Und nun rate mal, wieso es 'Konsolen'- Applikation' und nicht 'Terminal'-Applikation heißt?

Wer so etwas bauen will, kann ja einen VT100-Emulator nehmen, z.B. den von Indy. Aber man kann es auch sein lassen. Oder eben mal wieder eine Fingerübung mit der Konsolen<---Möööööp---möööp- Applikation machen.

Luckie 2. Nov 2014 00:11

AW: Console Application mit Pfeiltasten navigieren?
 
Ich kann dein Ansinnen nicht so ganz nachvollziehen. Warum muss es unbedingt eine Konsolenanwendung sein, wenn du doch GUI Features willst? Konsolenartige Ausgaben kann man auch in einem Memo machen.

p80286 2. Nov 2014 11:26

AW: Console Application mit Pfeiltasten navigieren?
 
Zitat:

Zitat von Luckie (Beitrag 1278384)
Ich kann dein Ansinnen nicht so ganz nachvollziehen. Warum muss es unbedingt eine Konsolenanwendung sein, wenn du doch GUI Features willst? Konsolenartige Ausgaben kann man auch in einem Memo machen.

Nachdem Dejan Vu so darauf herum geritten ist, vielleicht soll's so etwas wie eine Terminalanwendung werden, ähnlich der alten Novell-Oberfläche.

Gruß
K-H

himitsu 2. Nov 2014 13:47

AW: Console Application mit Pfeiltasten navigieren?
 
Das waren damals aber auch GUI-Anwendung, auch wenn halt im DOS, entweder nur im Textmodus (wer kennt noch die QBASIC-IDE) oder aufwändiger auch im Grafikmodus.

Aber wozu jetzt noch keine "GUI" Anwendung im Konsolenfenster erstellen, wenn man auch gleich und vorallem viel einfacher eine VCL/FMX/Irgendwas-GUI-Anwendung erstellen kann?

dummzeuch 2. Nov 2014 14:03

AW: Console Application mit Pfeiltasten navigieren?
 
Es gibt eine CRT-Unit fuer Windows / Delphi, mit der man Konsole-Anwendungen, die den Cursor setzen, an bestimmte Stellen ausgeben, auf Tastatureingaben warten etc. einfacher schreiben kann.

http://sourceforge.net/projects/delphicrt/

Sir Rufo 2. Nov 2014 15:26

AW: Console Application mit Pfeiltasten navigieren?
 
@himitsu

Eine GUI im Textmodus kann es per Definition nicht geben ;)
(GUI => Graphical User Interface)

himitsu 2. Nov 2014 15:45

AW: Console Application mit Pfeiltasten navigieren?
 
Jaaaa, aber TUI ist doch geschützt?

Es gab doch extra ein paar Grafikzeichen, welche man teilweise auch pixelweise programmieren konnte
und die ASCII-Art wollen wir doch nicht vergessen. :mrgreen:

hathor 2. Nov 2014 18:41

AW: Console Application mit Pfeiltasten navigieren?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
"Im September 1986 kam in der MS-DOS-Version Grafik dazu.

Im November 1990 kam eine objektorientierte GUI-Bibliothek hinzu (Turbo Vision)"
http://de.wikipedia.org/wiki/Turbo_Pascal


Mach doch was mit Turbo Vision...

Lyan 5. Nov 2014 15:05

AW: Console Application mit Pfeiltasten navigieren?
 
Vielen Dank für die Hilfe und die amüsante Diskussion :D
Ich muss unbedingt mal TUI anrufen und fragen was die dazu meinen-Ihr seid schon ziemlich harte trolls :D

Um die Frage zu klären warum ich es nicht mit VCL machen möchte:

Nun-ja, bin erst 20 und habe die schöne "ich muss was ins schwarze Fenster hämmern"-Zeit nicht mitbekommen und interessiere mich mittlerweile einfach dafür wie man das programmiert - bzw. wie man es am besten macht.

Hinzu kommt dass ich design-technisch eine absolute 0 bin (:D) und ich finde, dass eine consoleapp. irgendwie etwas cooles hat :)

Btw: habe einen Tastaturhook geschrieben und mit super eklig vielem WinAPI zeug mein Ziel erreicht. Danke für den Hinweis auf turbo vision, schau ich mir die Tage auch mal an.

Bb :)

DeddyH 5. Nov 2014 15:15

AW: Console Application mit Pfeiltasten navigieren?
 
TurboVision -> TurboPascal -> 16Bit -> läuft nicht unter 64Bit-OS

hathor 5. Nov 2014 15:27

AW: Console Application mit Pfeiltasten navigieren?
 
DOSBox ermöglicht aufgrund der vollständigen Emulation des Hauptprozessors das Ausführen von DOS-Anwendungen auch unter den 64-Bit-Versionen von Windows, die selbst keine Unterstützung für 16-Bit-Software mehr anbieten.

http://de.wikipedia.org/wiki/DOSBox
.
http://www.dosbox.com/download.php?main=1
http://www.chip.de/ii/8/3/6/8/6/3/88143942b326263d.jpg
http://www.chip.de/downloads/DOSBox_13015039.html
http://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk/

DeddyH 5. Nov 2014 15:29

AW: Console Application mit Pfeiltasten navigieren?
 
Man installiert sich also DOSBox und darin dann TP, nur um eine Konsolenanwendung zu erstellen, die dann wiederum nur auf 32Bit-OS (WOW) oder eben wieder DOSBox läuft? Gut, wer' s mag :roll:

p80286 5. Nov 2014 15:33

AW: Console Application mit Pfeiltasten navigieren?
 
Zitat:

Zitat von hathor (Beitrag 1278791)
DOSBox ermöglicht aufgrund der vollständigen Emulation des Hauptprozessors das Ausführen von DOS-Anwendungen auch unter den 64-Bit-Versionen von Windows, die selbst keine Unterstützung für 16-Bit-Software mehr anbieten.

http://de.wikipedia.org/wiki/DOSBox
.
http://www.chip.de/ii/8/3/6/8/6/3/88143942b326263d.jpg

Und Zugriff auf den Videospeicher und und mehrere VideoPages ?? :freak:

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:37 Uhr.

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