반응형
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure WMCommand(var Msg: TWMCommand); message WM_COMMAND;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
// TEdit의 MaxLength 길이보다 많은 값을 입력하려 할때 이것은
// 부모 원도우에 EN_MAXTEXT 메시지를 보내는데 이를 받아서 구현합니다
procedure TForm1.WMCommand(var Msg: TWMCommand);
begin
if Msg.NotifyCode = EN_MAXTEXT then
begin
PostMessage(Handle, WM_NEXTDLGCTL,0, 0); // 다음 콘트롤로 focus 이동
// SendMessage(Handle, WM_NEXTDLGCTL, 1, 0); // 이전으로 이동시
inherited;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.MaxLength := 10;
Edit2.MaxLength := 10;
Edit3.MaxLength := 10;
end;
end.
반응형