社区
Delphi
帖子详情
给自己的VCL加入新的TFONT属性(published)
radish
2000-01-07 12:19:00
如何给自己的VCL加入新的TFONT属性(published),让用户在设计时自己选字体.
...全文
340
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...
DBGrid 各
属性
的设置
在 Delphi 语言的数据库编程中,DBGrid 是显示数据的主要手段之一。但是 DBGrid 缺省的外观未免显得单调和缺乏创意。...以下的示例程序演示了对 DBGrid 各
属性
的设置,使 Delphi 显示的表格就像网...
Delphi XE组件开发技术
1. 组件设计基础: 1.编写组件步骤: 1) 确定一个祖先类。 TObject:直接从TObject继承下来的类不是组件。有些以此为基类的对象在设计期不需要使用,如TIniFile ...该类提供了Windows组件的一般
属性
和事件 TCu.
Delphi高手突破(四) Delphi高级进阶
别人造砖我砌房! ...
VCL
是 Delphi 所提供的基本组件库,也就是所谓的 Application Framework,它对Windows API(应用程序接口)进行了全面封装,为桌面开发(不限于桌面开发)提供了整套的解...
核心库类之TControl
TControl作为控件类的根类提供的服务:1)TControl控件基本信息TControl开始
加入
控件的基本信息并使用持久化机制保存信息。TControl声明的Left、Top等控件信息并使用
Publish
ed
关键字输出以便让客户端存取。这些控件...
Delphi
5,388
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章