Como definir o número máximo de caracteres por linha de um Memo.
Com esta código é possível definir quantos caracteres pode ter por linha
e também o número máximo de linhas que o memo pode ter.
O código é válido para o DBMemo também.
No evento OnKeyPress deixe conforme o exemplo abaixo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| procedure Tfrmproduto_pedido.DBMemo1KeyPress(Sender: TObject;
var Key: Char);
var
vVertical, vHorizontal : Longint;
begin
// Caracteres por linha
vVertical := 59;
// Número máximo de linhas
vHorizontal := 6;
TMemo(Sender).MaxLength := vVertical * vHorizontal;
with TMemo(Sender) do
begin
if ((TMemo(Sender).Lines.Count = vHorizontal + 1) and (key <> #8)) or
((TMemo(Sender).Lines.Count = vHorizontal) and (key = #13)) then
begin
Key := #0
end
else begin
if (not (Key in [#8, #13])) then
begin
if (Length(Lines[TMemo(Sender).CaretPos.Y]) > vVertical) then
begin
Key := #0;
end;
end;
end;
end;
end; |
procedure Tfrmproduto_pedido.DBMemo1KeyPress(Sender: TObject;
var Key: Char);
var
vVertical, vHorizontal : Longint;
begin
// Caracteres por linha
vVertical := 59;
// Número máximo de linhas
vHorizontal := 6;
TMemo(Sender).MaxLength := vVertical * vHorizontal;
with TMemo(Sender) do
begin
if ((TMemo(Sender).Lines.Count = vHorizontal + 1) and (key <> #8)) or
((TMemo(Sender).Lines.Count = vHorizontal) and (key = #13)) then
begin
Key := #0
end
else begin
if (not (Key in [#8, #13])) then
begin
if (Length(Lines[TMemo(Sender).CaretPos.Y]) > vVertical) then
begin
Key := #0;
end;
end;
end;
end;
end;
Dúvidas ou sugestões deixe nos comentários do post.
-
Giovani Da Cruz
-
6.734 views
- 0 comentários
- 15 de setembro de 2015
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo