您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Delphi >> 刚开始学习做组件,几个小问题请教各位高人。

刚开始学习做组件,几个小问题请教各位高人。

来源:网络整理     时间:2016/7/8 14:40:13     关键词:

关于网友提出的“ 刚开始学习做组件,几个小问题请教各位高人。”问题疑问,本网通过在网上对“ 刚开始学习做组件,几个小问题请教各位高人。”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 刚开始学习做组件,几个小问题请教各位高人。
描述:

由于刚开始学习编写组件,还没入门。所以请兄弟指教:
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.
 谢谢大家,不胜感激。


解决方案1:


如果要实现渐变的话  , 看一MSND里CBITMAP
比较我麻烦  

解决方案2:

不用重新安装的,把组件进行一次编译就可以了.  这个是一种方法
还有就是自己做一个组件测试的工具,其实也不复杂,就是将组件包含入一个项目,然后直接在测试代码里创建就行了, 用多了,这个工具就很有用了

解决方案3:

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的文字挡掉


以上介绍了“ 刚开始学习做组件,几个小问题请教各位高人。”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2418863.html

相关图片

相关文章