熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

DELPHI基礎教程:Delphi自定義部件開發(四)[1]

2022-06-13   來源: Delphi編程 

   創建圖形部件

  圖形控制是一類簡單的部件因為純圖形部件從不需要得到鍵盤焦點所以它沒有也不要窗口句柄包含圖形控制的應用程序用戶仍然可以用鼠標操作控制但沒有鍵盤界面

  在本例中提供的圖形部件是TShapeShape部件位於Component Palette的Additional頁本例中的Shape部件有所不同因此稱其為TSampleShape

  創建圖形部件需要下列三個步驟

  ● 創建和注冊部件

  ● 公布(publishing)繼承的屬性

  ● 增加圖形功能

   創建和注冊部件

  每個部件的創建都從相同的方式開始在本例中如下

  ● 建立名為Shapes的部件單元

  ● 從TGraphicControl 繼承將新部件稱為TSampleShape

  ● 在Component Palette的Samples頁上注冊TSampleShape

  unit Shapes

  intertace

  use SysUtils WinTypes WinProcs Messages Classes

  GraphicsControlsForms;

  type

  TSampleShape=class(TGraphicControl)

  end;

  implementation

  procedure Register;

  begin

  RegisterComponents(Samples[TSampleShape])

  end;

  end

   公布繼承的屬性

  一旦決定了部件類型就能決定在父類的protected部分聲明哪些屬性和事件能為用戶可見TGraphicControl已經公布了所有作為圖形控制的屬性因此只需公布響應鼠標和拖放事件的屬性

  type

  TSampleShape=class(TGraphicControl)

  published

  property DragCursor;

  property DragMode;

  property OnDragDrop;

  property OnDragOver;

  property ONEndDrag;

  property OnMouseDown;

  property OnMouseMove;

  property OnMouseup;

  end;

  這樣該Shape控制具有通過鼠標和拖放與用戶交互的能力

   增加圖形能力

  一旦你聲明了圖形部件並公布了繼承的屬性就可以給部件增加圖形功能這時需要知道兩點

  ● 決定畫什麼

  ● 怎樣畫部件圖形

  在Shape控制的例子中需要增加一些能使用戶在設計時改變形狀的屬性

   決定畫什麼

  圖形部件通常都具有改變外觀的能力圖形控制的外觀取決於其某些屬性的結合例如Gauge控制具有決定其形狀方向和是否圖形化地顯示其過程的能力同樣Shape控制也應有決定顯示各種形狀的能力

  給予Shape控制這種能力增加名為Shape的屬性這需要下列三步

  ● 聲明屬性類型

  ● 聲明屬性

  ● 編寫實現方法

  ⑴ 聲明屬性類型

  當聲明一個用戶自定義類型的屬性時必須首先聲明屬性類型最普通地用於屬性的自定義類型是枚舉類型

  對Shape控制來說需要聲明一個該控制能畫形狀的枚舉下面是枚舉類型的聲明

  type

  TSampleShapeType=(sstRectangle sstSquare sstRoundRect

  sstRoundSquare sstEllipse sstCircle)

  TSampleShape = class(TGraphicControl)

  end;

  這樣就可以用該類型來聲明屬性

[]  []  []  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/25109.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.