Espero me puedan colaborar con el siguiente inconveniente. Trato simular el ReadKey de Pascal con el Evento OnKeyPress de un Edit. Pero la informacion no me pasa a la tabla final.
Presento el codigo para tratar de ser mas especifico con el problema.
Código Delphi
[-]
procedure TEvaRes.RespKeyPress(Sender: TObject; var Key: Char);
var
res : string[1];
begin
aux := inttostr(i);
if (i < 10) then Result.Text := concat('00',aux);
if (i >= 10) and (i < 100) then Result.Text := concat('0',aux)
else Result.text := aux;
Resp.Clear;
Resp.SetFocus;
if (StrScan('A',Key) <> nil) or (StrScan('B',Key) <> nil) or (StrScan('C',Key) <> nil) or (StrScan('D',Key) <> nil) or
(StrScan('E',Key) <> nil) or (StrScan('F',Key) <> nil) or (StrScan('G',Key) <> nil) or (StrScan('H',Key) <> nil) or
(StrScan('V',Key) <> nil) then
begin
TTemporal.Append;
TTemporal.FieldByName('Pregunta').AsString := inttostr(i);
res := Resp.Text;
TTemporal.FieldByName('Respuesta').AsString := Resp.Text;
TTemporal.Post;
i := i + 1;
Resp.Clear;
end
else Key := #0;
if i > 159 then
begin
tcp := 0;
tda := 0;
tcu := 0;
TRelacion.First;
TTemporal.First;
for j := 1 to (i - 1) do
begin
if TRelacion.FieldByName('Resultado').AsString = TTemporal.FieldByName('Respuesta').AsString then
begin
if TRelacion.FieldByName('Grupo').AsString = 'C' then tcp := tcp + 1;
if TRelacion.FieldByName('Grupo').AsString = 'A' then tda := tda + 1;
if TRelacion.FieldByName('Grupo').AsString = 'D' then tcu := tcu + 1;
end;
TRelacion.Next;
TTemporal.Next;
end;
tot := tcp + tda + tcu;
Resp.Enabled := False;
end;
end;
La idea es que mientras no llegue a 160, pida el valor. A la tabla TTemporal ingresa el numero de la pregunta pero nunca ingresa la respuesta.
Podrian darme una ayuda.
Muchas Gracias.