本人刚学编程 关于方法调用的基本问题请各位大哥帮忙教教小弟本人自定义写了个类
type
   TFile = class
   Filenew : TDatabase;
   constructor CreateFile (Sen: TFile);
end;现在想在别的地方除法这个类下面的CreateFile (Sen:TFile),我总是出现参数错误,请帮忙解决,谢谢。
着急ing

解决方案 »

  1.   

    1.尽量不要重定义构造函数名。
    2.在你的构造函数里面是否调用了原有的构造部分?
    procedure TFile.CreateFile (Sen: TFile);
    begin
      inherited Create();
      // 自己的处理部分
    end;
      

  2.   

    unit UnitFile;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls, ToolWin, ComCtrls,  Menus,ImgList,UnitDatabase,UnitPortPropertiesDialog;type
       TFile = class
       Filenew : TDatabase;
       public
       constructor CreateFile(Sen: TFile) ;
    end;var  File1 : TFile;
      Doc : TFrmDucumentdialog ;implementationconstructor TFile.CreateFile(Sen: TFile);
    begin
      inherited Create();
      Doc.Edit1.Text := File1.Filenew.Inidata.FIleName;
      Doc.ComboBox2.ItemIndex := 0 ;
      //自己的处理部分
    end;end.现在想在别的地方调用constructor CreateFile(Sen: TFile)这个方法
    应该如何调用?
      

  3.   

    瀑布汗,楼主新手么?
    不要在自己的类里面使用固定的对象,Doc、File1 这样的对象是不应该出现的,因为他可能是指向了一个无效的空间。File1.Filenew.Inidata.FIleName 这样的语句也不应该出现,因为File1可能无效。我不知道 Sen 有什么意义,Sen本身就是TFile类型的,竟然要在TFile的构造函数里面作为参数出现,很诧异。虽然不是绝对不可能出现的,但这种情况几乎很少出现。为什么要设计类?
    目的就是使代码和数据独立出来,让类封装起一部分东西,内部不需要过于透明,外部调用的人只需要了解接口就OK。你这样的类代码能让别人郁闷死的。
      

  4.   

    类单元的引用
    (1) uses UnitFile;声明、创建对象
    (2) var myFile:Tfiel;(3) myFiel:=TFile.createFiel;
    ...
    释放对象
    myFiel.Free;