Edit控制元件加強版
阿新 • • 發佈:2018-11-24
今天剛寫了個只能輸入數字的edit控制元件.因為是第一次修改元件,所以比較簡單
寫得不好,或不足的請大俠們多多提點意見..
unit MDedit;
interface
uses
SysUtils, Classes, Controls, StdCtrls, Windows;
type
TMDedit = class(TEdit)
private
{ Private declarations }
FChecknumber : Boolean;
procedure SetChecknumber(const value:Boolean);
protected
{ Protected declarations }
procedure Keypress (var Key : char);override;
public
{ Public declarations }
constructor Create(AOwner : TComponent);override;
published
{ Published declarations }
property Checknumber : boolean
read FChecknumber write setChecknumber default true;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('MySelf', [TMDedit]);
end;
{ TMDedit }
constructor TMDedit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FChecknumber := true;
end;
//由於中文字元佔兩個位元組,因此當輸入中文時會連續彈出兩次提示資訊.這個問題大家可以嘗試用另一種方法替換.
procedure TMDedit.Keypress(var Key: char);
begin
if FChecknumber then
begin
if not((key in ['1'..'9',#8]) ) then
begin
Messagebox(self.Handle,pchar('請輸入數字'),pchar('提示資訊'),MB_ICONWARNING);
key := #0;
end;
end;
end;
procedure TMDedit.SetChecknumber(const value: Boolean);
begin
FChecknumber := value;
end;
end.