Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Memo lines (https://www.clubdelphi.com/foros/showthread.php?t=70905)

cmfab 18-11-2010 16:23:06

Memo lines
 
Hola a todos, tengo el siguiene problemilla. coloco un tmemo en un formulario donde los usuarios a través de la tecla ENTER van a ir introduciendo cierta cantidad de lineas. Como puedo hacer para que no escriban lineas vacías. osea que no puedan presionar dos veces al enter creando una linea en blanco.

Gracias a todos por su interés

Casimiro Notevi 18-11-2010 16:34:51

Recuerda poner títulos descriptivos, ¿leiste nuestra guia de estilo?, gracias por tu colaboración.

Explica un poco más tu pregunta, ¿cómo insertan las líneas?, ¿en el mismo memo o en un edit que luego pasas los datos al memo?

Caro 18-11-2010 16:43:04

Hola cmfab, puedes utilizar el evento OnKeyPress para capturar la tecla Enter:

Código Delphi [-]
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
 if (key=#13) then //si es enter
  begin
   if (KeyAnt=Key) then
    key:= #0
   else
    KeyAnt := Key;
  end
 else //sino ponemos cualquier valor
  KeyAnt := 'A';
end;

donde KeyAnt es una variable global de tipo Char.

Saluditos

Caro 18-11-2010 16:48:09

Hola Casimiro :)

Cita:

Empezado por Casimiro Notevi (Mensaje 382661)
Recuerda poner títulos descriptivos, ¿leiste nuestra guia de estilo?, gracias por tu colaboración.

Yo también opino lo mismo ;).

Saluditos

roman 18-11-2010 16:56:03

Cita:

Empezado por Caro (Mensaje 382663)
Hola cmfab, puedes utilizar el evento OnKeyPress para capturar la tecla Enter:

Código Delphi [-]
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
 if (key=#13) then //si es enter
  begin
   if (KeyAnt=Key) then
    key:= #0
   else
    KeyAnt := Key;
  end
 else //sino ponemos cualquier valor
  KeyAnt := 'A';
end;

donde KeyAnt es una variable global de tipo Char.

Saluditos

Y, ¿qué pasa si escribo ENTER - SPACE - BKSPACE - ENTER?

// Saludos

ecfisa 18-11-2010 17:04:40

Hola.

Otra forma que se me ocurre es:

Código Delphi [-]
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
  with (Sender as TMemo) do
    if (Key = #13) and (Lines[Perform(EM_LINEFROMCHAR,SelStart,0)] = '') then
    Key:= #0;
end;

Saludos.

Caro 18-11-2010 17:15:12

Cita:

Empezado por roman (Mensaje 382665)
Y, ¿qué pasa si escribo ENTER - SPACE - BKSPACE - ENTER?

Hola Roman, en ese caso mejor utilizar la solución de ecfisa ;).

Saluditos

cmfab 18-11-2010 17:17:44

Gracias por su respuestas las analizaré cuanto antes y tambien estoy de acuero con el señalamiento del uso de títulos descriptivos

saludos


La franja horaria es GMT +2. Ahora son las 09:48:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi