Como posso restringir o numero de linhas em um memo?
24/09/2004
0
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
Posts
24/09/2004
Ehvasc
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...
24/09/2004
Paulo_amorim
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é+
02/11/2004
Zotti
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...
Clique aqui para fazer login e interagir na Comunidade :)