Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Konsolenanwendung Readln versteckt

  Alt 21. Nov 2008, 19:01
@Ap
Und du bist dir sicher, dass readln da noch etwas empfängt.
Ah ja


Ich hab mal eine Funktioen mit Sternen als Platzhalter geschrieben:
Delphi-Quellcode:
function readPassword:string;
var HandleIn,HandleOut:THandle;
    key:char;
    temp:Cardinal;
    premode,mode:Cardinal;
    s:string;
    star:string;
begin
  star:='*'#8' '#8;
  HandleIn:=GetStdHandle(STD_INPUT_HANDLE);
  HandleOut:=GetStdHandle(STD_OutPut_HANDLE);
  getConsoleMode(handleIN,premode);
  mode:=premode and not (Enable_line_input or Enable_Echo_input);
  setconsolemode(handleIN,mode);
  FlushConsoleInputBuffer(HandleIN);
  result:='';
  repeat
    if (not ReadConsole(HandleIN,@key,1,temp,nil))or(temp<>1) then
      beep(410,100)
    else
    begin
      case ord(key) of
        32..126: begin
          result:=result+key;
          writeconsole(handleOut,@star[1],1,temp,nil);
        end;
        8: begin
          writeconsole(handleOut,@star[2],3,temp,nil);
          setlength(result,length(result)-1);
        end;
        13: writeln;
        else beep(410,100);
      end;
    end;
  until key=#13;
  setconsolemode(HandleIN,premode);
end;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat