我已经一穷二白了,帮帮我!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (0分)

  • 主题发起人 主题发起人 txyx
  • 开始时间 开始时间
T

txyx

Unregistered / Unconfirmed
GUEST, unregistred user!
我在单元a重调用了单元b,b中定义了一个全局变量s:string;s已经有了内容
我在a中用showmessage(s),不是不执行就是为空,怎么回事??
unit a
uses b;
procedure click(sender:TObjece);
begin
formb.show;//formb为b的窗体
showmessage(s);
end;
 
你是在哪给s赋值的?
如果是在Create中,不会没有值吧!
 
no,s肯定有值
 
你的B单元是在接口里引用的,还是在实现里引用的,这是有区别的
 
我的意思是说:如果你在OnCreate事件中给s赋值
那么按你上面的代码,一定会ShowMessage出东西的。
 
我的s是在formb.show后产生,是不是要等到formb窗体关闭才能得到s
那我该这么做????
 
在public 里吗?
 
to:txyx
不需要关闭。
你可以:
<一>
unit a
uses b;
procedure click(sender:TObjece);
begin
formb.show;//formb为b的窗体
showmessage(s);
end;
<二>
unit b;
var
Formb: TFormb;
s:string;
implementation
procedure TForm2.FormActivate(Sender: TObject);
begin
s:='SHOW WHAT DHDAADJJD ?';

end;
这样一定行的.

 
如果S在Show之后在其他事件赋值。
你第一次show时,s尚未被赋值,当然是空白,
但当你执行了赋值的事件之后,第二次Show时,s就会有值了。
 
接受答案了.
 
后退
顶部