求助啊求助,问题如下;
我有俩个窗体。但是他们不是主副窗体的关系。我是通过一个窗体来创建另一个窗体。
在要动态创建的窗体哩,我写了一个线程。然后线程的主要作用是是调用本窗体的一个控件。代码是这样的:
下面的这个是窗体2的代码
var
Form2: TForm2;
num:Integer;implementation{$R *.dfm}{线程入口函数}
function MyThreadFun(p: Pointer): Integer; stdcall;//这里的P用来接收结构体得地址。用来释放内存用的 ,同时也是用来移除Tlist的地址的
//也是用来释放画图颜色的begin
Sleep(500);
Form2.AdvStringGrid1.ColorsTo[pcolorcell(p).col,pcolorcell(p).row]:=clRed;
FreeMem(p);end; 写好了以后。然后在窗体一中。动态生成窗体2.但是很奇怪的时候。窗体2的线程能用。但是调用窗体2上的AdvStringGrid1是失败的、。
后来。我自己试验了下。。动态生成窗体以后这个Form2的为nil的。
所以我想求助各位大侠们。给小弟说说。动态生成窗体以后里面其中的关系。还有为什么。。这个form2=nil
我有俩个窗体。但是他们不是主副窗体的关系。我是通过一个窗体来创建另一个窗体。
在要动态创建的窗体哩,我写了一个线程。然后线程的主要作用是是调用本窗体的一个控件。代码是这样的:
下面的这个是窗体2的代码
var
Form2: TForm2;
num:Integer;implementation{$R *.dfm}{线程入口函数}
function MyThreadFun(p: Pointer): Integer; stdcall;//这里的P用来接收结构体得地址。用来释放内存用的 ,同时也是用来移除Tlist的地址的
//也是用来释放画图颜色的begin
Sleep(500);
Form2.AdvStringGrid1.ColorsTo[pcolorcell(p).col,pcolorcell(p).row]:=clRed;
FreeMem(p);end; 写好了以后。然后在窗体一中。动态生成窗体2.但是很奇怪的时候。窗体2的线程能用。但是调用窗体2上的AdvStringGrid1是失败的、。
后来。我自己试验了下。。动态生成窗体以后这个Form2的为nil的。
所以我想求助各位大侠们。给小弟说说。动态生成窗体以后里面其中的关系。还有为什么。。这个form2=nil
解决方案 »
- ~~~~~~~~请问存储过程控件ADOStoredProc有没有返回影响数据库的行数的属性?
- 请问怎样同时将两个窗口的标题栏高亮显示?(就像PhotoShop一样)
- 怎樣使用Rave的Demo例子啊??高分求教
- 有关进度条的问题?
- 请问哪里有这些控件:TKvLable TdxButton TCoolTrayIcon
- 托盘组件的问题还没有解决,请大家帮帮忙?在线等待
- 多线程,指针,TThreadList,Out of memory求救
- 这个自定义函数是什么意思
- 一个你可能不知道的软件!!
- 怎样使自己的程序常驻内存
- ApplyUpdates(0)保存数据时报unable to find record! no key specified!
- 再开新贴讨论,mdejtod 或其他熟悉Gdi+的进,解决后一起结贴给分!
2、多线程建议使用面向对象的TThread类而不是WinAPI
3、对控件(或者说VCL)操作时要写一个单独的方法后用Synchronize调用,至于为什么,以delphi Synchronize关键字搜索一下吧,很多介绍