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

如何將圖片放在TImage的左上角?

答題得分者是:Main Chen
blue
中階會員


發表:170
回覆:136
積分:81
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2015-04-28 16:59:56 IP:122.146.xxx.xxx 訂閱
 如題,謝謝!
Main Chen
高階會員


發表:29
回覆:135
積分:127
註冊:2002-10-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2015-04-29 06:52:25 IP:220.134.xxx.xxx 訂閱
有幾種方式:
1. 把 TImage 放入 TLayout 裡的左上角.
2. 利用 Canvas.DrawBitmap 畫到自己想要的位置.
blue
中階會員


發表:170
回覆:136
積分:81
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2015-05-05 15:40:25 IP:122.146.xxx.xxx 訂閱
Hi,感謝Main Chen大大指導:
試了一下,覺得怪怪的,
在測試專案中,小弟使用 Panel 內放 TImage(Image1),Panel並非在整個畫面左上角,如下的程式,在Image1.OnPaint調用,正常將圖顯示在Image1的左上角,
但,若是在一個Button調用,卻會顯示在整個畫面左上角(超出Image1的範圍了),
謝謝!
procedure TForm1.LoadImage;
var
Bmp: TBitmap;
RectSrc, RectDst: TRectF;
begin
Bmp := TBitmap.Create;
Bmp.LoadFromFile('.\BackGround.jpg');
RectSrc := TRectF.Create(0, 0, Bmp.Width, Bmp.Height);
RectDst := TRectF.Create(0, 0, Bmp.Width, Bmp.Height);
Image1.Canvas.BeginScene;
Image1.Canvas.DrawBitmap(Bmp, RectSrc, RectDst, 1, True);
Image1.Canvas.EndScene;
end;

===================引 用 Main Chen 文 章===================

有幾種方式:


1. 把 TImage 放入 TLayout 裡的左上角.
2. 利用 Canvas.DrawBitmap 畫到自己想要的位置.
Main Chen
高階會員


發表:29
回覆:135
積分:127
註冊:2002-10-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2015-05-06 08:23:33 IP:175.181.xxx.xxx 訂閱
FMX 需要改成下面寫法, 在 OnPaint 裡再呼叫 LoadImage 並傳入 Canvas (這是關鍵)
procedure TForm1.Image1Paint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF);
begin
LoadImage(Canvas);
end;
procedure TForm1.LoadImage(Canvas1: TCanvas);
var
Bmp: TBitmap;
RectSrc, RectDst: TRectF;
begin
Bmp := TBitmap.Create;
Bmp.LoadFromFile('d:\123.jpg');
RectSrc := TRectF.Create(0, 0, Bmp.Width, Bmp.Height);
RectDst := TRectF.Create(0, 0, Bmp.Width, Bmp.Height);
Canvas1.BeginScene;
Canvas1.DrawBitmap(Bmp, RectSrc, RectDst, 1, True);
Canvas1.EndScene;
end;
系統時間:2024-05-02 5:57:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!