我在SPEEDBUTTON下想打开窗口代码如下:
procedure Tw_main.sb_jksClick(Sender: TObject);
var
w_jkhand:Tw_jkhand;
begin if not assigned(w_jkhand) then
w_jkhand:=Tw_jkhand.Create(application);
w_jkhand.Show;end;
运行是没问题,但出现这样的warning提示:Variable 'w_jkhand'might not have been initialized。
单击该speedbutton就不能创建窗口。这到底要怎么解决,请求各大侠赐教。谢!
procedure Tw_main.sb_jksClick(Sender: TObject);
var
w_jkhand:Tw_jkhand;
begin if not assigned(w_jkhand) then
w_jkhand:=Tw_jkhand.Create(application);
w_jkhand.Show;end;
运行是没问题,但出现这样的warning提示:Variable 'w_jkhand'might not have been initialized。
单击该speedbutton就不能创建窗口。这到底要怎么解决,请求各大侠赐教。谢!
type
Tw_main=class(Tform);
private
w_jkhand:Tw_jkhand;
end
...
procedure Tw_main.sb_jksClick(Sender: TObject);
begin if not assigned(w_jkhand) then
w_jkhand:=Tw_jkhand.Create(application);
w_jkhand.Show;end;
var
w_jkhand:Tw_jkhand;
begin
--------------------
w_jkhand 在这里定义成了局部变量,它永远存在。系统不会为它初始化指针为nil.所以 if not assigned(w_jkhand) 这一句永远为false所以应该把这个w_jkhand改成全局变量就行了
一种方法是定义到:
type
Tw_main=class(Tform);
private
w_jkhand:Tw_jkhand;
end还有一种方法是:implementation
var
w_jkhand:Tw_jkhand;