导航
  • 主页
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API
  • 问答

继承TCustomEdit控件时,如何在设计期就去掉Ctl3d属性

fj218 2004-08-02 04:22:42
就是控件在设计期一托放到窗体上,就没有Ctl3d属性。
我试了无数种方法都不行。
...全文
77 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fj218 2004-08-05
原来是放入CreateWnd中,谢谢了!
回复
linzhengqun 2004-08-05
以下代码测试成功:

unit ListViewExp;

interface

uses
Windows, Messages, Classes, Forms,Controls, Graphics, StdCtrls;

type
TMyEdit = class(TCustomEdit)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
procedure CreateWnd;override;
published
{ Published declarations }
property Ctl3D;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Wind', [TMyEdit]);
end;


procedure TmyEdit.CreateWnd;
begin
inherited CreateWnd;
Ctl3D:=False;
end;



end.
回复
fj218 2004-08-05
楼上说的只是隐藏Ctl3D属性。
我要的是该组件在设计期一拖放到窗体就没有Ctl3D效果,而不需要手动将Ctrl3d设置为False这一步骤.
回复
Linyco 2004-08-04
我建了一个用来delphi讨论的群,群号是5245338,欢迎大家加入,共同研究讨论!
回复
wxjh 2004-08-04
对的,放到public中
回复
linzhengqun 2004-08-04
Ctl3d是TWinControl的一个属性.他声明在Protected中,
TCustomEdit继承于TWinControl,自然就拥有了这个保存属性
而你的控件类继承自TCustomEdit,当然也有了这个保存属性
如果你想让他在对象察看器看得到,就在你的类声明中把它声明到Published中
即:
Published
......
property Ctl3D;
......
如果你不想让他在对象察看器中看,但可以在程序运行期用它,则把它声明到Public中
即:
Public
.....
property Ctl3D;
....
如果你即不想让他在对象察看器看到,又不想在程序运行期使用它,那就什么也不要声明.
就行啦,
回复
发动态
发帖子
Delphi
创建于2007-08-02

4807

社区成员

Delphi 开发及应用
申请成为版主
社区公告
暂无公告