Como posso restringir o numero de linhas em um memo?

24/09/2004

Como posso restringir o numero de linhas em um memo.

Deve ser muito simples mais não consegui.


Obrigado desde já.

[b:90aa85f517][color=red:90aa85f517]Título editado pelo Moderador (AZ) - Removido: ´Memo´[/color:90aa85f517][/b:90aa85f517]


Manjuneiro

Respostas

24/09/2004

Ehvasc

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...


Responder Citar

24/09/2004

Paulo_amorim

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é+


Responder Citar

02/11/2004

Zotti

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...


Responder Citar