创建时隐藏窗体(50分)

  • 主题发起人 主题发起人 一只菜鸟
  • 开始时间 开始时间

一只菜鸟

Unregistered / Unconfirmed
GUEST, unregistred user!
一个Login窗体
一个Main 窗体
两个都不是动态创建的
我在Login窗体OnShow事件里把FrmMain.hide;
但这样Main是会闪一下然后才隐藏起来
用什么方法不会让Main闪一下?
 
在dpr文件里面,找到Application.Run;这句,在它的上面加一句,Application.ShowMainForm := False;,然后在你的Login窗体验证密码对了之后,加一句调用Main.Show即可。
 
在工程单元里面写代码
Application.ShowMainForm := False;
 
zqw0117,liyinwei,
这样不行,这样的话我的Login窗体不见了
 
Application.Initialize;
Application.CreateForm(TFrmLogin1, FrmLogin1);
Application.CreateForm(TFrmMain, FrmMain);
Application.CreateForm(TfrmData, frmData);
Application.CreateForm(TFrmSetLog, FrmSetLog);
Application.ShowMainForm := False;
Application.Run;
 
老兄,TFrmLogin不能做主窗体啊,TFrmMain才是。
 
老兄,TFrmLogin不能做主窗体啊,TFrmMain才是。
????
不懂
 
楼主要懂得灵活运用啊!
Application.Initialize;
Application.ShowMainForm := False;
Application.CreateForm(TFrmMain, FrmMain);
Application.CreateForm(TFrmLogin1, FrmLogin1);
frmLogin1.Show; //注意这里楼主
Application.CreateForm(TfrmData, frmData);
Application.CreateForm(TFrmSetLog, FrmSetLog);

Application.Run;
 
Application.CreateForm(TFrmLogin1, FrmLogin1)删除
在FrmMain.formcreate 中
Application.CreateForm(TFrmLogin1, FrmLogin1)
 
delphi不要求谁是主窗体谁不是,这是个你需要的例子:
try
Application.Initialize;
LoginForm := TLoginForm.Create(Application);
if LoginForm.ShowModal = mrOk then
begin
Application.Title := 'xxxx管理系统';
Application.CreateForm(TMiraInqMainForm, MiraInqMainForm);
Application.Run;
end;
finally
FreeAndNil(LoginForm);
end;
 
liyinwei
方法不行那个窗口还是闪了一下
 
frmData,FrmSetLog怎么就不会出来闪一下呢?
我在frmMain里用了TRxGIFAnimator,TfcTreeView,TRzPageControl,TAdvStringGrid等三方控件,这和三方控件有关系吗?
 
可能楼主的什么地方出了问题
我新建一个工程,添加 2 个窗体,只是修改工程单元的代码
begin
Application.Initialize;
Application.ShowMainForm := False;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Form2.Show;
Application.Run;
end.
没有你说的情况出现。
 
楼主是不是在 frmMain 的 OnCreate 事件里面写了什么代码?
 
OnCreate事件在这儿
procedure TFrmMain.FormCreate(Sender: TObject);
var
StartDate,EndDate: string;
begin
StartDate := FormatDateTime('yyyymmdd',Date()-15);
EndDate := FormatDateTime('yyyymmdd',Date());
EditBeginDateLs.Text := StartDate;
EditBeginDateJg.Text := StartDate;
EditEndDateLs.Text := EndDate;
EditEndDateJg.Text := EndDate;
FrmMain.Constraints.MinWidth := 622;
FrmMain.Constraints.MinHeight := 385;
end;
 
把 OnCreate 事件的代码移到 OnShow 里面把,因为在这里引用了
EditBeginDateLs.Text
EditBeginDateJg.Text
EditEndDateLs.Text
EditEndDateJg.Text
FrmMain.Constraints.MinWidth
FrmMain.Constraints.MinHeight
会导致隐藏的窗体显示出来的,所以会闪一下。
 
晕还是不行
我新建了一个工程
加了两个窗体Form1、Form2
运行只有Form1会显示
然后我把会闪出来那个窗体加进去 Project -》 Add To Project - 》 uFrmMain.pas
运行,frmMain 窗体和Form1窗体都显示出来了,但Form2窗体就不会,我已经把frmMain窗体里的事件删掉了。
为何
QQ:1085357
 
谢谢 liyinwei
 
后退
顶部