Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-10-2003
ALMERA ALMERA is offline
Miembro
 
Registrado: may 2003
Posts: 42
Poder: 0
ALMERA Va por buen camino
Memo limitado.

Hola amigos del foro, me gustaria saber como poder limitar un memo al número de lineas que yo quiera por ejemplo tres.
¿como limito un memo a solo 3 lineas?.

Muchas Gracias.
Responder Con Cita
  #2  
Antiguo 07-10-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Puedes probar algo así

Código:
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
  if Memo1.Lines.Count > 1 then
    Key := #0;
end;
Responder Con Cita
  #3  
Antiguo 07-10-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.934
Poder: 27
delphi.com.ar Va por buen camino
La respuesta del amigo cadetill, si bien es sencilla, fallará si el usuario utiliza el clipboard. En este caso tendrías que trabajar con el mensaje WM_PASTE y quitar los CR y/o LF de lo que se va a pegar.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 07-10-2003
ALMERA ALMERA is offline
Miembro
 
Registrado: may 2003
Posts: 42
Poder: 0
ALMERA Va por buen camino
Me parece muy bien la idea, pero tiene una pega:
cuando se pulsa la tecla del caracter que pasa a la cuarta linea (donde no queremos que escriba) el contador de lineas vale 3, por lo que un caracter entra siempre en la linea no deseada, todavia peor si lleno las tres lineas y en la segunda escribo algo que esto:

"sfggsdfgsdfgsdfgfdsgsfdgsfdgfdsgsfdgfd
sddfgdfsgdffdgdsfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ff
fdsfgfdgfdsgfdgfdsgdfgfdsgdfsgfffdssfdgfdfffdfdfdfdñññ"
Responder Con Cita
  #5  
Antiguo 07-10-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Posteado originalmente por ALMERA
cuando se pulsa la tecla del caracter que pasa a la cuarta linea (donde no queremos que escriba) el contador de lineas vale 3, por lo que un caracter entra siempre en la linea no deseada, todavia peor si lleno las tres lineas y en la segunda escribo algo que esto:

"sfggsdfgsdfgsdfgfdsgsfdgsfdgfdsgsfdgfd
sddfgdfsgdffdgdsfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ff
fdsfgfdgfdsgfdgfdsgdfgfdsgdfsgfffdssfdgfdfffdfdfdfdñññ"
Es posible que esto tenga que ver con la opción WordWrap del Memo. Quizá en lugar de liarte con el número de líneas, mensajes WM_PASTE, etc., te convenga usar la propiedad MaxLength del Memo para limitar el número de caracteres que se pueden introducir en el Memo.

Si, por ejemplo, quieres líneas de aproximadamente 20 caracteres entonces pon MaxLength en 60 y el usuario no podrá escribir más de 60 caracters (= 3 líneas de texto).

// Saludos
Responder Con Cita
  #6  
Antiguo 07-10-2003
ALMERA ALMERA is offline
Miembro
 
Registrado: may 2003
Posts: 42
Poder: 0
ALMERA Va por buen camino
eso ya lo habia pensado, pero si no controlo el número de lineas, con 60 caracteres se pueden hacer 60 lineas,
ponemos un ejemplo de 6 lineas

1111111111
2222222222
3333333333
4444444444
5555555555
6666666666

ahora con esta información hago un informe donde solo caben 3 lineas, entonces la cagaste burlancaster.
Responder Con Cita
  #7  
Antiguo 08-10-2003
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 22
Julià T. Va por buen camino
hola a todos
puedes colocar un código parecido a:


Cita:
procedure TForm1.Memo1Change(Sender: TObject);
begin
While Memo1.Lines.Count>3 do
Memo1.Lines.Delete(Memo1.Lines.Count-1);
end;
con lo que borrarás cualquier linea que se intente poner a partir de la tercera
Responder Con Cita
  #8  
Antiguo 08-10-2003
ALMERA ALMERA is offline
Miembro
 
Registrado: may 2003
Posts: 42
Poder: 0
ALMERA Va por buen camino
MUCHAS GRACIAS JULIA.
ME HA SIDO DE GRAN AYUDA TU CONSEJO.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 18:37:41.


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
Copyright 1996-2007 Club Delphi