非常简单的有关控件属性问题!(100分)

  • 主题发起人 主题发起人 szkuojun
  • 开始时间 开始时间
S

szkuojun

Unregistered / Unconfirmed
GUEST, unregistred user!
我用向导创建了一ActiveX Control(基于Button),并增加一属性number(long)
delphi 自动建立了一方法Set_number,但不知道怎样给number赋值,
安装应用时,此控件的Object Inspector 里的number初始是0,但改动后仍然不变
是0
不知怎么办!
 
我的意思是怎样操纵新增的属性number
 
在ActiveX Control实现单元定义成员变量保存Number

//--------------------------------
FNumber : integer;
//--------------------------------
procedure YourActiveX.Set_Number(Value : long);
begin
FNumber := Value
end;
//--------------------------------
注意,不是在TLB单元,TLB是AX的接口定义
 
我也碰到过这种问题,即增加一属性如果按下的属性定义方法是:如:增加属性
DataServerIP;
procepret TAppDown.SetDataServerIP(const value:String);
begin
FDataServerIP:=value; //这句出错说FDataServerIP变量不存,但我明白定了。
end;
同样在GetDataServer方法里定义也出错。

不过我后面采用了一种折衷的方法,即重新定义一个全局变量写在SetDataServerIP
和GetDataServerIP事件中。
这样我只要操作全局变量我就解决了我的问题。然后再在主页的HTML中调用*.OCX的地方
传参数给DataServerIP属性,全局变量自动会获得其参数。
我也想知道其定义属性时,为何按控件属性的写法是错误。


 
slicker 说的对啊,应该在 CoClass 中定义成员变量来保存 Number 才行。在自动生成的
ButtonImplX.pas 中定义:
type
TButtonX = class(TActiveXControl, IBurronX);
private
FNumber: Integer; //保存 Number
....
protected
....
function Get_Number: Integer; safecall;
procedure Set_Number(Value: Integer); safecall;
end;
implememation
...
function TButtonX.Get_Number: Integer;
begin
Result := FNumber;
end;

procedure TButtonX.Set_Number(Value: Integer);
begin
FNumber := Value;
end;
...
end.
就可以了。
 
多人接受答案了。
 
后退
顶部