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

如何將繪圖的圖形物件化?

尚未結案
小禹
一般會員


發表:8
回覆:10
積分:3
註冊:2002-12-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-02 17:00:00 IP:140.124.xxx.xxx 未訂閱
各位先進 小妹在Timage上用Canvas畫了一個圓形 但想要讓這個圓形能有拖曳 除 按鈕的功能 想必是要將圖形物件化吧 請問各位有這個經驗嗎? 或是能告訴我有這方面的書嗎(BCB)
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-02 19:11:21 IP:203.75.xxx.xxx 未訂閱
我想應不用這麼麻煩, 拖曳可以做在 MouseMove, 按鈕可以做在 MouseDown 及 MouseUp, Click 的 Event 中, 但是如果你是想要重複使用, 做成 Component 也是一個不錯的方法.    Jesse Chan 發表人 - jessechan 於 2003/05/02 19:12:29
------
Jesse Chan
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-02 19:19:55 IP:203.75.xxx.xxx 未訂閱
補充說明 //---------------------------------------------------------------------------    #include  #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; bool blMouseDown = false; int nOldX, nOldY; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if (blMouseDown) { Image1->Left = (X-nOldX); Image1->Top = (Y-nOldY); // nOldX = X; // nOldY = Y; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { blMouseDown = true; nOldX = X; nOldY = Y; // 接下來可以處理圖形被按下的效果. } //--------------------------------------------------------------------------- void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { blMouseDown = false; // 接下來可以處理圖形彈上來的效果. } //--------------------------------------------------------------------------- void __fastcall TForm1::Image1DblClick(TObject *Sender) { // 可以處理圖形被按下後要做的事情. } //--------------------------------------------------------------------------- Jesse Chan
------
Jesse Chan
小禹
一般會員


發表:8
回覆:10
積分:3
註冊:2002-12-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-04 00:53:43 IP:61.231.xxx.xxx 未訂閱
我想您誤會我的意思了 我要做的就好像在一個畫布上畫了n個箭頭 但這n個箭頭都能執行自己的事件 例如刪除 好像是使用word一樣
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-05 10:48:51 IP:203.75.xxx.xxx 未訂閱
Sorry, 誤會你的意思了, 我可能幫不上忙, 因為實作起來很複雜, 不知有那位大大可以解決.    Jesse Chan
------
Jesse Chan
clarkkent
初階會員


發表:29
回覆:83
積分:32
註冊:2003-01-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-05 11:07:02 IP:61.59.xxx.xxx 未訂閱
引言: 我想您誤會我的意思了 我要做的就好像在一個畫布上畫了n個箭頭 但這n個箭頭都能執行自己的事件 例如刪除 好像是使用word一樣
妳要做的是不是像網頁上的“影像地圖“? 可否記錄妳在哪兒畫上的嗎?(要畫圖應該會給座標吧) 例如妳是在(20,20)~(120,150)畫上了這個箭頭,再判別滑鼠是否在這個範圍內按下,若是,再做妳要的動作 如同 Jesse Chan 大所說的,可能要考慮的很多吧! 不好意思我只想到這樣! 新手上路,請多指教 如果此文章違反版規 還請版主告知並刪除 Just do it
------
JUST DO IT
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-05-05 11:07:35 IP:203.73.xxx.xxx 未訂閱
引言: 我要做的就好像在一個畫布上畫了n個箭頭 但這n個箭頭都能執行自己的事件 例如刪除 好像是使用word一樣
小禹 你好:
我想~~你可以朝這個方向思考
( >
    -- 
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-05-05 12:59:27 IP:203.75.xxx.xxx 未訂閱
我考慮過 RaynorPao 的方法, 雖然可以減少很多不必要的工作, 不過在處理圖層時還是有盲點, 如下圖, 在圖形有重疊時操作上會有困難. 用 BringToFront 也不好解決, 這還只是其中之一而已. Jesse Chan 發表人 - jessechan 於 2003/05/05 13:00:56
------
Jesse Chan
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-05-05 22:41:10 IP:61.221.xxx.xxx 未訂閱
引言: 我考慮過 RaynorPao 的方法, 雖然可以減少很多不必要的工作, 不過在處理圖層時還是有盲點, 如下圖, 在圖形有重疊時操作上會有困難. 用 BringToFront 也不好解決, 這還只是其中之一而已. Jesse Chan
jessechan 你好: 我想~~這個問題,是目前市面上所有的影像處理軟體,都會碰到的問題,以 Photoshop 為例,當有很多圖層互相重疊的時候,滑鼠的游標,一樣會點選 不到被覆蓋的圖層,也因此~~Photoshop 在右下角,會有一個圖層的 Lists 能夠讓使用者自由選擇想要編輯的圖層,當某個圖層被點選以後,只有該圖 層在同一時間能夠被編輯(最上層)。所以~~我想「小禹」的問題,應該也可 以利用這套設計理念,完成想要達成的目的吧!! --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
小禹
一般會員


發表:8
回覆:10
積分:3
註冊:2002-12-25

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-05-06 01:03:54 IP:140.124.xxx.xxx 未訂閱
謝謝!Jesse Chan!終於有人會了!問了全校所有的人都沒人會 你的想法真是太棒了 我怎麼都沒想到 只不過RaynorPao 的方法怎麼用可否告知!
小禹
一般會員


發表:8
回覆:10
積分:3
註冊:2002-12-25

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-05-06 01:11:18 IP:140.124.xxx.xxx 未訂閱
Sorry!見笑了 我以為Raynorpao是TImage的方法! 難怪都找不到這個方法
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-05-06 10:08:19 IP:203.75.xxx.xxx 未訂閱
我下次寫元件時會想辦法寫一個 RaynorPao 的方法來表達對包子的敬愛. 開開玩笑, 請小禹不要介意.    Jesse Chan
------
Jesse Chan
Cooky Kid
初階會員


發表:5
回覆:68
積分:44
註冊:2002-07-11

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-05-06 14:13:44 IP:211.76.xxx.xxx 未訂閱
引言: 我要做的就好像在一個畫布上畫了n個箭頭 但這n個箭頭都能執行自己的事件 例如刪除 好像是使用word一樣
sorry...插話一下....< > <>小禹,看到這三篇問答,你是想要自訂一個有箭頭(>有信心、有熱情、有毅力< >,你可以參考下列
系統時間:2024-04-19 14:19:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!