主Unit中有如下函数:
procedure TForm1.RuKuExecute(Sender: TObject);
begin
  SetCursor(LoadCursor(0,IDC_WAIT));
  LockWindowUpdate(Handle);
  if Assigned(CGIn) then
  begin
    CGIn.BringToFront;
    Panel1.Visible := False;
  end
  else
  begin
    CGIn := TCGIn.Create(Self);
    CGIn.Show;
    CGIn.BringToFront;
    Panel1.Visible := False;
  end;
  LockWindowUpdate(0);
  SetCursor(LoadCursor(0,IDC_ARROW));
end;
这是一个下拉菜单的click函数。
另外就是click后弹出窗体的函数:
  CGIn.Width:=575;
  CGIn.Height:=414;
  DateTimePicker1.Date:=now;
  DateTimePicker2.Date:=now;
但运行时会出错,说什么地址冲突。如果不加调整窗体高度和宽度的语句,就不出错
请问是什么原因??

解决方案 »

  1.   

    你的CGIn是在什么地方定义的怎么只有创建没有释放呢?
    这样一定会出错的,动太form的创建和释放都要自己完成的。
      

  2.   

    CGIn := TCGIn.Create(Self);
    这个不是创建吗?现在还没到释放的时候,关闭窗口的时候才要释放啊。
    现在是弹出Form就已经出错了。
      

  3.   

    应该是
    你在用CGIn.Width:=575;的时候CGIn对象还没创建,当然会出错了,你调试看看用
    if assigned(CGIn) then
      CGIn.Width:=575;
    看看,如果不出错,就表示你的CGIn还没创建
      

  4.   

    不行
    if assigned(CGIn) then
      CGIn.Width:=575;
    这样写后,没出错,但没作用。只要在click事件中添加,仍然是错的。
    另外编译到 CGIn := TCGIn.Create(Self); 时出错。
      

  5.   

    CGIn.Width:=575;
      CGIn.Height:=414;
      DateTimePicker1.Date:=now;
      DateTimePicker2.Date:=now;
    是在什么地方写的?如果是show里面,可以把cgin去掉,直接写width,height