亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 《新》編寫控件的高級技巧修改稿 (2001年2月22.txt

?? 自己對DELPHI學習的一點體會
?? TXT
字號:
《新》編寫控件的高級技巧<修改稿> (2001年2月22日) 

網友更新  分類:控件制作   作者:宋爽  推薦:ss   閱讀次數:729  
(http://www.codesky.net)  

--------------------------------------------------------------------------------
在DELPHI中編寫控件,即如何定義一個新的屬性類型,來實現自己的目的?例如有的控件在DELPHI的IDE中的屬性窗口中加上作者的信息或者雙擊控件彈出關于窗口等。下面就以“關于”窗口來說明該技巧的實現方法。
先定義一個新的控件“TTestComponent”。所有代碼均在里面加入。
1、讓我們先定義一個新的屬性類型“TTestAbout”。
type
TTestAbout = class(TPropertyEditor)
public
procedure Edit; override;
function GetAttributes: TPropertyAttributes; override;
function GetValue:string; override;
end;

{ TsongAbout }
當用戶雙擊或單擊帶有3個小圓點的按扭時,EDIT方法被調用。下面的TquickAboutBox為事先做好的窗體單元。
procedure TTestAbout.Edit;
var
dd:TQuickAboutBox;
begin
inherited;
try
dd:=TQuickAboutBox.Create(Application);
dd.ShowModal;
finally
dd.free ;
end;
end;
GetAttributes方法返回一個TpropertyAttributes集,指明屬性編輯器的一些特性,決定了屬性是否有下拉列表、是否能多重選擇等。我們指定為[paDialog],使對象檢查器中出現(厎)按扭。
function TTestAbout.GetAttributes: TPropertyAttributes;
begin
result:=[paDialog];
end;
GetValue方法返回該屬性出現在對象檢查器中出現的字符串。
function TTestAbout.GetValue: string;
begin
result:='About';
end;
2、下面是實現在DELPHI的IDE環境下鼠標右擊控件彈出的菜單加入新的命令。
type
TTesteditor = class(Tdefaulteditor)
public
function getverb(index:integer):string;override;
function getverbcount:integer;override;
procedure executeVerb(index:integer);override;
procedure edit;override;
end;
{ Tmyeditor }
當用戶雙擊一個控件時,EDIT方法被調用,告訴控件做的事件。
procedure Testeditor.edit;
var
dd:TQuickAboutBox;
begin
inherited;
try
dd:=TQuickAboutBox.Create(Application);
dd.ShowModal;
finally
dd.free ;
end;
end;
當用戶選擇窗體編輯器的彈出菜單中為控件定義的菜單項時,executeVerb方法 被調用,他傳遞一個從0開始的Index參數。本方法作為TcomponentEditor的EDIT方法的缺省動作被調用
procedure Testeditor.executeVerb(index: integer);
begin
inherited;
EDIT;
end;
當用戶右鍵單擊控件時Getverb方法被調用,他根據Index參數返回需要被添加到彈出菜單上項目的字符值。
function Testeditor.getverb(index: integer): string;
begin
case index of
0:result:='關于(&A)...';
end;
end;
每當用戶右鍵單擊控件時調用GetverbCount方法,它返回需要添加到窗體編輯器的彈出菜單里的菜單項數目,缺省值為0。
function Testeditor.getverbcount: integer;
begin
result:=1;
end;

3、控件中如何調用此屬性。
type
TMyAbout=Class(TClassProperty)
end;
type
TTestComponent = class(TComponent)
private
Ftest: TMyAbout;
卨och卲ar published
property sabout:TMyAbout read Ftest ;
卨och卲ar end;
卨och卲ar 
4、最重要的一步是要分別注冊它們。
procedure Register;
begin
RegisterComponents('MyAbout', [TTestComponent]);
RegisterPropertyEditor(TypeInfo( TMyAbout ), TTestComponent, '', TTestAbout );
RegisterComponentEditor(TTestComponent, TTestEditor);
end;

注冊控件編輯器函數 procedure RegisterComponentEditor(ComponentClass:TcomponentClass; ComponentEditor: TcomponentEditorClass);第一個參數是控件類名,第二個是控件編輯器類名。
注冊控件屬性編輯器函數procedure RegisterPropertyEditor(PropertyType: PTypeInfo; ComponentClass: TClass; const PropertyName: string; EditorClass: TPropertyEditorClass); 第一個參數是一個指針,可以把屬性類型強制轉換為TypeInfo得到;第二個是所適用的空間類型。如為NULL,則所適用于第一個參數所指的所有屬性;第三是所適用的屬性名; 第四是給定屬性的屬性編輯器類型。
在控件編譯器中編譯安裝之后,就可以應用剛才做的控件了。《此程序在Windows98,Delphi 5.0下調試通過。》
江蘇常州托普軟件園研究院開發一室 宋爽 [213000] songshuang@topgroup.com.cn  
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区永久视频免费观看| 91久久香蕉国产日韩欧美9色| 欧美色图天堂网| 欧美精品一区二区三区在线| 一区2区3区在线看| 国产很黄免费观看久久| 欧美一区二区三区免费观看视频| 亚洲欧美日韩中文字幕一区二区三区 | 国产欧美精品一区二区色综合朱莉| 综合久久久久久| 国产综合久久久久久鬼色| 欧美日韩国产高清一区二区三区 | 国产精品久久久久久福利一牛影视 | 粉嫩av一区二区三区| 欧美另类变人与禽xxxxx| 综合分类小说区另类春色亚洲小说欧美| 日韩制服丝袜先锋影音| 色综合欧美在线视频区| 欧美国产日韩亚洲一区| 激情文学综合丁香| 日韩一区二区视频在线观看| 亚洲午夜羞羞片| 91久久精品网| 亚洲欧美在线观看| 国产不卡一区视频| 久久久久久免费| 精品一区二区三区在线播放| 欧美一级专区免费大片| 视频在线观看一区二区三区| 欧美色综合天天久久综合精品| 亚洲日本中文字幕区| av资源站一区| 成人免费一区二区三区在线观看 | 午夜成人免费电影| 色婷婷综合久久| 亚洲免费高清视频在线| caoporn国产精品| 亚洲欧洲精品一区二区三区不卡 | 蜜臀久久久99精品久久久久久| 欧美猛男超大videosgay| 午夜久久福利影院| 欧美剧情电影在线观看完整版免费励志电影| jlzzjlzz欧美大全| 国产欧美精品一区二区色综合| 韩国精品在线观看| 久久青草欧美一区二区三区| 国产精品538一区二区在线| 国产午夜一区二区三区| 懂色av一区二区三区蜜臀| 中文字幕精品三区| 波多野结衣中文字幕一区二区三区| 亚洲国产精品v| 97se亚洲国产综合在线| 夜夜嗨av一区二区三区中文字幕 | 91在线视频播放| 亚洲精品国产品国语在线app| 欧美在线影院一区二区| 亚洲国产日日夜夜| 欧美一级免费大片| 国产一区二区三区久久久| 国产校园另类小说区| 97超碰欧美中文字幕| 一区二区三区日韩精品| 欧美一区二区三级| 国产剧情一区二区三区| 日本一区二区三区在线观看| 色悠悠亚洲一区二区| 午夜成人免费电影| 亚洲精品在线一区二区| 成人一级片在线观看| 亚洲综合自拍偷拍| 日韩欧美www| 粉嫩久久99精品久久久久久夜 | 欧美sm极限捆绑bd| 国产黄色91视频| 亚洲精品免费一二三区| 91精品国产综合久久小美女| 国产精一品亚洲二区在线视频| 亚洲欧洲成人自拍| 在线播放国产精品二区一二区四区| 久久精品国产**网站演员| 国产精品乱人伦| 欧美另类变人与禽xxxxx| 国产麻豆成人传媒免费观看| 亚洲乱码国产乱码精品精小说| 69堂亚洲精品首页| 国产成人啪午夜精品网站男同| 夜夜嗨av一区二区三区| 精品久久久久久无| 色婷婷亚洲婷婷| 精品一区二区久久久| 亚洲色大成网站www久久九九| 欧美一区二区在线看| 成人永久看片免费视频天堂| 亚洲mv在线观看| 中文成人综合网| 6080亚洲精品一区二区| jizzjizzjizz欧美| 美日韩一区二区三区| 亚洲三级小视频| 精品播放一区二区| 欧美亚洲一区三区| 成人小视频在线| 免费观看成人鲁鲁鲁鲁鲁视频| 国产精品麻豆视频| 日韩欧美黄色影院| 欧美吻胸吃奶大尺度电影| 国产麻豆精品久久一二三| 亚洲a一区二区| 亚洲天堂av一区| 久久精品视频在线看| 欧美群妇大交群中文字幕| av网站一区二区三区| 精品一区二区三区在线视频| 亚洲成av人综合在线观看| **欧美大码日韩| 久久精品网站免费观看| 欧美一区二区精美| 色噜噜狠狠色综合中国| 成人深夜福利app| 国产主播一区二区| 日产国产高清一区二区三区| 亚洲精选免费视频| 国产精品免费视频观看| 精品美女被调教视频大全网站| 在线观看视频91| 99精品在线免费| 国产suv精品一区二区6| 韩国女主播成人在线观看| 日日欢夜夜爽一区| 亚洲自拍偷拍图区| 亚洲啪啪综合av一区二区三区| 国产无一区二区| 欧美tickling网站挠脚心| 4438x亚洲最大成人网| 欧美性xxxxxxxx| 色一情一乱一乱一91av| 成人毛片老司机大片| 国产成人免费视频| 国产乱国产乱300精品| 久久99精品国产.久久久久久| 日本一不卡视频| 天天射综合影视| 亚洲gay无套男同| 亚洲国产精品久久久久秋霞影院 | 国产精品灌醉下药二区| 久久精品夜色噜噜亚洲aⅴ| 精品91自产拍在线观看一区| 日韩精品一区在线| 欧美一级欧美一级在线播放| 91精品国产全国免费观看| 欧美老肥妇做.爰bbww视频| 欧美日韩精品专区| 欧美日韩综合一区| 欧美日韩国产美女| 欧美高清视频不卡网| 制服丝袜亚洲播放| 91精品国产麻豆| 日韩三级中文字幕| 日韩免费成人网| 精品国产第一区二区三区观看体验| 欧美va天堂va视频va在线| 欧美精品一区二区三区四区| 久久综合精品国产一区二区三区| 久久综合九色欧美综合狠狠| 久久久一区二区三区| 国产亚洲一区二区三区在线观看| 久久蜜桃一区二区| 国产欧美一区在线| 中文字幕一区二区三区四区不卡 | 亚洲精品免费一二三区| 亚洲专区一二三| 日韩国产欧美视频| 激情综合色播五月| 丰满亚洲少妇av| 色婷婷亚洲精品| 91精品国产手机| 久久久久久久久伊人| 国产精品福利在线播放| 亚洲影院在线观看| 美女视频黄久久| 高清免费成人av| 色噜噜狠狠色综合中国| 正在播放一区二区| 久久午夜羞羞影院免费观看| 国产亚洲综合av| 亚洲视频免费观看| 五月天丁香久久| 国产一区二区三区精品视频| 91影视在线播放| 欧美老肥妇做.爰bbww| 欧美精品一区二区三区视频| 国产精品不卡视频| 日日欢夜夜爽一区| 国产成人精品免费视频网站| 91麻豆自制传媒国产之光| 欧美一区二区三区在线视频| 国产日韩欧美激情| 午夜伊人狠狠久久| 国产乱子轮精品视频|