请问怎么在 Gauge 上面输出文字呢?
解决方案 »
- IMAGE的转换问题
- edit 输入法
- adoquery的删除错误,请教!
- 在线等待-20分求个问题 大家帮忙看看为什么我的Delphi7.0 System页下看属性有FilterComboBox,但是单击System页却看不到,当然就加不到
- 为何总是报错“ADOQuery:CommandText does not return a result set”?
- 请教一个小问题
- 怪问题!
- dbrid内容的修改,,神啊,请救救我
- 从数据库批量导出图片到EXCEL模板,生成上岗证
- 送分!!!如何把数值字符串"3433433"格式化为"3,433433.00"类型的字符串?
- 追到女朋友散分
- 请问Object Pascal 有没有与C语言这样相当结构声明?
还有其他方法吗?hongqi162(失踪的月亮)
表示进度的控件,和 Win32 页上的进度条相比好像能显示百分比。
在 Sample 页
fcProgressBar1这个比较好,这个组件包很实用
谢谢推荐。我想能在尽量不用第三方控件的情况下实现
1。用lable覆盖来实现等效效果。
2。第三方控件
3。自己继承该控件并覆盖其Paint方法。
4。拦截WM_PAINT消息,然后自己用Canvas写方法画。至于拦截的方式也有很多。比如WindowProc消息替换。
可能还有更多。
4。拦截WM_PAINT消息,然后自己用Canvas写方法画。至于拦截的方式也有很多。比如WindowProc消息替换。这两个看似符合我的需要。能谈一下具体该怎样做吗?我是新手,不太了解类的概念,至于继承,覆盖,冲载等等更是迷糊。
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Gauges;type TMyGauge = class(TGauge)
protected
procedure Paint; override;
end; TForm1 = class(TForm) procedure FormCreate(Sender: TObject);
private
Gauge1:TMyGauge;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ TMyGauge }procedure TMyGauge.Paint;
begin
inherited;
Canvas.TextOut(1, 1, 'Hello');
end;procedure TForm1.FormCreate(Sender: TObject);
begin Gauge1 := TMyGauge.Create(Self);
with Gauge1 do
begin
Parent := Self;
SetBounds(20, 20, 200, 20);
Show;
end;end;end.
非常感谢!我再根据你的代码修改一下就达到我的要求了。
还有两个问题,当然,这个已经和本主题无关了。如果你乐意 义务的讲解一下。小弟感激不尽。
TMyGauge = class(TGauge)
protected
procedure Paint; override;
end;1 为什么放在 protected 域呢? private 或者 public 不行吗?
2 为什么用到 override,在什么场合应该用这个关键字呢?
to 其他朋友。
谢谢你们的献计献策。
private,只有本类可见。
protected,继承的子类可见。
public,其他类可以调用,都可见。2,用override,重载父类的方法。如果父类的方法同名,且为虚函数或者动态函数。子类需要覆盖父函数。使用override。
这个你可能需要找一本讲OO的书看,会讲的比较透彻。
谢谢,谢谢!