Como definir o número máximo de caracteres por linha de um Memo.

DAVID CANDIDO DA SILVA

DAVID CANDIDO DA SILVA Publicado 17/11/2017 


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:


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;


 

Voltar ao topo