Wolfgang Chien's Homepage | Delphi學習筆記 - 問答篇 |
想請問大家一個問題,希望大家能夠不吝指教.
在一般的authoring tools當中,通常都有一種作法,也就是說我可以在一個圖上圈選某一個特定的區域(不管是圓形、方形、舉行或者不規則形狀),然後設定這個滑鼠在這個區域裡面的一些行為(behavior),相當的方便.
但是,問題來了,我在Delphi裡面,是否也有類似這樣的工具可以讓我在某一個圖形上面圈選某一個特定的區域,然後設定該區域的行為(behavior)呢?
真好, 加班五天後終於將工作完成的感覺真好, 現在我又有時間舉例子了, 下列的步驟是一個作法(以 Delphi 1.0實作):
![]() |
1. File | New Project |
![]() |
2. 在 Form1 中安排一個 TImage, 並指定一張圖片 |
![]() |
3. 在 Form1 中 Image1 的位置中, 重疊放置一個 TShape |
![]() |
4. with Shape1:
set Brush.Style = bsClear set Pen.Style = psClear set Cursor = crCross |
![]() |
5. 為 Shape1 寫 OnMouseUp 事件
procedure TForm1.Shape1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ShowMessage('Click'); end; |
![]() |
6. 執行這個程式 |
說穿了, 就是在 Image1 上放置一個 Shape, 由於 Shape的 pen 與 brush 都是 clear, 因此形成透明而可以看到疊在下面的圖片, 事實上, 滑鼠指標的改變與click 都是針對 Shape; 如果要再作變化, 在圖片與Shape 之間再夾一個圖片, 不過暫時將它的 Visible 屬性設為假值,等到滑鼠按下時, 讓這個夾心圖形顯示出來, 利用這些技巧,可以讓畫面多很多有趣的變化
另外,假如像是畫流程圖的工具程式,可以利用動態產生元件的方式, 在工作底稿上生成一些元件, 存檔或日後開啟舊檔時, 以類似 TStream 的方式(或自訂一種檔案格式),將工作底稿的狀態存檔或還原, 不過, 這牽涉到複雜的資料結構與元件寫作, 說來就話長了, 如果您的程式不複雜的話, 以上述的例子應該是很實用的技巧
首頁 | 學習筆記 | 主題公園 | 軟體下載 | 關於本站 | 討論信群 | 相約下次 |