xiaoqiang123 、 Little2000 、 ls2008 、 ycdelphicsdn  
你们在哪里啊?不要笑我,我没有一本书的

解决方案 »

  1.   

    Tmyclass=class(你要开始继承的类)
    begin
    end;
      

  2.   

    首先,你要确定你要编写一个什么类型的组件,这个组件需要有什么样的功能,把组件从逻辑上分为几个部分。这样,不仅有利于组件的模块化、简单化,而且能使代码精炼、
    组织良好。设计组件时,要考虑到可能会有其他程序员要基于你的组件派生出一个新的组件。
        然后,你可以确定从那个类上继承下来;
    一般说来,可以有5部分:
    1) 确定一个祖先类。
    2) 创建一个组件单元。
    3) 在新组件中添加属性、方法和事件。
    4) 测试该组件。
    5) 在D e l p h i中注册该组件。
      

  3.   

    举个例子:比如,你想编写一个自动变颜色的Label,就是当鼠标进入Label时,Label是一种颜色;当鼠标离开Label时,Label时另外一种颜色;那很显然,我们可以从TLabel的父类TCustomLabel中继承下来,做为组件的基类;我给你代码:unit ColorLabel;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, stdctrls;type
      TColorLabel = class(TCustomLabel)
      private
        { Private declarations }
        FEnterColor: TColor;
        FLeaveColor: TColor;
        FOnMouseEnter: TNotifyEvent;
        FOnMouseLeave: TNotifyEvent;
        Procedure CMMouseEnter(Var Message: TMessage); Message CM_MOUSEENTER;
        Procedure CMMouseLeave(Var Message: TMessage); Message CM_MOUSELEAVE;
        Procedure SetEnterColor(const Value: TColor);
        Procedure SetLeaveColor(const Value: TColor);
      protected
        { Protected declarations }
      public
        { Public declarations }
        constructor Create(AOwner: TComponent);override;
      published
        { Published declarations }
        property Anchors;
        property BiDiMode;
        property Caption;
        property AutoSize;
        property Color;
        property Enabled;
        property ShowHint;
        property Transparent;
        property Visible;
        property WordWrap;
        property PopupMenu;    Property EnterColor: TColor read FEnterColor write SetEnterColor;
        Property LeaveColor: TColor read FLeaveColor write SetLeaveColor;
        property Font;    property OnClick;
        property OnMouseDown;
        property OnMouseUp;
        property OnMouseMove;
        property OnMouseEnter :TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
        property OnMouseLeave :TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
      end;procedure Register;implementationprocedure Register;
    begin
      RegisterComponents('Jiangsx', [TColorLabel]);
    end;procedure TColorlabel.CMMouseEnter(Var Message: TMessage);
    begin
        if csDesigning in ComponentState then
        begin
          Font.Color:=clBlue;
          exit;
        end;
        Font.Color:=FEnterColor;
        if Assigned(FOnMouseEnter) then
        begin
          FOnMouseEnter(self);
          exit;
        end;
    end;procedure TColorlabel.CMMouseLeave(Var Message: TMessage);
    begin
        Font.Color:=FLeaveColor;
        if Assigned(FOnMouseEnter) then
        begin
          FOnMouseEnter(self);
          exit;
        end;    
    end;constructor TColorlabel.Create(AOwner: TComponent);
    begin
      inherited;
      FEnterColor := clRed;
      FLeaveColor := clBlue;
      Font.Color:=FLeaveColor;
    end;procedure TColorlabel.SetEnterColor(const Value: TColor);
    begin
      FEnterColor := Value;
      Font.Color := FEnterColor;
    end;procedure TColorlabel.SetLeaveColor(const Value: TColor);
    begin
      FLeaveColor := Value;
      Font.Color := FLeaveColor;
    end;end.
      

  4.   

    至于具体是怎么回事,一两句话也讲不清楚,你还是找本书来看吧,推荐看《DELPHI 5开发人员指南》第20,21 章,那里有比较详尽的论述。
      

  5.   

    VCL组件编程方面的书多找找看。