我有一个parent,我需要检查parent上tag为某一范围的值的输入控件,有edit,有combox,或是别的第三方输入控件,这些控件不允许为空。
函数在下面
我现在用的是hint,因为到控件层只查到hint是STring型
但我要为每个需检查的控件的exit事件里写一个过程,使hint=控件的text
这样效率低也不方便,而且占用了控件的hint属性,请大家帮忙看一看,有没有更好的方法,
如ApI
已写函数如下
Function CheckNotNull(aParent:TWinControl):Boolean;
var
I:Integer;
ErINf:string;
begin
Result:=False; for i:=0 to aparent.ControlCount-1 do
begin
if aparent.Controls[i].Tag=999 then
begin
if aparent.Controls[i].Hint='' then
begin
ErINf:=aparent.Controls[i].Name+'属性值不能为空';
messagedlg(erinf,mtinformation,[mbok],0);
exit;
end
end; end; Result:=true;
end;
函数在下面
我现在用的是hint,因为到控件层只查到hint是STring型
但我要为每个需检查的控件的exit事件里写一个过程,使hint=控件的text
这样效率低也不方便,而且占用了控件的hint属性,请大家帮忙看一看,有没有更好的方法,
如ApI
已写函数如下
Function CheckNotNull(aParent:TWinControl):Boolean;
var
I:Integer;
ErINf:string;
begin
Result:=False; for i:=0 to aparent.ControlCount-1 do
begin
if aparent.Controls[i].Tag=999 then
begin
if aparent.Controls[i].Hint='' then
begin
ErINf:=aparent.Controls[i].Name+'属性值不能为空';
messagedlg(erinf,mtinformation,[mbok],0);
exit;
end
end; end; Result:=true;
end;
uses typinfo;Function CheckNotNull(aParent:TWinControl):Boolean;
var
I:Integer;
ErINf:string;
begin
Result:=False; for i:=0 to aparent.ControlCount-1 do
begin
if aparent.Controls[i].Tag=999 then
begin
//如果此控件具有TEXT的属性则
if IsPublishedProp(Controls[i], 'text') then
begin
if Controls[i].text='' then
begin
ErINf:=aparent.Controls[i].Name+'属性值不能为空';
messagedlg(erinf,mtinformation,[mbok],0);
exit;
end
end
end; end; Result:=true;
end;
if Parent.Controls[I].Tag <> 999 then Continue;
if (Parent.Controls[I] is TEdit)and(TEdit(Parent.Controls[I]).Text='')then ShowErr(……);
if (Parent.Controls[I] is TComboBox)and(……) then ShowErr(……);
……end;你试试吧
但得到属性还要在typinfo中找另一个函数,谢谢