社区
Delphi
帖子详情
给自己的VCL加入新的TFONT属性(published)
radish
2000-01-07 12:19:00
如何给自己的VCL加入新的TFONT属性(published),让用户在设计时自己选字体.
...全文
339
15
打赏
收藏
给自己的VCL加入新的TFONT属性(published)
如何给自己的VCL加入新的TFONT属性(published),让用户在设计时自己选字体.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
skt642
2001-05-31
打赏
举报
回复
63635关注!
radish
2000-01-09
打赏
举报
回复
感谢venne和参与的各位,我没有自己写SetFont所以不对。
另:venne,我对图象没有什么研究,不过我可以告诉你borland的news地址:
forums.inprise.com
我主要在看win api方面的。
Firing_Sky
2000-01-08
打赏
举报
回复
天,看这问题份高就都往这儿挤,我就不凑这个热闹了
HBZhang
2000-01-08
打赏
举报
回复
不会吧,这个问题开价400分
startcn
2000-01-07
打赏
举报
回复
1).在published 段中加入:property Font;
2).在protected 段中加入:procedure CMFontChanged(var Message:TMessage);message Cm_FontChanged;
目的是为了当控件字体改变时,进行响应,具体的程序内容可以根据你程序的不同,自己编制!
Venne
2000-01-07
打赏
举报
回复
在你新的VCL中声明一个属性:
property Font:TFont;{剩下的可以由DELPHI的类补全帮你做好,应该增加一个TFONT类的FFONT对象}
然后,在你的控件的构造中加一句:
constructor TYourComponent.Create(AOwner:TComponent);
begin
inherited;
FFont:=TFont.Create;
end;
在你的其它实现中使用这个对象的属性,就和其它DELPHI的控件一样,
在析构你的控件时,一定记住先释放FFONT对象:
destructor TYourComponent.Destroy;
begin
FFont.Free;
inherited;
end;
barton
2000-01-07
打赏
举报
回复
TControl的protected带一个Font属性,直接published一下不就成了吗?
Venne
2000-01-07
打赏
举报
回复
我今天才注册这个网站,发现你老在这里人缘不错。感觉你在图形方面是不是有特别长处,现请教是否知道RGB到LAB到HSB到YUK到CMYK几种颜色模式的转换,找了很多资料没找到,不知道您那里是否有。我想实现一个像PHOTHOSHOP里使用COLOR模式上色的效果,即给无色的图片(比如一张黑白照片)上色,但是不改变明暗关系和亮度及对比度。不知老兄(姑且这样称呼)在此方面可有心得?如真可以解决,点数您可以开口。(不过,不太希望是到XXXX地下载XXXX),BORLAND的NEWS我也问过,上面提供的站点已迁移。
Venne
2000-01-07
打赏
举报
回复
radish, 我当然这样做过,为了清楚起见,我下面给出一个非常简单地例子,他使一个IMAGE控件具有FONT属性,而且,因为TFONT的编辑器是在DELPHI中注册过的,所以,用户使用你的属性和别的FONT属性都一样。当然,前面他们提到的我认为应该没问题,但我总喜欢把问题更简单化。
至于可否存盘的问题,你不妨自己一试。^_^
unit fontImage;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls;
type
TfontImage = class(TImage)
private
FCaption: String;
FFont: TFont;
procedure SetCaption(const Value: String);
procedure SetFont(const Value: TFont);
{ Private declarations }
procedure DrawCaption;
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner:Tcomponent);override;
destructor Destroy;override;
published
{ Published declarations }
property Font:TFont read FFont write SetFont;
property Caption:String read FCaption write SetCaption;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TfontImage]);
end;
{ TfontImage }
constructor TfontImage.Create(AOwner: Tcomponent);
begin
inherited;
FFont:=TFont.Create ;
end;
destructor TfontImage.Destroy;
begin
FFont.Free ;
inherited;
end;
procedure TfontImage.DrawCaption;
begin
With Canvas do begin
font:=FFont;
textOut(0,0,FCaption);
end;
end;
procedure TfontImage.SetCaption(const Value: String);
begin
FCaption := Value;
DrawCaption;
end;
procedure TfontImage.SetFont(const Value: TFont);
begin
FFont.Assign (Value);
DrawCaption;
end;
end.
kxy
2000-01-07
打赏
举报
回复
这是Tcontorl中Font的定义
property Font: TFont read FFont write SetFont stored IsFontStored;
希望有帮助.
kxy
2000-01-07
打赏
举报
回复
如果你的vcl的祖先有Font属性,用startcn的方法就可以.
如果你的vcl的祖先没有Font属性,可以看vcl的source
TContorl的实现,把它有关的Font的处理研究一下即可.
如果你想用自己的Font的对话框,那就复杂了,要涉及到属性编辑器的编写,
Delphi高级开发指南 一书有很好的讲解.它的配书源码
www.midatech.com/jiangtao可下载.在第 12 章.
radish
2000-01-07
打赏
举报
回复
Venne:
你用你的方法试过没有?在设计时改变字体后能存盘吗?
radish
2000-01-07
打赏
举报
回复
Venne:
radish
2000-01-07
打赏
举报
回复
Venne:
kxy
2000-01-07
打赏
举报
回复
你可以看vcl的源码,看它是如何作的.
FastReport
VCL
开发人员手册:FastReport 类层次结构
FastReport
VCL
是用于 Delphi、C++ Builder、RAD Studio 和 Lazarus 的报告和文档创建
VCL
库。它提供了可视化模板设计器,可以访问 30 多种格式,并可以部署到云、网站、电子邮件和打印中。 立即点击下载FastReport
VCL
v6.9最
新
版 TfrxComponent是所有 FastReport 组件的基类。这种类型的对象具有参数,例如坐标、大小、字体、可见性和从属对象的列表。此类还包含允许在流中保存/恢复对象状态的方法。 TfrxComponent
DBGrid 各
属性
的设置
在 Delphi 语言的数据库编程中,DBGrid 是显示数据的主要手段之一。但是 DBGrid 缺省的外观未免显得单调和缺乏创意。其实,我们完全可以在我们的程序中通过编程来达到美化DBGrid 外观的目的。通过编程,我们可以改变 DBGrid 的表头、网格、网格线的前景色和背景色,以及相关的字体的大小和风格。 以下的示例程序演示了对 DBGrid 各
属性
的设置,使 Delphi 显示的表格就像网...
Delphi XE组件开发技术
1. 组件设计基础: 1.编写组件步骤: 1) 确定一个祖先类。 TObject:直接从TObject继承下来的类不是组件。有些以此为基类的对象在设计期不需要使用,如TIniFile TComponent:这是非可视组件的起点,它的特点是在设计时能够以流的方式在IDE上存取 TGraphicControl:创建一个不需要窗口句柄、但要在屏幕上显示的组件时,用这个类作为祖先类 TWinControl:所有需要窗口句柄的组件,都应以该类为基类。该类提供了Windows组件的一般
属性
和事件 TCu.
Delphi高手突破(四) Delphi高级进阶
别人造砖我砌房! Delphi高手突破
VCL
——Visual Component Library,是 Delphi 的基石。Delphi 的优秀,很大程度上得益于
VCL
的优秀。
VCL
是 Delphi 所提供的基本组件库,也就是所谓的 Application Framework,它对Windows API(应用程序接口)进行了全面封装,为桌面开发(不限于桌面开发)提供了整套的解...
核心库类之TControl
TControl作为控件类的根类提供的服务:1)TControl控件基本信息TControl开始
加入
控件的基本信息并使用持久化机制保存信息。TControl声明的Left、Top等控件信息并使用
Publish
ed
关键字输出以便让客户端存取。这些控件信息会自动被持久化。 TControl=class(TComponent)privateFParent:TWinControl;...
Delphi
5,386
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章