人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開(kāi)發(fā)教程 > 詳細(xì)頁(yè)面

第109章 Delphi自定義部件開(kāi)發(fā)(4)

第109章 Delphi自定義部件開(kāi)發(fā)(4)

更新時(shí)間:2022-07-09 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

19.3.2 創(chuàng)建圖形部件 

  圖形控制是一類簡(jiǎn)單的部件。因?yàn)榧儓D形部件從不需要得到鍵盤(pán)焦點(diǎn),所以它沒(méi)有也不要窗口句柄。包含圖形控制的應(yīng)用程序用戶仍然可以用鼠標(biāo)操作控制,但沒(méi)有鍵盤(pán)界面。

  在本例中提供的圖形部件是TShape。Shape部件位于Component Palette的Additional頁(yè)。本例中的Shape部件有所不同,因此稱其為T(mén)SampleShape。

  創(chuàng)建圖形部件需要下列三個(gè)步驟:

  ● 創(chuàng)建和注冊(cè)部件

  ● 公布(publishing)繼承的屬性

  ● 增加圖形功能 

  19.3.2.1 創(chuàng)建和注冊(cè)部件 

  每個(gè)部件的創(chuàng)建都從相同的方式開(kāi)始,在本例中如下:

  ● 建立名為Shapes的部件單元

  ● 從TGraphicControl 繼承,將新部件稱為T(mén)SampleShape

  ● 在Component Palette的Samples頁(yè)上注冊(cè)TSampleShape 

  unit Shapes 

  intertace 

  use SysUtils, WinTypes, WinProcs, Messages, Classes,

  Graphics,Controls,F(xiàn)orms; 

  type

  TSampleShape=class(TGraphicControl)

  end; 

  implementation 

  procedure Register;

  begin

  RegisterComponents('Samples',[TSampleShape]);

  end; 

  end. 

  19.3.2.2 公布繼承的屬性 

  一旦決定了部件類型,就能決定在父類的protected部分聲明哪些屬性和事件能為用戶可見(jiàn)。TGraphicControl已經(jīng)公布了所有作為圖形控制的屬性,因此,只需公布響應(yīng)鼠標(biāo)和拖放事件的屬性。 

   type

  TSampleShape=class(TGraphicControl)

  published

  property DragCursor;

  property DragMode;

  property OnDragDrop;

  property OnDragOver;

  property ONEndDrag;

  property onMouseDown;

  property onMouseMove;

  property onMouseup;

  end; 

  這樣,該Shape控制具有通過(guò)鼠標(biāo)和拖放與用戶交互的能力。 

  19.3.2.3 .增加圖形能力 

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

  ● 決定畫(huà)什么

  ● 怎樣畫(huà)部件圖形 

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

  1. 決定畫(huà)什么

  圖形部件通常都具有改變外觀的能力,圖形控制的外觀取決于其某些屬性的結(jié)合,例如Gauge控制具有決定其形狀、方向和是否圖形化地顯示其過(guò)程的能力。同樣,Shape控制也應(yīng)有決定顯示各種形狀的能力.

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

  ● 聲明屬性類型

  ● 聲明屬性

  ● 編寫(xiě)實(shí)現(xiàn)方法 

  ⑴ 聲明屬性類型

  當(dāng)聲明一個(gè)用戶自定義類型的屬性時(shí),必須首先聲明屬性類型。最普通地用于屬性的自定義類型是枚舉類型。

  對(duì)Shape控制來(lái)說(shuō),需要聲明一個(gè)該控制能畫(huà)形狀的枚舉,下面是枚舉類型的聲明: 

  type

  TSampleShapeType=(sstRectangle, sstSquare, sstRoundRect,

  sstRoundSquare, sstEllipse, sstCircle);

  TSampleShape = class(TGraphicControl)

  end;  

  這樣,就可以用該類型來(lái)聲明屬性。

  ⑵ 聲明屬性

  當(dāng)聲明一個(gè)屬性時(shí),通常需要聲明私有域來(lái)保存屬性值,然后描述讀寫(xiě)屬性值的方法。

  對(duì)于Shape控制,將聲明一個(gè)域保存當(dāng)前形狀,然后聲明一個(gè)屬性通過(guò)方法調(diào)用來(lái)讀寫(xiě)域值。 

  type

  TSampleShape=class(TGrahpicControl)

  private

  FShape: TSampleShapeType;

  procedure SetShape(value: TSampleShapeType);

  published

  property Shape: TSampleShapeType read FShape write SetShape;

  end; 

  現(xiàn)在,只剩下SetShape的實(shí)現(xiàn)部分了。

[1] [2] [3]  下一頁(yè)

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 长白| 福清市| 罗甸县| 同德县| 绥化市| 景洪市| 三原县| 闸北区| 美姑县| 冀州市| 克什克腾旗| 横峰县| 通州市| 东乌珠穆沁旗| 娄底市| 绥化市| 尉氏县| 兰溪市| 玛曲县| 兴国县| 漾濞| 河南省| 酒泉市| 濉溪县| 罗江县| 鄂托克前旗| 武山县| 上饶市| 滨州市| 宁津县| 万宁市| 祥云县| 九台市| 临海市| 灯塔市| 施秉县| 界首市| 乌兰察布市| 牟定县| 绥滨县| 张北县|