Array
(
)

Como posso restringir o numero de linhas em um memo?

Manjuneiro
   - 24 set 2004

Como posso restringir o numero de linhas em um memo.

Deve ser muito simples mais não consegui.


Obrigado desde já.

Título editado pelo Moderador (AZ) - Removido: ´Memo´


Ehvasc
   - 24 set 2004

Use o código abaixo que vai te ajudar


procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key = 13) and (Memo1.Lines.Count >=numMaxLinha) then
begin
Key := 0 ;
ShowMessage(´Limite Excedido´);
keybd_event(VK_BACK,VK_BACK,0,0);
end;
end;

Espero ter ajudado...


Paulo_amorim
   - 24 set 2004

Olá

Tinha pensado nessa solução, mas vi que ela eh limitada, pois só bloqueia se ele apertar ENTER... se o usuário digitar uma palavra que faça com que o Memo quebre a linha, a rotina não vai bloquear...

Até+


Zotti
   - 02 nov 2004

Paulo_Amorim

use esse ex abaixo:
procedure TBL.FLDCONSIGNEEExit(Sender: TObject);
var
Linha : integer;
begin
With FLDCONSIGNEE do
begin
Linha:= Perform(EM_LINEFROMCHAR,SelStart, 0);
if Linha >= 5 then
begin
Aviso;
FLDCONSIGNEE.setFocus;
end;
end;
end;

fldconsignee é o nome do meu componente DBMemo, o aviso é uma chamada a uma procedure, com uma mensagem, poderia ser ShowMessage(´Numero de linhas excede o permitido´)

Pode usar que deu certo no meu, o usuario não consegue sair do campo enquanto nào digitar o numero certo de linhas...
Até Mais...