unit kspsswld;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  Tfr_psswld = class(TForm)
    edusename: TEdit;
    procedure FormShow(Sender: TObject);
  private
   procedure tlsclr;
    { Private declarations }
  public
    { Public declarations }
  end;var
  fr_psswld: Tfr_psswld;implementation{$R *.dfm}procedure Tfr_psswld.tlsclr;
begin
  edusename.Clear;
end;procedure Tfr_psswld.FormShow(Sender: TObject);
begin
  fr_psswld.tlsclr;
end;end.这里fr_psswld.tlsclr报错,如果改成tlsclr的话可以通过,不知这是为什么?

解决方案 »

  1.   


    unit kspsswld;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      Tfr_psswld = class(TForm)
        edusename: TEdit;
        procedure FormShow(Sender: TObject);
      private
       procedure tlsclr;
        { Private declarations }
      public
        { Public declarations }
      end;var
      fr_psswld: Tfr_psswld;implementation{$R *.dfm}procedure Tfr_psswld.tlsclr;
    begin
      edusename.Clear;
    end;procedure Tfr_psswld.FormShow(Sender: TObject);
    begin
      fr_psswld.tlsclr;
    end;end.
    这里fr_psswld.tlsclr报错,如果改成tlsclr的话可以通过,不知这是为什么?
      

  2.   

    我试了没有问题呀,你是不是还有别的代码呀
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, StdCtrls;type
      TForm1 = class(TForm)
        Edit1: TEdit;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
        procedure ss();
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      Form1.ss;
    end;procedure TForm1.ss;
    begin
      Edit1.Clear;
    end;end.
      

  3.   

    看你是怎么创建的.
    如果你是这么创建的:
    With Tfr_psswld.Create(Application) do
    begin
      ShowModal;
    //.....
    end;那么,var
      fr_psswld: Tfr_psswld; 这个变量,或者说是指针,根本就没有指向你创建的对象.你用这个变量名来访问,肯定是出错.如果是
      fr_psswld := Tfr_psswld.Create(Application);肯定是没问题的.建议:这里,既然是在类成员函数里面,最好将前面的变量省掉,或者用:Self.tlsclr
      

  4.   

    var
      fr_psswld: Tfr_psswld;
    ....
    procedure Tfr_psswld.FormShow(Sender: TObject);
    begin
      fr_psswld.tlsclr;
    end;
    end.
    这里fr_psswld.tlsclr报错,如果改成tlsclr的话可以通过,不知这是为什么?
    你指的是这里的出错吧。你fr_...是Tfr_...的实例,你在Tfr_。。类里面怎么用实例,肯定是Tfx_..tlsclr,或者是tlsclr才对。
    我说清楚没有?