我该怎么作啊?
请帮我看看到底该怎么写那一句,
unit TestPorcMP;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,TypInfo;
type
TSetValue = Procedure (Value :String) of object; //@@@
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
FCP : String; //@@@
Procedure SetCP(Value:String); //@@@@
{ Private declarations }
Published
Property CP : String Read fCP write SetCP; //@@@
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
Procedure TForm1.SetCP(Value:String);
begin
Form1.FCP := Value; //@@@如果不这样写就会出错。。。
//FCP := value; //出错 ·1
//self.FCP := Value; //一样出错·2
end;
procedure TForm1.Button1Click(Sender: TObject);
var
vProp: PPropInfo;
SetValue : TSetValue;
begin
vProp := GetPropInfo(Self, 'CP');
@SetValue := vProp.SetProc;
Self.fCP := '';
SetValue('asd'); //如果是这样调用 , 前面的·1或者·2都会出错。
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
CP := 'asd'; //如果是这样调用, 前面的三种写法都不会出错,
end;
end.
请教高手,我该怎么写Button1的过程,才能使·1(FCP := Value/Self.FCP:=value)不出错?这里我只希望改Button1里的东西(或者SetValue : TSetValue;什么的),而这个就用:
Procedure TForm1.SetCP(Value:String);
begin
FCP := value;end;
end;
也就是改Button1的过程,使起能正常使用 这个。