程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 第十九章-Delphi自定義部件開發(四)(1)

第十九章-Delphi自定義部件開發(四)(1)

編輯:Delphi

19.3.2 創建圖形部件 

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

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

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

● 創建和注冊部件

● 公布(publishing)繼承的屬性

● 增加圖形功能

19.3.2.1 創建和注冊部件

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

● 建立名為Shapes的部件單元

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

● 在Component Palette的Samples頁上注冊TSampleShape

unit Shapes

intertace

use SysUtils, WinTypes, WinProcs, Messages, Classes,

Graphics,Controls,Forms;

type

TSampleShape=class(TGraphicControl)

end;

implementation

procedure Register;

begin

RegisterComponents('Samples',[TSampleShape]);

end;

end.

19.3.2.2 公布繼承的屬性

一旦決定了部件類型,就能決定在父類的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控制具有通過鼠標和拖放與用戶交互的能力。

19.3.2.3 .增加圖形能力

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

● 決定畫什麼

● 怎樣畫部件圖形

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved