Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
Delphi 7 Enterprise
|
Re: Konsolenanwendung Readln versteckt
21. Nov 2008, 20: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.
|
|
Zitat
|