※ 引述《waykao (waykao)》之銘言:
: ※ 引述《Dumkas (Clair de lune)》之銘言:
: : 重寫一下
: : 開兩個single變數陣列,或是二維陣列、自訂結構陣列
: : 最好是開可變長度的(以下用dX(),dY())
: : 一個布林變數紀錄是否在畫圖(以下稱為繪圖模式)
: : 一個數值變數當作陣列指標(以下稱為指標t)
: : (這些都是全域變數)
: : 首先陣列至少要有一項
: : 指標t=這第一項的index
: : 在mouse_down事件而滑鼠按下左鍵時啟動繪圖模式
: : 而相對的在mouse_up要取消
: : 在mouse_move中,如果是處於繪圖模式
: : 就用line畫dX(t),dY(t)-X,Y
: : 然後將dX(t),dY(t)更新為X,Y
: : 如果陣列是可變,開陣列新的下一項(ex. Redim Preserve dX(t+1))
: : 然後指標t也加1
: : 避免放開滑鼠後又按下時程式多畫一條從上次結束的點連過來的線
: : 現在困難度提高了=.=
: : 我改成這樣:啟動繪圖模式時,如果指標對應的那一項還沒有儲存資料
: : 就表示是第一次啟動
: : 反之不是
: : 所以不是第一次啟動的話就再開陣列下一項並指標加1
: : 把新的這項存按下的X,Y
: : (由於我沒有試過,所以我不知道這會不會成功)
: : 如果你想顯示兩次按下滑鼠的動作間隔
: : 可以把啟動模式時的新開陣列動作改成開兩個
: : 然後從第二個開始做
: : 這樣中間會留下一個空項
: : 不然就要用額外的變數紀錄了
: 可以在請教你一下嗎?
: 我有點不懂你的意思耶!
: 如何能再按下滑鼠時持續不斷的紀錄下去
: 因為我只Dim一個陣列,然後再每次按下按鍵時
: 邊畫出點邊紀錄下f(y)=Y之值,可是他就只紀錄下按下去按鍵時瞬間的
: 那一點的Y值在一個陣列中,應該是我要讓按下一次按鍵後就一路畫到底
: 所以才會只紀錄下一次的座標值
: 希望麻煩你可以講的清楚一點,因為我不是很厲害
: 謝謝你的幫忙
按下滑鼠 拖曳滑鼠 滑鼠放開
mousedown → mousemove → mouseup → ─┐
│
啟動紀錄模式 繼續紀錄並繪圖 結束紀錄模式 │
│
↑ │
└───────────────────────┘
我先寫到這樣
不知道你對於這三個事件的發生方式有沒有概念?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.216.80.74