首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

一个FRAME在一个程序里只能用一次的吗?解决思路

2012-02-04 
一个FRAME在一个程序里只能用一次的吗?我在程序里有两个地方要用到同一个FRAME,代码如下,但是程序好像只认

一个FRAME在一个程序里只能用一次的吗?
我在程序里有两个地方要用到同一个FRAME,代码如下,但是程序好像只认一个frame,即创建了一个frame后,另一个frame就不能创建了,说是NAME(frame)已经存在。我不是很理解FRAME,难道一个frame只能用一次的吗?

fmeTDetail: TfmeTotalDetail;
fmeMoTDetail: TfmeTotalDetail;

procedure TfrmExpertMain2.InitTDetailDBGrid(DBGrid: TDBGridEh);
begin
  if fmeTDetail = nil then
  begin
  fmeTDetail := TfmeTotalDetail.Create(Application);
  fmeTDetail.Parent := tbshtMMSDetail;
  fmeTDetail.Align := alClient;
  end;
  fmeTDetail.dbgrdTotalDetail.Columns := DBGrid.Columns;
end;

procedure TfrmExpertMain2.InitMoTDetailDBGrid(DBGrid: TDBGridEh);
begin
  if fmeMoTDetail = nil then
  begin
  fmeMoTDetail := TfmeTotalDetail.Create(Application);
  fmeMoTDetail.Parent := Self.tbshtMoDetail;
  fmeMoTDetail.Align := alClient;
  end;
  fmeMoTDetail.dbgrdTotalDetail.Columns := DBGrid.Columns;
end;



[解决办法]
你把那个 if fmeMoTDetail = nil then 换成
if not assigned(fmeMoTDetail) then
另外一处也如此换
[解决办法]
首先正如xiaogui_2008 所说,=nil要改成not assigned();
其次在创建的时候要给它命名,即设置name属性,否则它的name属性均为fmeTotalDetail,即不能创建第二个。

热点排行