我在使用delphi中的screen对象时,不需要通过初始化TScreen对象就可以直接引用其属性,如
Form1.Width := Screen.Width;
可是我自己写的类如
type
  TMyClass = class
    function value: String;
  end;
我要使用TMyClass中的方法时就要显式的进行初始化工作,如
procedure TForm1.FormShow(Sender: TObject);
var
  myclass: TMyClass;
  str: String;
begin
  myclass := TMyClass.Create;
  str := myclass.value;
  myclass.Free;
  ...
end;怎么样写才能够不显式的进行Create工作而直接使用类的方法或者属性呢?就如果JAVA中的Static类一样?

解决方案 »

  1.   

    screen其实它就是一个全局量,是系统默认的
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
      tmytest=class
      private
      public
        procedure test;
      end;
    var
      Form1: TForm1;implementation{$R *.dfm}
    procedure tmytest.test ;
    begin
      showmessage('a');
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      dd:tmytest;
    begin
      dd.test ;
    end;end.
      

  3.   

    DLEPHI默认类的方法都是STATIC的;静态的,所以不用CREATE也可以用的;但如果涉及到内存分配等问题,必须CREATE后才可以使用;