Ver Mensaje Individual
  #6  
Antiguo 21-11-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Creo que deberías especificar con más detalle lo que quieres lograr. Por ejemplo, con este código

Código Delphi [-]
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
var
  C, I: Integer;

begin
  I := Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0);
  C := Length(Memo1.Lines[i]);

  if Key = #13 then
    Key := #0;

  if (C >= 3) and (Key <> #8) then
    Memo1.Lines.Insert(I + 1, '');
end;

logras más o menos lo que quieres: al escribir el cuarto caracter en una linea, automáticamente se coloca en la siguiente; la tecla de retroceso funciona como se espera, y al oprimir ENTER se pasa a la siguiente línea sólo si ya se completaron los tres caracteres.

Pero no has definido si esto es realmente lo que deseas del ENTER, ni tampoco qué debe pasar si te cambias a una línea anterior. En resumen, especificar qué debe suceder en cada caso posible.

Por otra parte, habría que ver si no te conviene más usar otro tipo de control, como un StringGrid, por ejemplo.

// Saludos
Responder Con Cita