如果是Form的FormStyle属性为fsMDIChild则不能使用Form.ShowModal, 而必须使用Form.Show! procedure TMainForm.N5Click(Sender: TObject); begin if Form = nil then Form := TForm.Create(Self) else Form.Show; end;如果Form的FormStyle属性为fsNormal,那么试试下面的方法。procedure TMainForm.N5Click(Sender: TObject); begin if Form = nil then begin Form := TForm.Create(Self); Form.ShowModal; end else Form.ShowModal; end;最好在Form的OnClose事件中写入如下代码: procedure TForm.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; Form := nil; end;
可能是没有创建窗体就showmodal了
窗体的 visible属性要 为false;
如果这样 在设计时窗体的 visible属性要 为false;procedure TMainForm.N5Click(Sender: TObject); begin if Form = nil then begin Form := TForm.Create(Self); Form.ShowModal; end else Form.ShowModal; end;
代码呢!》?
用showmessage看看能执行到哪?
而必须使用Form.Show!
procedure TMainForm.N5Click(Sender: TObject);
begin
if Form = nil then
Form := TForm.Create(Self)
else Form.Show;
end;如果Form的FormStyle属性为fsNormal,那么试试下面的方法。procedure TMainForm.N5Click(Sender: TObject);
begin
if Form = nil then
begin
Form := TForm.Create(Self);
Form.ShowModal;
end else Form.ShowModal;
end;最好在Form的OnClose事件中写入如下代码:
procedure TForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
Form := nil;
end;
begin
if Form = nil then
begin
Form := TForm.Create(Self);
Form.ShowModal;
end else Form.ShowModal;
end;