Application.CreateForm(TForm1,Form1)
在这条语句中我想用变量比如S来代替Form1,从而涉及到字符串转换为TComponentClass的问题,请问如何转换?

解决方案 »

  1.   

    S:TForm1;
    ....
    Application.CreateForm(TForm1,S)
      

  2.   

    你需要用到RTTI技术。RegisterClass注册了类的RTTI信息,这些信息是编译器在编译时生成的,不是随便一个字符串就可以生成你所需要的控件,我做了一个示例程序,你可以给我来信。
      

  3.   

    forgot(忘记forgot2000) 
    能不能给我一份,谢谢[email protected]
      

  4.   

    你直接定义就好了呀。例如:
    S:TForm1;
    ...
    Application.CreateForm(TForm1,S)
    就应该可以呀
      

  5.   

    s : TForm1;
    ......Application.CreatForm(Form1,s);
      

  6.   

    如果S是string,想都别想这样转换,如果s是TForm,你想怎么转换就怎么转换都可以 。Application.CreateForm(TForm1,Form1)
    对创建Form,有N多的方法,不一定要这样实现的吧。
      

  7.   

    RTTI技术,这个技术比较复杂!在设计模式中,这叫做创建型类模式!!再MFC里面,对这个问题有了一个初步的解决,但是在delphi得VCL库对这个的实现几乎可以说没有!