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

請問TIcon.Draw??

答題得分者是:cmf
iamjsn
初階會員


發表:78
回覆:95
積分:44
註冊:2002-08-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-22 17:12:25 IP:203.204.xxx.xxx 未訂閱
想請問一下先進? 我想要把form.icon畫到form.canvas上 結果畫出來的大小是32x32, 使用方法如下: 發現範圍怎麼設都沒用,我是想要畫16x16大小 的圖示, 還請指點。謝謝!        
 
type TExeIcon=class(TIcon);
procedure TfmForm.paintIcon;
var
  LRect:TRect;
begin
  LRect:=Rect(20,0,36,16);////fbbTopHeight);
  TExeIcon(self.Icon).Draw(Canvas,LRect);
end;
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-22 17:32:06 IP:61.70.xxx.xxx 未訂閱
    換個方式試試        procedure TfmForm.paintIcon; var   LRect:TRect; begin   LRect:=Rect(20,0,36,16);   Canvas.StretchDraw(LRect,self.Icon); end;    僅供參考,歡迎繼續發言願以此功德 莊嚴佛淨土 上報四重恩 下濟三塗苦 若有見聞者 悉發菩提心 盡此一報身 同生極樂國
------
︿︿
Justmade
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-22 18:09:32 IP:218.16.xxx.xxx 未訂閱
笨方法但測試可行 :
procedure TForm1.FormPaint(Sender: TObject);
var
bmp : Tbitmap;
begin
  bmp := Tbitmap.Create;
  try
    bmp.Height := 32;
    bmp.Width := 32;
    bmp.Canvas.Draw(0,0,Application.Icon);
    Canvas.StretchDraw(Rect(20,0,35,15),bmp);
  finally
    bmp.Free;
  end;
end;
我剛才也是試直接 StretchDraw 在 Canvas 但不成,所以才找估 TBitMap 做中間人。
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-22 18:21:11 IP:61.70.xxx.xxx 未訂閱
DrawIconEx(     Canvas.Handle,        // handle to device context     0,        // x-coordinate of upper left corner     0,        // y-coordinate of upper left corner     ICON.Handle,        // handle to icon to draw     300,        // width of the icon     300,        // height of the icon     0,        // index of frame in animated cursor     0,        // handle to background brush     DI_IMAGE        // icon-drawing flags    );    Justmade 哥哥  我試可以ㄋㄟ ^_^     僅供參考,歡迎繼續發言願以此功德 莊嚴佛淨土 上報四重恩 下濟三塗苦 若有見聞者 悉發菩提心 盡此一報身 同生極樂國 發表人 - cmf 於 2003/05/22 18:57:21
------
︿︿
Justmade
版主


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-22 18:58:42 IP:218.16.xxx.xxx 未訂閱
cmf 兄, 我試來試去都是不成的說....(無論用預設的 Application.icon 或 自行載入的 Self.Icon) 會不會是你載入那 icon 本身就是 16X16 的 ?    我這篇指的是 直接 StrechDraw 不是 DrawIconEx 發表人 - Justmade 於 2003/05/22 19:02:02
iamjsn
初階會員


發表:78
回覆:95
積分:44
註冊:2002-08-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-22 23:56:58 IP:203.204.xxx.xxx 未訂閱
直接使用icon的話StrechDraw 偶也畫不出來 用DrawIconEx比較簡單,一行就行了。謝謝。
系統時間:2024-04-26 6:01:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!