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

fj218 2004-08-02 04:22:42
就是控件在设计期一托放到窗体上,就没有Ctl3d属性。
我试了无数种方法都不行。
...全文
113 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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;
....
如果你即不想让他在对象察看器看到,又不想在程序运行期使用它,那就什么也不要声明.
就行啦,

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧