Timage 用法小小分享 |
|
SamSam1230
中階會員 發表:128 回覆:178 積分:65 註冊:2004-12-23 發送簡訊給我 |
小弟常常在此得到幫助
最近因為要寫一些程式所以對以下有一些發現,
只是一些少少的發現
因為我還是一個剛學沒多久的 我最近寫的是用Timage load 了一張地圖, 然後要在地圖上作一些 interaction , 就是 mouse double click 某一點的時候要作出相對的動作
我當初的因難是, 我拿screen mouse 的 x ,y 跟timage 裡的 x,y 會因client screen 的 resolution ,大小,位置都會改變,那是一件很煩惱的事情,
因為相對的動作是以timage 的 x y 來存下來的,所以會跟screen , mouse 的x,y 會有一個 offset , 如果要自己算出來那個screen 跟Timage 的 ratio 再找出 x ,y 是會很麻煩, 當form move 的時候又會要處理位置改變了的問題,但後來發現一個timage 裡已經承繼win32 的一個很好用的 function -- screentoclient, 只是一兩行的程式碼就解決了剛剛所有做的事情 用法如下 它會幫你將你現在的 mouse x,y 轉成 相對 timage 的 x,y , 然後再用這個值去跟自己存下的x,y值去比對,就可以了
var Temppos,CurrentPos : Tpoint; begin Temppos := mouse.cursorPos;// 要在event trigger (double click )的時候馬上把mouse 的 x,y 存起來,因為mouse 的 x,y 會一直在變當你在mouse move 的時候 CurrentPos := Timage.ScreentoClient(Temppos); //... .... 這裡就可以加自己的比對, 相對動作的程式碼 // end;只是小小的分享... 請勿見怪 發表人 - SamSam1230 於 2005/07/25 12:24:05 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |