取得某一元件的螢幕絕對座標 |
答題得分者是:RaynorPao
|
bruce0211
版主 發表:157 回覆:668 積分:279 註冊:2002-06-13 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 請問各位長官 我知若要取的 Button1 的絕對座標如 X 軸位置,可用 Form1.Left+Button.Left 但若 Button 不是直接在 Form1 上而是在 Panel1 上,取其螢幕 X 位置那是不是又變成 Form1.Left + Panel1.Left + Button1.Left 有沒比較聰明的方法,因為元件的父物件也許有好幾個 ...bruce0211 你好: 請參考以下的做法 < class="code"> RECT rt; GetWindowRect(Button1->Handle, &rt); ShowMessage("("+IntToStr(rt.left)+", "+IntToStr(rt.top)+")"); -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
ENIX007
高階會員 發表:28 回覆:274 積分:185 註冊:2003-11-27 發送簡訊給我 |
|
bruce0211
版主 發表:157 回覆:668 積分:279 註冊:2002-06-13 發送簡訊給我 |
|
bruce0211
版主 發表:157 回覆:668 積分:279 註冊:2002-06-13 發送簡訊給我 |
> RECT rt;
> GetWindowRect(Button1->Handle, &rt);
> ShowMessage("(" IntToStr(rt.left) ", " IntToStr(rt.top) ")"); 但如果是要找 SpeedButton 這種沒有 Handle 的元件的座標,用上面的方法就不適用了 ====================================================================== 事實上我剛才找到RaynorPao長官的另一種方法
http://delphi.ktop.com.tw/topic.php?topic_id=41593 var pt: TPoint;
pt:=SpeedButton1.ClientToScreen(Point(0, 0));
取 pt.X 及 pt.Y 即得 ====================================================================== 另外,我也測了一下 ENIX007 長官的方法 , 使用上更簡潔 , 沒想到有這個屬性可用 ...
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |