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

如何把功能表塗上顏色 ??

尚未結案
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-06 13:41:52 IP:61.218.xxx.xxx 未訂閱
請教各位前輩    如何把功能表塗上顏色 ??    我要作一個顏色選取的功能 且選取後的顏色須顯示於功能表中    所以想請教如何把功能表塗上顏色    另外再請教,以下的選取顏色VCL在那可以取得??     謝謝各位前輩!!
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-06 17:24:56 IP:202.39.xxx.xxx 未訂閱
什麼功能表? 如果是 TMainMenu 或 TPopupMenu 可在 TMenuItem 的 OnDrawItem 事件中來做. -- QBQ: 我能做什麼?
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-06 18:15:52 IP:61.218.xxx.xxx 未訂閱
引言: 什麼功能表? 如果是 TMainMenu 或 TPopupMenu 可在 TMenuItem 的 OnDrawItem 事件中來做. -- QBQ: 我能做什麼?
如下圖功能表,但我是用圖檔 我是想是否以指定顏色, 自己去畫功能表的小圖示 謝謝各位前輩
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-06 18:43:17 IP:61.218.xxx.xxx 未訂閱
找到了 procedure TForm1.Button1Click(Sender: TObject); begin self.mnu1.Bitmap.LoadFromFile('Be Screen.bmp'); <<---為何不作不行?? // self.mnu1.Bitmap.Canvas.Pen.Color := clLime; self.mnu1.Bitmap.Canvas.Brush.Color:= clLime; self.mnu1.Bitmap.Canvas.Brush.Style := bsSolid ; self.mnu1.Bitmap.Canvas.Rectangle(0, 0, 50, 50); end; 但為為一定要開圖檔之後再有作用???
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-06 18:59:48 IP:202.39.xxx.xxx 未訂閱
這是什麼元件? 小弟找了一下, TMainMenu 沒有 Bitmap 這個屬性 -- QBQ: 我能做什麼?
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-06 20:19:16 IP:61.70.xxx.xxx 未訂閱
引言: 這是什麼元件? 小弟找了一下, TMainMenu 沒有 Bitmap 這個屬性 -- QBQ: 我能做什麼?
是在 TMenuItem; Delphi 7
OsX
版主


發表:6
回覆:151
積分:111
註冊:2003-05-03

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-01-06 21:01:47 IP:60.248.xxx.xxx 未訂閱
     試試看下面的程式    { ----------------------------------------------------------- }    procedure TForm1.N1DrawItem(Sender: TObject; ACanvas: TCanvas;
  ARect: TRect; Selected: Boolean);
var
  aPaintArear: TRect;
  aText: String;
  aTextHeight: Integer;
  aColor: TColor;
begin
  ACanvas.Brush.Color := clWhite;
  if Selected then
    ACanvas.Brush.Color := clHighlight;
  ACanvas.FillRect( ARect );
  aText := TMenuItem( Sender ).Caption;
  aPaintArear := Rect( ARect.Left, ARect.Top, 24, ARect.Bottom );
  if aText = '紅色' then
    aColor := clRed
  else if aText = '藍色' then
    aColor := clBlue
  else if aText = '綠色' then
    aColor := clGreen;
  ACanvas.Brush.Color := aColor;
  ACanvas.FillRect( aPaintArear );
  aTextHeight := ACanvas.TextHeight( aText );
  ACanvas.Brush.Style := bsClear;
  ACanvas.TextOut( aPaintArear.Right   3,
    ARect.Top   ( ARect.Bottom - ARect.Top  - aTextHeight ) div 2 , aText );
end;    { ----------------------------------------------------------- }    procedure TForm1.N1MeasureItem(Sender: TObject; ACanvas: TCanvas;
  var Width, Height: Integer);
begin
 Width := 80;
 Height := 24;
end;    { ---------------------------------------------------------------------------- }    
結果
系統時間:2024-06-18 4:06:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!