为什么呢?我是新手,没有分,抱歉,
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;
TnewEdit1 = class(Tedit)
property nickName:string read fnickName write setNickName;
procedure ShowNickName ;
private
{ Private declarations }
fnickName:string;
procedure setNickName(const value:string);
public
{ Public declarations }
end;
var
Form1: TForm1;implementation{$R *.dfm}
procedure Tnewedit1.setNickName;
begin
showmessage(nickName);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Tnewedit1.setNickName;
end;
end.
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;
TnewEdit1 = class(Tedit)
property nickName:string read fnickName write setNickName;
procedure ShowNickName ;
private
{ Private declarations }
fnickName:string;
procedure setNickName(const value:string);
public
{ Public declarations }
end;
var
Form1: TForm1;implementation{$R *.dfm}
procedure Tnewedit1.setNickName;
begin
showmessage(nickName);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Tnewedit1.setNickName;
end;
end.
第一个是setNickName方法应该放在属性定义前面才行吧
第二个你的setNickName方法并未对FNickName负值
所以这时你showmessage FNickName应该是相当于showmessage('');
第三个setNickName不是类方法没理由可以TNewEdit1.setNickName这样子用法的,procedure Tnewedit1.setNickName(const value:string);
begin
FNickName:= value;
showmessage(nickName);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
newEdit:TNewEdit1;
begin
newEdit := TNewEdit.create(nil);
newEdit.setNickName;
newEdit1.free;
end;
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; TnewEdit1 = class(Tedit)
private
{ Private declarations }
fnickName:string;
procedure setNickName(const value:string);
public
{ Public declarations }
procedure ShowNickName ;
property nickName:string read fnickName write setNickName;
end;
var
Form1: TForm1;implementation{$R *.dfm}
procedure Tnewedit1.setNickName(const value:string);
begin
fnickName := Value;
end;procedure Tnewedit1.ShowNickName;
begin
ShowMessage('nickName is ' + nickName);
end;procedure TForm1.Button1Click(Sender: TObject);
var
newEdit1: TnewEdit1;
begin
newEdit1 := TnewEdit1.Create(Self);
newEdit1.nickName := 'Neo';
newEdit1.ShowNickName;
newEdit1.Free;
end;
end.