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

滑鼠座標的問題?

尚未結案
enu
中階會員


發表:36
回覆:93
積分:55
註冊:2003-10-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-03 04:17:11 IP:220.142.xxx.xxx 未訂閱
請教各位先進,在form上可以取得滑鼠click時的座標,在image上也可以取得滑鼠click時的座標,可是在image上的滑鼠座標是以image本身的座標值為準(image的左上角和form的左上角都是(0,0))。 現在假如小弟要取在這個form上click的座標,如果click在image上時,應該如果取得(或者說是轉換)form的座標?懇請賜教!感恩!
ENIX007
高階會員


發表:28
回覆:274
積分:185
註冊:2003-11-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-03 09:04:24 IP:203.70.xxx.xxx 未訂閱
enu您好 試試看:  
 void __fastcall TForm1::Image1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  TPoint P;
  P.x = X;
  P.y = Y;
  P = Form1->ScreenToClient(Image1->ClientToScreen(P));
  Caption = IntToStr(P.x) "," IntToStr(P.y);
}
詳情請見ClientToScreen Help 程式迷人之處,在於邏輯思考,然而卻也是惱人之處~~
------
程式迷人之處,在於邏輯思考,然而卻也是惱人之處~~
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-03 14:02:41 IP:211.76.xxx.xxx 未訂閱
enu 您好:    純插花!看看就好! 斗膽改寫的 > < class="code">void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { Caption = IntToStr(X Image1->Left) "," IntToStr(Y Image1->Top); } 不過這個做法沒有像 ENIX007 所提供的正確。因為如果Image1又放在其他容器元件上時,結果會以該容器元件來算而出錯。除非Image1就放在Form上。 RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####
enu
中階會員


發表:36
回覆:93
積分:55
註冊:2003-10-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-05 16:25:09 IP:220.142.xxx.xxx 未訂閱
感恩!感恩!
系統時間:2024-05-06 14:56:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!