if (edit1.text = '') or (edit2.text = '') or (edit3.text = '') then begin edit; abort; end; 或者写控件的循环 可以查看帮助
//可以利用Tag等属性来标志其是否可以为空或者是唯一,Hint属性~~ //保存的时候遍历判断即可~~ //参考如下代码~~procedure TForm1.ButtonSaveClick(Sender: TObject); var I: Integer; begin for I := 0 to ComponentCount - 1 do case Components[I].Tag of 1: begin //不能为空 if (Components[I] is TEdit) and (TEdit(Components[I]).Text = '') then begin ShowMessage(TEdit(Components[I]).Hint + '不能为空'); Exit; end; if (Components[I] is TComboBox) and (TComboBox(Components[I]).Text = '') then begin ShowMessage(TComboBox(Components[I]).Hint + '不能为空'); Exit; end; end; end; end;
以edit为例将edit1的exit写为 procedure TForm1.Edit5Exit(Sender: TObject); begin if Tedit(Sender).Text='' then Tedit(Sender).Text:='不能为空'; end;然后将所有的edit的exit事件指向这个事件然后你看看效果
begin
edit;
abort;
end;
或者写控件的循环 可以查看帮助
//保存的时候遍历判断即可~~
//参考如下代码~~procedure TForm1.ButtonSaveClick(Sender: TObject);
var
I: Integer;
begin
for I := 0 to ComponentCount - 1 do
case Components[I].Tag of
1: begin //不能为空
if (Components[I] is TEdit) and
(TEdit(Components[I]).Text = '') then begin
ShowMessage(TEdit(Components[I]).Hint + '不能为空');
Exit;
end;
if (Components[I] is TComboBox) and
(TComboBox(Components[I]).Text = '') then begin
ShowMessage(TComboBox(Components[I]).Hint + '不能为空');
Exit;
end;
end;
end;
end;
不过或许它们事件类型不同,你可以让它们发自定义消息,你的程序接受这个消息并根据消息参数知道是那个组件发的,然后就可以操作了。
procedure TForm1.Edit5Exit(Sender: TObject);
begin
if Tedit(Sender).Text='' then Tedit(Sender).Text:='不能为空';
end;然后将所有的edit的exit事件指向这个事件然后你看看效果