看你的问题好象是限制Edit的录入为0-9之间的数字,如果是这样的话,
可定义OnChange方法,
procedure TfrmAutoMain.EditChange(Sender: TObject);
var
s:String;
begin
s:=TEdit(Sender).Text;
if not (Copy(s,Length(s)-1,1) in ['0'..'9']) then Abort;
end;
小弟这个Edit是动态创建的,刚开始并没有啊。
creation-zy的建议据说是挺好的,可惜的是小弟对API函数不是很熟悉,唉~~~
我的一个想法是,先建立一个过程比如说procedure MyKeyPress(Sender:TObject)
if not key in ['0'..'9'] then key:=#0;
然后用Edit的OnKeyPress事件
然后把MyKeyPress赋值给这个事件,但是好像不行。
下面是源代码:
代码:
Table1.Open;
Table1.First;
while not Table1.Eof do
begin
L:=TLabel.Create(self);
L.Parent:=Tab;{建立父对象}
with L do
begin
Name:='L'+IntToStr(i);
Caption:=Table1.FieldByName('S_NAME').AsString;
Width:=70;
Top:=x+10;
Left:=y+10;
Visible:=True;
end;
E:=TEdit.Create(self);
E.Parent:=Tab;
with E do
begin
Text:='0';
AutoSize:=True;
Top:=x+10;
Left:=y+20+L.Width;
Visible:=True;
end;
x:=x+25;
i:=i+1;
if x>PageControl1.Height then
begin
x:=PageControl1.Top;
y:=PageControl1.Width div 2;
second:=second+1;
if second=3 then
begin
Counter:=Counter+1;
Tab:=TTabSheet.Create(PageControl1);
with Tab do
begin
PageControl := PageControl1;
Name := 'tsPage' + IntToStr(Counter);
Caption :='Page'+IntToStr(Counter);
end;
x:=PageControl1.Top;
y:=PageControl1.Left;
second:=0
end;
end;
Table1.Next;
end;
Table1.Close;