Ver la Versión Completa : Numero de caracteres limitado por linea en un TMemo
RoyTan
15-07-2013, 19:57:11
Saludos, mi pregunta es si es posible limitar el número de caracteres por linea en un Memo.
La propiedad MaxLength solo lo limita en forma global no por linea y así no me vale.
Por ejemplo seria posible hacer esto.
1234567890
1234567890
1234567890
y así sucesivamente.
nunca colocar mas de diez caracteres por linea sean numeros o letras.
Gracias.
nlsgarcia
15-07-2013, 21:18:30
RoyTan,
...es posible limitar el número de caracteres por línea en un Memo...
Revisa este código:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure OnKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.OnKeyPress(Sender: TObject; var Key: Char);
var
Line,Column : Integer;
begin
With Memo1 do
begin
Line := Perform(EM_LINEFROMCHAR,SelStart, 0);
Column := SelStart - Perform(EM_LINEINDEX, Line, 0);
if (Column >= 10) and (Key <> #8) and (Key <> #13) then
Key := #0;
end;
end;
end.
El código anterior limita cada línea de un control TMemo a 10 carácteres por medio del evento OnKeyPress y el método Perform.
Espero sea útil :)
Nelson.
RoyTan
15-07-2013, 21:53:29
Gracias Nelson.
Es precisamente lo que queria, funciona perfecto.
Un saludo y muchas gracias.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.