如下程序:
type
  Class1 = class
    procedure prcd1;
  public
    procedure prcd2;
  end;prcd1和prcd2都是类Calss1的方法,放在不同的位置有什么区别?

解决方案 »

  1.   

    to coolsundy
    如果是:
     Class1 = class
        procedure prcd1;
      private
        procedure prcd2;
      public
        procedure prcd3;
      end;
    又怎么讲?
      

  2.   

    楼上的说错了。如果明确声明为private才是私有的。
    在Delphi里,如果没有指定字段或方法的访问类型,则默认为published。可以做例子看看:
    // Unit2.pas
    unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm2 = class(TForm)
      private
        { Private declarations }
      public
        { Public declarations }
      end;  TA = class
        function AAA: string;
      public
        function BBB: string;
      published
      end;var
      Form2: TForm2;implementation{$R *.dfm}{ TA }function TA.AAA: string;
    begin
      ShowMessage('AAA');
    end;function TA.BBB: string;
    begin
      ShowMessage('BBB');
    end;end.
    // Unit1.pasunit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Unit2, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      A: TA;
    begin
      A := TA.Create;
      A.AAA;
      FreeAndNil(A);
    end;end.
      

  3.   

    TA = class
        function AAA: string;
      public
        function BBB: string;
      end;相当于
      TA = class
      published
        function AAA: string;
      public
        function BBB: string;
      end;
      

  4.   

    对!没有使用KEY的默认为published。