W
wx-ham
Unregistered / Unconfirmed
GUEST, unregistred user!
[难:200]一个很郁闷的问题,我都不知道应该放到哪个版块(不好意思,没找着合适的所以先寄放在TCP/IP吧),但是不管怎么说还是请大家多多帮忙出出点子吧。(唉,这年头,程序员容易吗)我在线等(200分)<br />最近程序出了一个很奇怪的问题,我自己是从来没有遇到过,而且自己也记不得是改什么的时候出的这个问题。程序有主窗体,还有一个就是系统自动生成的DPR项目文件
具体的贴一点程序出来:
program ClientPro;
uses
Forms,
Main in 'Main.pas' {FrmMain},
。。。。。。。。。。。。。。。。//自定义的一些单元,略去
Login in 'Login.pas' {FrmLogin};
{$R *.res}
begin
Application.Initialize;
Application.ShowMainForm := False; //开始的时候设主窗体的属性为False
Application.CreateForm(TFrmMain, FrmMain); //一会儿就是这儿出的问题了
Application.Run;
end.
procedure TFrmMain.FormCreate(Sender: TObject);
begin
FilePath := ExtractFilePath(Application.ExeName);
FrmMain.OldCreateOrder := true;//这一句是以前老的窗体出现类似问题的解决办法////(也是网上的一位仁兄告诉我的,但是加了以后没有作用)
if not showLoginFrm then
Application.Terminate //如果验证没有通过,则关闭程序
else begin
show; //如果登陆验证通过,则显示主窗体。
PlaySound(ReadINIString('sound', 'welcome', ''));
end;
InitializeCriticalSection(CS); //初始化临界区
end;
就是在DPR文件中执行到Application.CreateForm(TFrmMain, FrmMain);这一句时,按照道理来说应该转到procedure TFrmMain.FormCreate(Sender: TObject);执行,得是运行的时候执行到CreateForm的时候没有FormCreate而就是死在那儿了。
本来程序是有信号灯的,但是后来考虑到出问题了,又将信号灯程序删了,还是有问题。
还请大家帮帮忙,根据你们的经验,我想大家一起想,一定会有解决的办法的,先谢谢你们了。
附,有关信号灯的处理程序:
initialization
MutHandle := OpenMutex(MUTEX_ALL_ACCESS, False, UniqueAppStr);
if MutHandle > 0 then isActiveShow := False
else isActiveShow := true;
finalization
if MutHandle <> 0 then
CloseHandle(MutHandle);
具体的贴一点程序出来:
program ClientPro;
uses
Forms,
Main in 'Main.pas' {FrmMain},
。。。。。。。。。。。。。。。。//自定义的一些单元,略去
Login in 'Login.pas' {FrmLogin};
{$R *.res}
begin
Application.Initialize;
Application.ShowMainForm := False; //开始的时候设主窗体的属性为False
Application.CreateForm(TFrmMain, FrmMain); //一会儿就是这儿出的问题了
Application.Run;
end.
procedure TFrmMain.FormCreate(Sender: TObject);
begin
FilePath := ExtractFilePath(Application.ExeName);
FrmMain.OldCreateOrder := true;//这一句是以前老的窗体出现类似问题的解决办法////(也是网上的一位仁兄告诉我的,但是加了以后没有作用)
if not showLoginFrm then
Application.Terminate //如果验证没有通过,则关闭程序
else begin
show; //如果登陆验证通过,则显示主窗体。
PlaySound(ReadINIString('sound', 'welcome', ''));
end;
InitializeCriticalSection(CS); //初始化临界区
end;
就是在DPR文件中执行到Application.CreateForm(TFrmMain, FrmMain);这一句时,按照道理来说应该转到procedure TFrmMain.FormCreate(Sender: TObject);执行,得是运行的时候执行到CreateForm的时候没有FormCreate而就是死在那儿了。
本来程序是有信号灯的,但是后来考虑到出问题了,又将信号灯程序删了,还是有问题。
还请大家帮帮忙,根据你们的经验,我想大家一起想,一定会有解决的办法的,先谢谢你们了。
附,有关信号灯的处理程序:
initialization
MutHandle := OpenMutex(MUTEX_ALL_ACCESS, False, UniqueAppStr);
if MutHandle > 0 then isActiveShow := False
else isActiveShow := true;
finalization
if MutHandle <> 0 then
CloseHandle(MutHandle);