全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1814
推到 Plurk!
推到 Facebook!

請問如何繪製透明的多邊形區域呢?

尚未結案
David
一般會員


發表:13
回覆:26
積分:7
註冊:2002-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-19 16:17:36 IP:203.217.xxx.xxx 未訂閱
各位前輩好: 我想在PaintBox上繪製透明的多邊形區域,用了指令aCanvas.Polygon(...)方式,可是它是繪製成實心的,會蓋住下方的影像,一直沒找到能讓它透明的設定,調整aCanvas.Brush.Style發現它只有幾個樣式,或是中空沒顏色而不是透明能看到下層的,不知Delphi有這方面的功能嗎?請大家幫幫忙,謝謝。 我在網站上找了很久,好像只看到Bitmap本身有透明的設定,也看到有篇文章介紹個c指令CreatePolygon...,再將傳回值對個Panel設定(大致是這樣,我也不是很懂),但Delphi內有這個指令嗎?也有下載一些前輩做的透明SHAPE元件,但那些都是制式的,不能自訂的(我目前找到的),看他們有關透明部分原始碼的實做內容好像挺複雜,需寫蠻多程式碼才能搞定,不知有沒叫淺顯做法呢?麻煩大家幫個忙,感恩...
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-19 16:26:59 IP:61.222.xxx.xxx 未訂閱
節錄自help    
    procedure TForm1.Button1Click(Sender: TObject);    var
  Bitmap : TBitMap;
begin
  Bitmap := TBitmap.Create;
  try
    with Bitmap do begin
      LoadFromFile('C:\Program Files\Common Files\Borland Shared\Images\Splash\256color\factory.bmp');
      Transparent := True;
      TransParentColor := BitMap.canvas.pixels[50,50];
      Form1.Canvas.Draw(0,0,BitMap);
      TransparentMode := tmAuto;
      Form1.Canvas.Draw(50,50,BitMap);
    end;
  finally
    Bitmap.Free;      end;
end;    
參考看看,希望能幫得上忙
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-19 16:31:51 IP:211.22.xxx.xxx 未訂閱
您好: 找了ㄍ連結希望有幫助http://delphi.ktop.com.tw/topic.php?topic_Id=19527 或可以使用進階搜尋『不規則』 『form』 ~~應無所住而生其心~~
David
一般會員


發表:13
回覆:26
積分:7
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-19 19:17:01 IP:203.217.xxx.xxx 未訂閱
非常感謝前輩們撥空指教,但是...
引言: procedure TForm1.Button1Click(Sender: TObject); var Bitmap : TBitMap; begin Bitmap := TBitmap.Create; try with Bitmap do begin LoadFromFile('C:\Program Files\Common Files\Borland Shared\Images\Splash\256color\factory.bmp'); Transparent := True; TransParentColor := BitMap.canvas.pixels[50,50]; Form1.Canvas.Draw(0,0,BitMap); TransparentMode := tmAuto; Form1.Canvas.Draw(50,50,BitMap); end; finally Bitmap.Free; end; end;
這應該只是讓整個影像背景顏色透明的做法,我有做過,可是我是想請問在影像畫布上繪製透明的圖元,似乎不僅是如此...
引言: 您好: 找了ㄍ連結希望有幫助http://delphi.ktop.com.tw/topic.php?topic_Id=19527 或可以使用進階搜尋『不規則』 『form』
我並不是要做透明的Form,當然如果我能參透這些透明的Form做法,或許能找到,只是想請教有無較簡單易做的方法,甚至是免費的透明多邊形元件也可以... 感謝兩位前輩的幫忙。
jaya
初階會員


發表:9
回覆:70
積分:30
註冊:2002-05-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-07 23:56:32 IP:220.135.xxx.xxx 未訂閱
剛好,我也遇到了類似的問題,我找到的解決方式是設定填充屬性就可以了 PaintBox.Canvas.Brush.Style := bsClear; 很多資料都說「bsClear」是清空的意思,但是經過測試後,應該是就是您要的「透明」屬性。
系統時間:2024-06-29 12:23:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!