Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Readln Problem (https://www.delphipraxis.net/86559-readln-problem.html)

Neutral General 15. Feb 2007 16:43


Readln Problem
 
Hi,

Readln liest sozusagen schon bevor es lesen soll...

Das hier ist der Code...

Delphi-Quellcode:
repeat
until GetAsyncKeyState(VK_BACK) < 0;

write('Send: ');
readln(x);
Wenn man jetzt während der repeat-Schleife irgendwelche Tasten drückt dann sind diese Buchstaben bei readln nachher schon zu sehn.. Ich will das aber nicht.. Will das man da en "leeres" readln hat wenn ihr wisst was ich meine.. drückt man z.B

"skdfjkld" während der Schleife dann steht da

Send: skdfjkld_

Dann muss ich die Buchstaben da erst wieder weglöschen -.-
Will aber das das erst gar nicht passiert...

Gruß
Neutral General

sirius 15. Feb 2007 16:50

Re: Readln Problem
 
Unter DOS und Turbo Pascal ging das so:
Delphi-Quellcode:
while keypressed do readkey
Vielleicht geht es ja immernoch.

shmia 15. Feb 2007 16:53

Re: Readln Problem
 
Was ist denn das für ein Programm ??
Eine Konsolenanwendung, die interaktiv eine Eingabe erwartet?
Das ist ja Steinzeittechnik aus MS-DOS Zeiten.
Aber wenn's denn so sein soll, kannst du mit SetConsoleMode() hier ansetzen.

Neutral General 15. Feb 2007 17:27

Re: Readln Problem
 
ReadKey gibts in Delphi leider nicht. Und das mit dem ConsoleMode funktioniert nicht.. Ich hab gemerkt das er die ganzen Tastendrücke sammelt und dann alle auf einmal ausspuckt wenn er darf... ich will aber nicht das die gesammelt werden sondern das sie vernichtet werden o.O^^

Gruß
Neutral General

sirius 15. Feb 2007 17:52

Re: Readln Problem
 
Und was ist mit SetKeyboardState?

Neutral General 15. Feb 2007 18:05

Re: Readln Problem
 
Zitat:

Zitat von sirius
Und was ist mit SetKeyboardState?

Verstehe den Sinn dieser function (trotz MSDN) irgendendwie nicht :|
Wie würde man das denn jetzt anwenden auf mein Problem?

sirius 15. Feb 2007 18:28

Re: Readln Problem
 
Vielleicht so:
Delphi-Quellcode:
var b:TKeyboardState;
    i:integer;
begin
  for i:=0 to 255 do b[i]:=0; //Vielleicht reicht auch nur das erste Byte zu setzen
  setkeyboardstate(b);
end;

marabu 15. Feb 2007 19:52

Re: Readln Problem
 
Oder so:

Delphi-Quellcode:
// uses Windows;

procedure FlushKeys;
begin
  FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
end;
Grüße vom marabu

Neutral General 16. Feb 2007 12:10

Re: Readln Problem
 
Zitat:

Zitat von marabu
Oder so:

Delphi-Quellcode:
// uses Windows;

procedure FlushKeys;
begin
  FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
end;
Grüße vom marabu

Hey Danke!
Das hab ich gebraucht :)

Gruß
Neutral General


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