有关开发控件的问题
要求:
1.基类:TEdit;
2.使其只能输入整数,即:
if not (Key in ['0'..'9',#8,#9,#13]) then Key := #0;
=====================================================
说明:我的控件代码如下,但在使用时,如果KeyPress事件没写代码,正常,
但如果KeyPress事件写了代码的话,就可以输入任何的字符了。
附NumEdit.pas代码:
unit NumEdit;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, StdCtrls;
type
TNumEdit = class(TEdit)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
procedure KeyPress(Sender: TObject; var Key: Char);
constructor Create(AOwner:TComponent); override;
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('MyComponent', [TNumEdit]);
end;
{ TNumEdit }
constructor TNumEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Self.OnKeyPress := KeyPress;
end;
procedure TNumEdit.KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9']) then
begin
Key := #0;
end;
end;
end.