Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Taste einlesen in Konsole - aber wie??? (https://www.delphipraxis.net/3943-taste-einlesen-konsole-aber-wie.html)

dmw256 7. Apr 2003 13:59


Taste einlesen in Konsole - aber wie???
 
Hi, hi!

wie kann man in einer Konsolen-Anwendung ein einzelnes Zeichen
von der Tastaur einlesen (wie readkey unter TP), bzw den
Status des Tastaurbuffers abfragen?

Vielen Dank für Eure Hilfe
doni


NO A LA GUERRA

Chewie 7. Apr 2003 16:49

Delphi-Quellcode:
var s: String;

Read(s);
Write('Folgendes wurde eingegeben: ',s);

dmw256 7. Apr 2003 21:01

Nun ja, dat is leider nisch datte, was ich wollte...

Ich will ein EINZELNES Zeichen einlesen. Nisch'n janzen
String...



NO A LA GUERRA

Chewie 7. Apr 2003 21:11

Na ja, ein String kann auch aus einem einzelnen Zeichen bestehen.
Delphi bietet für dasLesen aus Konsolenfenstern eben nur Read und ReadLn.

Luckie 7. Apr 2003 21:17

Zitat:

Zitat von dmw256
Ich will ein EINZELNES Zeichen einlesen. Nisch'n janzen
String...

Was hindert dich daran nach einem Zeichen RETURN zu drücken? :roll:

dmw256 7. Apr 2003 21:20

Hatte gehofft, daß das irgendwie mit den API-Funktionen ReadConsole,
ReadConsoleInput oder ähnlichem zu machen sei, hab´s aber nicht
hingekriegt... :(

Luckie 7. Apr 2003 21:23

Warum willst du kein Read?

dmw256 7. Apr 2003 21:42

Nun ja, warum kein Read...

Ich hab ein TurboPascal-Programm, was ich möglichst unkompliziert
nach Delphi portieren möchte. Und ist auch eilig.
In diesem Programm benutze ich Cursortasten zur Steuerung (Surfen
durch die Verzeichnisse...)

Da ich von Delphi nicht viel Ahnung hab und mich auch mit den
Komponenten nicht so dolle auskenne (bitte, bitte, verbannt
mich jetzt nicht gleich von der Seite...)
will ich das ganze fast 1 zu 1 als Konsolen-Anwendung schreiben.
Und da ist ´n <ENTER> nach jeder Cursor-Taste ´n Dorn im Auge...

DracoBlue 28. Apr 2006 12:39

Re: Taste einlesen in Konsole - aber wie???
 
(uralt thread rauskrammt, falls es doch nochmal jeamnd brauch.)

Von hier geklaut :
http://www.delphipraxis.net/internal...=160214#160214
Delphi-Quellcode:
function ReadKey: Char;
var
  InputBuf: Char;
  NumRead: DWord;
begin
  InputBuf := #0;
  If ReadConsole(GetStdhandle(STD_INPUT_HANDLE), @InputBuf, 1, NumRead, nil) then
    Result := InputBuf
  else
  begin
    WriteLn(Format('ReadConsole failed, reason: %s',
                   [SysErrorMessage(GetLastError)]));
    Result := #0;
  end;
end;


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