La Web del Programador: Comunidad de Programadores
 
    Pregunta:  14938 - PONER CLAVE A PROGRAMA PASCAL
Autor:  felipe reyes
hola:
me gustaria aprovechar para felicitarlos porque este foro es muy bueno
ahora mi pregunta es:¿como lo hago para que al ejecutar un programa en pascal me pida una clave y esta al ser tipeada en pantalla aprezca con los clasicos ***** asteriscos y asi nadie pueda ver lo que yo estoy ecribiendo?.

ojala me puedan ayuudar con mi gran incognita. :)

  Respuesta:  LUIS MATA
Este que te escribo lo hice como procedimiento espero te sea util.. lo unico malo es que para cambiar la clave lo tienes que hacer por el codigo fuente a menos que crees otro preceso para cambiarlo.

PROCEDURE clave;

VAR clave:longint;
BEGIN
clrscr;
cuadro;
textcolor(WHITE);
gotoxy(26,11);write('INTRODUZCA CODIGO DE ACCESO:');
gotoxy (26,12); write ('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(26,13);write('º º');
gotoxy (26,14); write ('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
Textbackground(red);
textcolor(red);
gotoxy(28,13);readln(clave);
gotoxy(28,13);write('**************');
textbackground(0);
IF clave=110707 THEN
Begin
principal(Arch);
End
else
Begin
clrscr;
textbackground(0);
cuadro;
textcolor(red);
gotoxy (26,12); write ('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
gotoxy(26,13);write('º º');
gotoxy (26,14); write ('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
Textcolor(17);
gotoxy(28,13);write('A C C E S O D E N E G A D O');
SOUND(1280);
DELAY(800);
SOUND(3020);
DELAY(300);
SOUND(25000);
DELAY(800);
SOUND(100);
Textcolor(0);
READKEY;
NOSOUND;
end;

  Respuesta:  Dabiz Spuch Calvar
En Pascal no es tan sencillo como en VB pero se pude hacer, lo que tienes que hacer es lo siguiente:

Cuando tu aplicación pida la clave tienes que capturar las pulsaciones de teclado con un bucle y las instrucciones Keypressed y ReadKey, por cada pulsación que haga el usuario muestras un asterisco en pantalla. Esta sería un forma de hacerlo:

uses Crt;

procedure Inicio;
var Clave, Caracter : String;
begin
Clave := '';
Caracter := '';
ClrScr; { Limpia la pantalla }
Write ('Introduzca la clave: ');
While KeyPressed do ReadKey; { Limpia el buffer de teclado }
While (Caracter <> #13) do { Termina el bucle con retorno }
begin
if KeyPressed then begin
Write ('*');
Caracter := ReadKey;
Clave := Concat (Clave,Caracter);
end;
end;
Writeln;
Write ('La clave introducida es: ', Clave);
end;

begin Inicio end.

Espero que te sirva de algo, un saludo.