procedure TForm2.FormShow(Sender: TObject); begin Form1:= TForm1.Create(self); Form1.ShowModal; Form1.Free; ... end
主窗体form1 procedure TForm1.FormShow(Sender: TObject); begin Form2:= TForm2.Create(self); Form2.ShowModal; Form2.Free; end; 登陆窗体登陆按钮 procedure TForm2.Button1Click(Sender: TObject); begin if 通过 then begin form2.Close; form1.Show; end else showmessage('验证没有通过'); form2.SetFocus; end;
我这样拿进去编译了,报错说cannot make a visble window modal
[code=Delphi(Pascal)]procedure TForm2.FormActivate(Sender: TObject); begin with tForm1.Create(self) do begin ShowModal; free; end; end; code]
procedure TForm1.FormActivate(Sender: TObject); begin with tForm2.Create(self) do begin ShowModal; free; end;; end;
procedure TForm2.FormShow(Sender: TObject); begin Form1:=TForm1.Create(self); try if Form1.showmodal <> mrok then close; finally Form1.free; end; end;我的代码是这样的 现在可以先跳出form1登陆框了,但是我用户名密码验证完后跳不出form2,这是怎么回事情?
目标:想让主窗口先启动,再启动登陆窗口,停留在主窗口上面,使得此时主窗口看得见但是不能点击。 然后登陆以后,主窗口的菜单栏里面点出来的都是子窗口。(主窗口和登录窗口均连接数据库) 你在form1.onActivate 这个事件下面写: procedure TForm1.FormActivate(Sender: TObject); begin if not Assigned(Form2) then Form2 :=TForm2.Create(Self); form2.ShowModal; FreeAndNil(Form2); end; 是应该可以实现了的。现在遇到问题:之前网上也搜过类似的问题,现在已经将主窗口的formstyle设为了fsMDIform,登陆窗口的formstyle设为了fsNormal,project那里也将自动生成的form改为只有主窗口了。原来还能出现登陆窗口,然后登陆后不能点击菜单栏去调用子窗口;现在不知在哪里改动过,连登陆窗口都不显示了。 说明你的错误不是这里的show的问题,应该是别处有错了。
begin
Form1:= TForm1.Create(self);
Form1.ShowModal;
Form1.Free;
...
end
procedure TForm1.FormShow(Sender: TObject);
begin
Form2:= TForm2.Create(self);
Form2.ShowModal;
Form2.Free;
end;
登陆窗体登陆按钮
procedure TForm2.Button1Click(Sender: TObject);
begin
if 通过 then
begin
form2.Close;
form1.Show;
end
else
showmessage('验证没有通过');
form2.SetFocus;
end;
我这样拿进去编译了,报错说cannot make a visble window modal
begin
with tForm1.Create(self) do
begin
ShowModal;
free;
end;
end;
code]
begin
with tForm2.Create(self) do
begin
ShowModal;
free;
end;;
end;
begin
Form1:=TForm1.Create(self);
try
if Form1.showmodal <> mrok then
close;
finally
Form1.free;
end;
end;我的代码是这样的
现在可以先跳出form1登陆框了,但是我用户名密码验证完后跳不出form2,这是怎么回事情?
然后登陆以后,主窗口的菜单栏里面点出来的都是子窗口。(主窗口和登录窗口均连接数据库)
你在form1.onActivate 这个事件下面写:
procedure TForm1.FormActivate(Sender: TObject);
begin
if not Assigned(Form2) then
Form2 :=TForm2.Create(Self);
form2.ShowModal;
FreeAndNil(Form2);
end;
是应该可以实现了的。现在遇到问题:之前网上也搜过类似的问题,现在已经将主窗口的formstyle设为了fsMDIform,登陆窗口的formstyle设为了fsNormal,project那里也将自动生成的form改为只有主窗口了。原来还能出现登陆窗口,然后登陆后不能点击菜单栏去调用子窗口;现在不知在哪里改动过,连登陆窗口都不显示了。
说明你的错误不是这里的show的问题,应该是别处有错了。