我在公用unit中定义了一个string类型变量str,声明如下:var
str:String;在主窗体F_main中showmodal一个查找窗体F_search,打开代码是: F_search := TF_search.create(self);
if F_xfgl_search.ShowModal = mrok then
begin
showMessage(str);//-----------显示为空白?为什么
edn;在F_search中点"确定"按钮给str赋值,后返回mrok: str := '11111';
showmessage(str);//-------------显示为11111
ModalResult := mrok;
问题:为什么返回主窗体后str为空字符串?各个单元该use都use了.
str:String;在主窗体F_main中showmodal一个查找窗体F_search,打开代码是: F_search := TF_search.create(self);
if F_xfgl_search.ShowModal = mrok then
begin
showMessage(str);//-----------显示为空白?为什么
edn;在F_search中点"确定"按钮给str赋值,后返回mrok: str := '11111';
showmessage(str);//-------------显示为11111
ModalResult := mrok;
问题:为什么返回主窗体后str为空字符串?各个单元该use都use了.
解决方案 »
- Pchar转integer和string的问题
- 如何实现“Windows外壳扩展”?
- 在报表中想要连接ado数据库的一个表,怎么只有两个字段??
- 怎样避免windows启动时打开资源管理器以及怎样做开机界面
- 在delphi中进行OpenGL编程,要加什么组件吗?
- 谁知道100.001,100.002.....100.010....这种书用什么来读??
- 怎么把stringgrid某一行的数据删除?或者几行?
- 字符串
- .ceb 用什么打开?
- Delphi 6 出了没有?哪里有得 down?
- 一口气用了六个stringlist续----有没有本质的区别
- Undeclared identifier: 'result'这个错误究竟如何纠正?
你这样改一下
ModalResult := mrok;str := '11111';
showmessage(str);//-------------显示为11111你试试 应该可以的
放到str := '11111'; 的前面去
但F_search := TF_search.create(self);
if F_xfgl_search.ShowModal = mrok then这时候F_search才刚创建,你都没来得及按F_search中点"确定"按钮,
给str赋值1111,就要求返回str的值,那肯定是空值。
看看程序
str := '11111';
跟
showMessage(str);
这2句哪个先跑
没赋值就show,当然为空了
自己弄个方法封装下ShowModal就行了。
TF_xfgl_search.ShowDialog(var Str: string): Integer;
begin
Str := '11111';
Result := ShowModal;
end;
调用就这样:
F_search := TF_search.create(self);
if F_xfgl_search.ShowDialog(str) = mrok then
begin
showMessage(str);
end;