problem z readkey

0

mam taki problem :<ort>zciągnąłem </ort>moduł crt dla delphi (skorzystałem z linka na tym forum umieszczonego jakiś miesiąc temu) i on działa poprawnie pod xp ale pod np. winME i prawdopodobnie 98 przy takim przypadku:

litera:=readkey;
.
.
.
readln(jakis_string);

to co jest zapisane do 'litera' pojawia sie jako pierwsza litera w stringu, przy <ort>prubie </ort>wpisywania "jakiegos_stringa' należy najpierw użyc backspace jesli sie nie chce miec na <ort>poczotku </ort>tej litery, <ort>o to </ort>kod dotyczący readkey w module crt:

function ReadKey: Char;
var
NumRead: DWORD;
ir: TInputRecord;
begin
repeat
ReadConsoleInput(RHandle, ir, 1, NumRead);
if ir.EventType <> KEY_EVENT then
Continue;

if ir.Event.KeyEvent.bKeyDown then
begin
  case ir.Event.KeyEvent.dwControlKeyState of
    0: begin
        Result := ir.Event.KeyEvent.AsciiChar;
        Exit;
      end;
    256: begin
        Result := Chr(ir.Event.KeyEvent.wVirtualScanCode);
        Exit;
      end
  else begin
      Result := ir.Event.KeyEvent.AsciiChar;
      Exit;
    end;
  end
end

until false;
end;
jesli ktos potrafiłby go zmodyfikowac tak aby dzialał poprawnie lub znał namiary na darmowy i poprawnie działający crt to będę wdzięczny za pomoc.

0

Mi zarowno na XP jak i na 98 dziaal poprawnie.
Mozesz sprobowac zamiast readkey uzyc read, ale wtedy stracisz mozliwosc obslugi czesci klawiszy. Mozesz tez uzyc tego (read) po readkey i wtedy znak powinien zniknac.
Mozesz sobie sciagnac moja biblioteke CRT, jest na mojej stronce.

0

działa, ale niestety tylko w TP :(

1 użytkowników online, w tym zalogowanych: 0, gości: 1