我有一主窗体 一个Unit 动态创建一子窗体 ShowModal方式显示 这时在主窗体中调用Unit中的一个函数 设置子窗体中一Edit的文字 编译通过 运行时抛出EAccessViolation异常

解决方案 »

  1.   

    也许你没有创建子窗体就------设置子窗体中一Edit的文字吧!!!
      

  2.   

    当然创建了 //主窗体的创建子窗体的代码
    procedure TMainForm.SIMCardMenuClick(Sender: TObject);
    begin
      TSIMCardForm.Create(self).ShowModal;
    end;//Unit的部分代码
    9:begin
        SimCardForm.Edit1.Text:='dd';
    end;
      

  3.   

    既然是动态创建的,估计没得到对象
    注意:如果是动态创建的,unit中自动生成的form变量是不可用的
      

  4.   

    To: liumengchuan() 那如何得到对象呢?或者有其他什么解决的办法
      

  5.   

    把simcardform.去掉
    或self.edit1.text:='dd'
      

  6.   

    还是不对啊 在Unit里面不能用self
      

  7.   

    我感觉应该是这样的
    你应该在创建后赋值:
    设置一变量:
    var
      cardform:Tsimcardform;
    begin
    cardform:=TSIMCardForm.Create(self)
    cardform.edit1.text:='dd';
    cardform.ShowModal;
    end;
      

  8.   

    //Unit的部分代码
    9:begin
        SimCardForm.Edit1.Text:='dd';
    end;
    =>
    procodure aa(sender:TObject);
    begin
        TSimCardForm(Sender).Edit1.Text:='dd';
    end;
    调用时:aa(SimCardForm);