一个不难的问题(50分)

D

didi413

Unregistered / Unconfirmed
GUEST, unregistred user!
每发送一条消息就要弹出同一个窗体,然后关闭窗体。这在一条一条发送时没有问题,
但在很多条一起发送时就不行。请问有什么方法可以解决?
 
你是发送什么类型的消息,是用application.Messagebox 还是ShowMessage还是MessageDlg
或是你自己儿用的自定议窗体??
 
接del520
还是用消息机制,sendmessage etc.
 
可以这样描述,按同一个按钮,要SHOW出同一个窗体,当前一个没有关闭时,如何SHOW出第
二个窗体,或SHOW出更多的窗体。
 
“第二个”是指同一个窗体的第二次显示,还是另外一个呢
 
to star_survior
“第二个”是指同一个窗体的第二次显示
 
可以用一个指针数组和一个计数器,每创建一个就保存到数组中,下标:=计数器,计数器++。
 
TO fatalexception:
我不是很理解指针数组等,能不能给个简单的例子。谢谢!
 
>> 每发送一条消息就要弹出同一个窗体,然后关闭窗体。这在一条一条发送时没有问题,
但在很多条一起发送时就不行。

不太清楚您的意思

>>可以这样描述,按同一个按钮,要SHOW出同一个窗体,当前一个没有关闭时,如何SHOW出第
二个窗体,或SHOW出更多的窗体。

这样处理是否可以
要显示的窗体动态创建
如: Form2:= TForm2.Create(Self);
Form2.Show;
可以多个窗体显示

另外,如果只是为看显示的内容,可以只重复显示一个
试试窗体的Visible:= False; 再Show;
显示的内容在OnShow中触发
 
to star_survior:
你的方法可能有效,我试试看。
其实我就是要显示同一个窗体,再在窗体上加上不同的内容,如填上人的名字,然后按下
按钮,并将此名字填入数据库,就知道是谁关闭了窗体.
 
如果你需要在每个窗体创建后还继续从窗体外操作窗体,也就是说需要给每个窗体分配一个
变量名,例如Form1、Form2……,你才需要用数组保存。
Var
PointerArr : Array [1..255] of Pointer; 定义数组,每个元素都是指针。
Counter: Integer=1; 然后定义计数器。
这两个变量一定要是全局的,不要写在某个函数里面。
用的时候(假设你要创建的窗体是TForm2类)这样写:
if Counter<255 then
begin
Array[Counter]:=TForm2.Create(nil);
Counter:=Counter+1;
end;

如果你不需要在窗体外操作这个窗体,不需要引用它,并且窗体自己关闭自己,那就没有
必要保存在变量或数组中。每次创建时就这样:
with TForm2.Create(nil) do
begin
Caption:='这是一个没有变量名的窗体';
Show;
Delay(1000);
Close;
Free;
end;
这样就可以了

 
在 Show 窗体前可以先检查该窗体是否正在显示,
如果正显示,Close 或 Hide 它后再显示。
 
多人接受答案了。
 
顶部