TDataModuleClass = class of TdtmModule;var
  FDataModule: TdtmModule;procedure TForm1.Button1Click(Sender: TObject);
begin
  FDataModuleClass := Tdtmck_StripIn;
  FDataModule:= FDataModuleClass.Create(nil);  //(1)这里我要FDataModuleClass只实例化一次就够了,要怎么弄?(要用Tdtmck_StripIn这个类来做,不能是判断FDataModule这变量或打Button单击事件的主意)~~~~~~~~~~~~~~~~
end;(2) 我要free掉Tdtmck_StripIn类实例化出来的所有实例,怎么弄???

解决方案 »

  1.   

    delphi里没有static变量太不方便了 
    有知道的XD来啊
      

  2.   

    少了个变量定义:
    FDataModuleClass:TDataModuleClass;
       
      

  3.   

    1:要让FDataModuleClass只实例化一次可以用  
       if not Assinged(FDataModule) then
         FDataModule:=   FDataModuleClass.Create(nil); //并且FDataModule变量要被声明为全局的变量
    2:要释放Tdtmck_StripIn实例化出来的所以对象引用只能一个个的释放 
       通常会用  IS 操作符做判断  此君好象以前说过精通面向对象
      

  4.   

    楼上的XD请睁大点眼睛看看好不  我已经很明确提出不能判断FDataModule变量  象你这样我问你干什么  
      

  5.   

    在主程序里去实例化一个就可以了。
    program Project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {FmNoneTitle};
      DatamoduleClass in 'DatamoduleClass.pas' {FmNoneTitle};{$R *.res}begin
      Application.Initialize;
      FDataModuleClass := TDataModuleClass.Create(Application);
      if FDataModuleClass.连接成功 then
      begin
        Application.CreateForm(TForm1, Form1);
        Application.Run;
      end;
      FDataModuleClass.Free;
    end.