線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1338
推到 Plurk!
推到 Facebook!

請問有沒有人可以告訴我,如何改變BitBtn按鈕的底色,感激不盡!

答題得分者是:Rain
kevin_0417
一般會員


發表:1
回覆:0
積分:0
註冊:2003-02-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-12 20:33:20 IP:202.145.xxx.xxx 未訂閱
各位前輩,我想改變按鈕的底色不要是clBtnFace ,請問有辦法嗎?
------
kevin cheng
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-12 21:39:12 IP:218.16.xxx.xxx 未訂閱
基本上你可自行創造一個承繼自 TBitBtn 的 class 且容許改變底色,但這樣比較煩。 最簡單的是在 http://sourceforge.net/projects/jvcl 下載 JVCL 2.1 full install 版。安裝非常容易,安裝後便多了300多個有用的元件,而且完全免費。 其中的 TJvImgBtn 是支援設定底色的。
Rain
資深會員


發表:31
回覆:236
積分:268
註冊:2003-02-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-12 22:42:43 IP:218.5.xxx.xxx 未訂閱
比較麻煩,大體上寫了一段,供參考 procedure TForm1.BitBtn1Click(Sender: TObject); var AText: string; APoint: TPoint; ARect: TRect; ACanvas: TCanvas; begin ACanvas := TCanvas.Create; with ACanvas do begin try Handle := GetDC(TBitBtn(Sender).Handle); Brush.Color := clBlue; AText := TBitBtn(Sender).Caption; ARect := TBitBtn(Sender).ClientRect; with ARect do begin APoint.X := (Right - Left) div 2 - TextWidth(AText) div 2; APoint.Y := (Bottom - Top) div 2 - TextHeight(AText) div 2; TextRect(ARect, Left APoint.X, Top APoint.Y, AText); end; finally Free; end; end; end; //如果要自己寫一個具有Color屬性的按鈕,倒有一個簡單的方法可以實現,繼承自TCustomPanel,published Color屬性,然後分別以下攔截消息,如果要象TBitBtn可以加入圖片,可重載Paint過程。 procedure TXButton.CMMouseEnter(var Message: TMessage); begin inherited; BevelOuter := bvRaised; end; procedure TXButton.CMMouseLeave(var Message: TMessage); begin inherited; BevelOuter := bvNone; end; procedure TXButton.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin inherited; BevelOuter := bvLowered; end; procedure TXButton.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin inherited; BevelOuter := bvRaised; end;
系統時間:2024-05-15 6:45:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!