分不够可以在加.

解决方案 »

  1.   

    1\先新建一个form1,让它show as text;
    2\将dfm文件的内容覆盖它的内容.
    3\再让它show as form
    4\选中上面的所有控件.,复制.
    5\再新建一个form2,粘贴.
    6\删除form1
    7\然后从form2上动态继承就可以了.漏见.
      

  2.   

    Just a exampleprocedure TForm1.Button1Click(Sender: TObject);
    var
      aa :Tbutton;
    begin
      aa := Tbutton.Create(self);
      aa.Left := 20;
      aa.Top := 20;
      aa.Height := 40;
      aa.Width := 40;
      aa.Parent := form1;
    end;
      

  3.   

    说具体些,我的程序运行的时候读取dfm文件,然后根据dfm文件中的内容
    动态建立窗体和窗体上面的控件。
      

  4.   

    一个笨办法:
    在FormCreate的时候,动态控制控件位置和大小!
      

  5.   

    用流,ReadComponent,WriteComponent....略知一点,没做过。
      

  6.   

    var
      FileStrm: TFileStream;
      StrStrm: TStringStream;
      BinStrm: TMemoryStream;
      Button: TButton;
    begin
      FileStrm := TFileStream.Create('ReadButton.dfm', fmOpenRead);
      StrStrm := TStringStream.Create('');
      BinStrm := TMemoryStream.Create;
      Button := TButton.Create(Self);  FileStrm.Position := 0;
      StrStrm.CopyFrom(FileStrm, FileStrm.Size);
      StrStrm.Position := 0;
      ObjectTextToBinary(StrStrm, BinStrm);
      BinStrm.Position := 0;
      BinStrm.ReadComponent(TComponent(Button));
      Form1.InsertControl(Button);
      FreeAndNil(FileStrm);
      FreeAndNil(StrStrm);
      FreeAndNil(BinStrm);
    end;—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————
      

  7.   

    lxpbuaa(桂枝香在故国晚秋) 的方法
    可行,但是control的类型怎么来处理呢?
      

  8.   

    lxpbuaa(桂枝香在故国晚秋)的方法我没有测试成功
      

  9.   

    这就是像MFC的序列化对象的存储和动态创建,请看看候捷的<<深入浅出MFC>>
    和<<dephi5.0的开发指南>>的有关.这是一项比较难的技术.我也不是很明白.
    你可能要用到
    1.Registerclasses[class1,class2,...]
    2.FindClass("class1")或GetClass("class1")取得类引用
    3.用类引用.create创建类实例引用
    4.使用运行期信息(is,as)
    5.用类构造函数创建类实例
    6.使用运行期信息设定类实例的属性值
    供你参考
      

  10.   

    你可以看看下列代码,中间的if分支语句可以有更加简便的方法,你到书中找找.
    var 
     i:integer=2;
    implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      str:String;
      classref:TClass;
      myobj:TObject;
    begin
        if inputQuery('class name','class name',str) then
        begin
           ListBox1.Clear;
           ClassRef:=findclass(str);
           while ClassRef <> nil do
           begin
              myobj:=classRef.Create;
              if myObj is TButton then
              begin
                  TButton(myObj).Create(self);
                  TButton(myObj).parent:=self;
                  TButton(myObj).Name := 'Button'+inttostr(i);
                  TButton(myObj).SetBounds(i,i*30,80,30);
                  TButton(myObj).visible:=True;
                  TButton(myObj).Onclick:=Button1Click;
                  i:=i+1;
              end
              else if myObj is TLabel then
              begin
                  TLabel(myObj).Create(self);
                  TLabel(myObj).parent:=self;
                  TLabel(myObj).Name := 'Label'+inttostr(i);
                  TLabel(myObj).visible:=True;
              end;          ListBox1.Items.Add(ClassRef.ClassName);
              ClassRef := ClassRef.ClassParent ;
           end;
        end;
    end;initialization
        Registerclasses([TButton,TLabel]);
    end.
      

  11.   

    不知道你要做什么,要是插件一类的,根本不用这么做。
    我想通过ReadComponent是可以的。
      

  12.   

    同意  lxpbuaa(桂枝香在故国晚秋) 的方法。这就是Delphi本身提供的界面持久化能力。
      

  13.   

    建立对象
      T对象 DX:=T对象.Create(self)
    定义属性:
      dx.属性:=属性值;