急~~~~~~~~~~~~~~~~~~~~~~

解决方案 »

  1.   

    它有一个Glyph的属性,你可以在设计期间选图,也可以在运行时这样
    bitbtn.Glyph.LoadFromFile('1.bmp');
      

  2.   

    很谢谢你的大力帮助
    我想问的是把bitbtn的个别属性再给他加到button上呀
    是如何做到的呀??
      

  3.   

    在你Button中的Published域声明一个TBitmap类型的属性就行了。注意一定要是published
      

  4.   

    Public那个属性就可以了其实你干脆用BitBtn算了
      

  5.   

    为什么非要button;
    如果要用到图标的话;bitbtn;speedbutton要远比button好用;^_^
      

  6.   

    这是要在自定义组件里定义呢还是能直接在form里直接给他增加呢???
      

  7.   

    去看看TBitBtn的源代码,上面写的很清楚
      

  8.   

    TBitBtn不就是从TButton继承来让你能加个图片的吗?
    你用TBitBtn不就完了你实在是想自己做,那就去看TBitBtn的源代码吧
    不过Button控件的绘制和其他从TCustomControl自己画是不太一样的,
    Button是Windows的通用控件,它的绘制关系到 CN_MEASUREITEM 和 CN_DRAWITEM
      

  9.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      objImage:TImage;
    begin
      objImage := TImage.Create(Button1);
      objImage.Parent :=Button1;
      objImage.Left := 0;
      objImage.Top := 0;
      objImage.Width := Button1.Width div 2;
      objImage.Height := Button1.Height;
      objImage.Picture.LoadFromFile('D:\Program Files\Common Files\Borland Shared\Images\Default\delphi.ico');
    end;
      

  10.   

    将上面的作为扩展Button的一个方法就行了,我试了一下,还可以。
      

  11.   

    TBitBtn = class(TButton)
      private
        FCanvas: TCanvas;
        FGlyph: Pointer;
        FStyle: TButtonStyle;
        FKind: TBitBtnKind;
        FLayout: TButtonLayout;
        FSpacing: Integer;
        FMargin: Integer;
        IsFocused: Boolean;
        FModifiedGlyph: Boolean;
        procedure DrawItem(const DrawItemStruct: TDrawItemStruct);
        procedure SetGlyph(Value: TBitmap);
        function GetGlyph: TBitmap;
        function GetNumGlyphs: TNumGlyphs;
        procedure SetNumGlyphs(Value: TNumGlyphs);
        procedure GlyphChanged(Sender: TObject);
        function IsCustom: Boolean;
        function IsCustomCaption: Boolean;
        procedure SetStyle(Value: TButtonStyle);
        procedure SetKind(Value: TBitBtnKind);
        function GetKind: TBitBtnKind;
        procedure SetLayout(Value: TButtonLayout);
        procedure SetSpacing(Value: Integer);
        procedure SetMargin(Value: Integer);
        procedure CNMeasureItem(var Message: TWMMeasureItem); message CN_MEASUREITEM;
        procedure CNDrawItem(var Message: TWMDrawItem); message CN_DRAWITEM;
        procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;
        procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
        procedure WMLButtonDblClk(var Message: TWMLButtonDblClk);
          message WM_LBUTTONDBLCLK;
      protected
        procedure ActionChange(Sender: TObject; CheckDefaults: Boolean); override;
        procedure CreateHandle; override;
        procedure CreateParams(var Params: TCreateParams); override;
        function GetPalette: HPALETTE; override;
        procedure SetButtonStyle(ADefault: Boolean); override;
      public
        constructor Create(AOwner: TComponent); override;
        destructor Destroy; override;
        procedure Click; override;
      published
        property Action;
        property Anchors;
        property BiDiMode;
        property Cancel stored IsCustom;
        property Caption stored IsCustomCaption;
        property Constraints;
        property Default stored IsCustom;
        property Enabled;
        property Glyph: TBitmap read GetGlyph write SetGlyph stored IsCustom;
        property Kind: TBitBtnKind read GetKind write SetKind default bkCustom;
        property Layout: TButtonLayout read FLayout write SetLayout default blGlyphLeft;
        property Margin: Integer read FMargin write SetMargin default -1;
        property ModalResult stored IsCustom;
        property NumGlyphs: TNumGlyphs read GetNumGlyphs write SetNumGlyphs stored IsCustom default 1;
        property ParentShowHint;
        property ParentBiDiMode;
        property ShowHint;
        property Style: TButtonStyle read FStyle write SetStyle default bsAutoDetect;
        property Spacing: Integer read FSpacing write SetSpacing default 4;
        property TabOrder;
        property TabStop;
        property Visible;
        property OnEnter;
        property OnExit;
      end;
        
      

  12.   

    看看VCL本身的代码,然后你就什么都知道了,肚子饿