窗体ShowModal之后
procedure TForm1.FormActivate(Sender: TObject);
begin
Procedure2;//1
procedure1;//2
ModalResult:=mrOK;//3*完成之后要返回
end;
上面第三句*之后没有关闭空口返回,
要怎样才可以,完成1,2之后如3那样就自动关闭空口返回?
procedure TForm1.FormActivate(Sender: TObject);
begin
Procedure2;//1
procedure1;//2
ModalResult:=mrOK;//3*完成之后要返回
end;
上面第三句*之后没有关闭空口返回,
要怎样才可以,完成1,2之后如3那样就自动关闭空口返回?
begin
OK := False;
Procedure2;//1
procedure1;//2
OK := True;
end; procedure TForm1.Timer1Timer(Sender: TObject);
begin
if OK then
begin
ModalResult := mrOK;
Close;
end;
end;
Close;
就可以了
procedure TForm1.FormActivate(Sender: TObject);
begin
Procedure2;//1
procedure1;//2
ModalResult:=mrOK;//3*完成之后要返回
PostMessage(Handle, WM_CLOSE, 0, 0);
end;
ModalResult:=mrOK;//3*完成之后要返回
一定要一个返回值的.
返回后在调用处会有一个处理。
Close;
都是用图形按钮的
把图形按钮的kind设为mrok不就完了
窗体会自动返回mrok的
例:
var
dlg: TMyForm;
begin
dlg := TMyForm.Create(Self);
try
....设置窗体的参数
dlg.ShowModule;
if dlg.ModalResult = mrOk then
begin
//如果用户选择了确定后做的处理.
end;
finally
dlg.Free;//这里是调用者释放这个窗体的地方.
end;
end;通常只有非模式化的窗体才需要自己关闭自己.
begin
try
Form2.ShowModal;
finally
case Form2.ModalResult of
mrOk :showMessage('aaaaaaaaaaaaa');
mrCancel :showMessage('bbbbbbbbbbbbb');
mrAbort :showMessage('cccccccccccccc');
else
showMessage('ddddddddddddddddddd');
end;
end;
end;