刚开始学习做组件,几个小问题请教各位高人。
由于刚开始学习编写组件,还没入门。所以请兄弟指教:
1、写完组件程序以后不知道如何编译、测试。我每次都是保存程序,然后再把这个组件重新安装。在安装的过程中编译,每改动一次都要装一次,郁闷。有没有好的方法?
2、颜色如何递加? Canvas.Pen.Color := $00a0a0a0;
3、想实现这样一种按钮,就是有背景色、还要渐变的。但是装了以后没反应:
unit CoolButton;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, ExtCtrls, Graphics;
type
TCoolButton = class(tcustompanel)
private
{ Private declarations }
//发布基类属性
procedure SetCaption(const Value: TCaption);
protected
{ Protected declarations }
procedure Paint(); override;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy(); override;
published
{ Published declarations }
//发布基类属性
property Caption write SetCaption;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('standard', [TCoolButton]);
end;
{ TCoolButton }
constructor TCoolButton.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
//初始化基类值
Width := 75;
Height := 25;
Repaint;
end;
destructor TCoolButton.Destroy;
begin
inherited;
end;
procedure TCoolButton.Paint;
var
IHeight: integer; //IWidth,
begin
inherited;
Canvas.Pen.Color := $00a0a0a0;
for IHeight := Top to (Top + Height) do
begin
Canvas.MoveTo(Top, Top + IHeight);
Canvas.LineTo(Top + Width, Top + Width + IHeight);
end;
end;
procedure TCoolButton.SetCaption(const Value: TCaption);
begin
inherited Caption := Value;
end;
end.
谢谢大家,不胜感激。
问题点数:100、回复次数:6Top
1 楼lanyus()回复于 2006-03-01 21:34:31 得分 0
偶顶..努力学习中。。。希望能早日能写组件。。。Top
2 楼aiirii(ari-http://spaces.msn.com/members/aiirii/)回复于 2006-03-01 21:45:34 得分 80
2、颜色如何递加? Canvas.Pen.Color := $00a0a0a0;
color:=rgb(random(255),random(255),random(255));
当然,也可 color:=rgb(random(255),random(255), 10 * i);
>>3、想实现这样一种按钮,就是有背景色、还要渐变的。但是装了以后没反应:
inherited;
Canvas.Pen.Color := $00a0a0a0;
for IHeight := Top to (Top + Height) do
begin
Canvas.MoveTo(Top, Top + IHeight);
Canvas.LineTo(Top + Width, Top + Width + IHeight);
end;
这样,估计会将caption的文字挡掉
Top
3 楼nnnnyyyy(海洋之心)回复于 2006-03-02 09:39:56 得分 0
第一问,有哪位高人能救一下火?Top
4 楼netfly(支点)回复于 2006-03-02 13:50:00 得分 10
不用重新安装的,把组件进行一次编译就可以了. 这个是一种方法
还有就是自己做一个组件测试的工具,其实也不复杂,就是将组件包含入一个项目,然后直接在测试代码里创建就行了, 用多了,这个工具就很有用了Top
5 楼summersky204608()回复于 2006-03-02 14:50:04 得分 0
学校学习!Top
6 楼gflpower(燕赤侠)回复于 2006-03-02 17:05:15 得分 10
如果要实现渐变的话 , 看一MSND里CBITMAP
比较我麻烦
!Top




