Como puedo aplicar el codigo de backspace de la tabla Ascii en pascal?
Publicado por isaias (8 intervenciones) el 04/07/2013 23:40:58
Bueno resulta que quiero escribir un mensaje en pantalla y que lo muestre, pero el problema es que no puedo borrar. Puedo a lo sumo ir hacia el costado pero no borrar la letra que escribi.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{ Cuando apreto la tecla supr o alguna de funcion , por cada espacio de letra me consume mas caracteres que una letra normal }
Program Mensaje;
Uses
Crt;
Const
N=10; { numero maximo de caracteres en el mensaje }
Type
TMensaje= Array [1..N] Of Char;
TClave = Array [1..10]Of Integer;
TCodigo = Record
clave: TClave; { clave }
digitos: Integer;{ tamaño de la clave }
End;
Var
msjdeco: TMensaje;
texto: String[N];
tec: Char;
i: Integer;
Begin
i:= 1;
Repeat
tec:= Readkey; {Entrada de Caracteres}
texto[i]:= tec;
texto[0]:= Chr(i);
Write(texto[i]);
i := i + 1;
If tec = #8 { Esta es la tecla de retroceso, pero para borrar la tecla es 7f y al f me lo toma con una variable }
Then Begin {Borrado de caracteres con tecla Retroceso, no puedo borrarlos.}
i:=i-1;
If i < 1 Then Begin
i := 1;
texto[i] := ' ';
texto[0] := Chr(i);
Write(' ')
End
End
Until (i > N) Or (tec = #27);
For i:=1 To Length(texto) Do Begin
msjdeco[i] := texto[i];
End;
Writeln('')
End.
Valora esta pregunta
0