如何把小圖的座標傳給大圖 |
答題得分者是:jow
|
iiskiki
一般會員 發表:8 回覆:10 積分:3 註冊:2007-10-03 發送簡訊給我 |
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
|
iiskiki
一般會員 發表:8 回覆:10 積分:3 註冊:2007-10-03 發送簡訊給我 |
|
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
[code delphi]
//Image1 (大圖) //Image2 (小圖) procedure TForm1.Image2Click(Sender: TObject); var P: TPoint; begin GetCursorPos(P); //系統座標 Label1.Caption := Format('MouseClick: X=%d, Y=%d', [P.X, P.Y]); //將系統座標轉換成Image2的Client座標 P := Image2.ScreenToClient(P); //或 P := Self.ScreenToClient(P);//TForm1的Client座標 Label2.Caption := Format('MouseClick: X=%d, Y=%d', [P.X, P.Y]); //所以只要引發Image1的Click事件就可以了, 由 Image1自行call GetCursorPos() //取得系統座標 Image1Click(Image1); end; procedure TForm1.Image2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin //Image2MouseMove, 傳入的是 Image2的Client座標, (0,0)代表Image2的左上角的位置 Label3.Caption := Format('MouseMove: X=%d, Y=%d', [X, Y]); end; procedure TForm1.Image1Click(Sender: TObject); var P: TPoint; begin GetCursorPos(P); //系統座標 Label4.Caption := Format('MouseClick: X=%d, Y=%d', [P.X, P.Y]); //將系統座標轉換成Image1的Client座標 P := Image1.ScreenToClient(P); //或 P := Self.ScreenToClient(P);//TForm1的Client座標 Label5.Caption := Format('MouseClick: X=%d, Y=%d', [P.X, P.Y]); end; [/code]
編輯記錄
jow 重新編輯於 2007-10-15 23:24:30, 註解 無‧
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
|
iiskiki
一般會員 發表:8 回覆:10 積分:3 註冊:2007-10-03 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |