如何讓對話框只出現當前一次:例如.......(50分)

  • 主题发起人 主题发起人 冒险家
  • 开始时间 开始时间

冒险家

Unregistered / Unconfirmed
GUEST, unregistred user!
例如:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
with Applicationdo
begin
NormalizeTopMosts;
MessageBox('This should be on top.', 'Look', MB_OK);
RestoreTopMosts;
end;
end;

能便當前對話框只出現一次嗎?????
 
可以!
private
canshow:boolean;
if not canshow then

begin
//出现对话框;
Canshow:=True;
end;
 
嗯嗯,, 弄个开关变量就可以了。 多个判断。
 
謝謝各位!但問題可沒有這么簡單:
我的意思是 當目前對話框沒有關閉 則激活當前對話框,,如果已關閉則執行顯示對話框
操作。
 
自己做一个对话框FORM不就好判断当前是否显示了,非要用messagebox吗???
 
定义一个全局的函数用于调用对话框,每次调用前使用判断次对话框是否已经创建,如果创建则显示即可,如果没有创建则创建对话框。
 
to 冒险家
代码贴出来!说那么久!真是不知道你想怎样!我觉得只要你写对地方,我的方法应该可以!
 
代碼在上面已帖:
我把它寫在一個時鍾執行事件裡。就拿上面的代碼來說。只要程序執行 會出現很多對話框。
我想只要當前對話框沒有關閉,就只激活當前對話框,如果對話框關閉了。就Show出來。
目前我只想使用系統對話框來顯示信息。所以。。。
我想有沒有可能取到當前對話框的句柄。來判斷對話框是否存在。。。??
請各位指點。。。。謝謝。!!
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
with Applicationdo
begin
NormalizeTopMosts;
MessageBox('This should be on top.', 'Look', MB_OK);
RestoreTopMosts;
Timer1.Enabled := False;
//加上这一句。
end;
end;
 
我觉得真是有问题!你只想显示一次你用Timer干什么?又浪费资源!
 
那是别人的喜好嘛,用计时器的时候,用完就关了,要用的时候要打开,这样就不会出问题
 
朋友們 謝謝!!~~
我之所以用時鍾控件,只是製造一個連續出現對話框的環境。。。也許我這例子不好。但沒有關系。。。只要能完功能就好
 
迟到
加个
var i:integer
begin
if i=1 then
begin
if ...then

begin
....
end;
end;
inc(i);
也是个不错的办法
 
TO 冒险家:
你可以自己写一个窗体,在Timer事件中判断这个窗体是否已被创建且显示,如果没有则创建并显示之,反之则不进行显示动作。
 
类似等待效果吗?
 

Similar threads

后退
顶部