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

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

?? delphi之快速設計(程序設計篇) (2001年4月5日).txt

?? delphi 編程技巧
?? TXT
字號:
Delphi之快速設計(程序設計篇) (2001年4月5日) 

網友更新  分類:數據庫   作者:nil  推薦:erudition   閱讀次數:349  
(http://www.codesky.net)  

--------------------------------------------------------------------------------
*本文涉及的所有代碼均在WinNt 4、Delphi4 C/S下正確運行通過。
由于Delphi采用了真正的完全面向對象方法、當今世界最快的編譯器以及領先的數據庫技術,特別是她對Windows API的完全兼容,出色的代碼自動生成能力……人們已經看到,在短短的幾年當中,Delphi已在眾多的開發工具中脫穎而出!正是Delphi的諸多優秀品質,使程序員能在很短的時間內開發出極具專業水準的運用軟件,而所做的工作卻是相當的少!
正所謂Let's us make better!我們應怎樣充分利用Delphi的優勢來更加快速地進行程序設計程序呢?
一、充分利用代碼完全共享(句檳):
我們這樣做的目的不僅僅是為了“偷懶”,這也是優化程序代碼的一種方法。當然,首先要考慮的是能不能共享(這很簡單,看看是否包含在該事件的下拉集合中),其次是要注意的是共享后有沒有“麻煩”,因為正確是第一步,在保證正確的情況下才有必要去追求優化!
比如:我們在用戶刪除數據前給出一確認消息:
procedure TForm1.Table1BeforeDelete(DataSet: TDataSet);
begin
//確認刪除記錄
if MessageBox(handle,'確實要刪除當前記錄嗎?','確認',MB_IconQuestion+MB_YesNo)=IDNO then
Abort;
end;
那么,你只要愿意讓用戶在刪除數據記錄前進行確認均可在TDataSet.BeforeDelete事件(Table2的BeforeDelete,Table3的BeforeDelete……)中完全共享這段代碼。好運不會天天有,在有的時候就不這么直接、簡單了……

二、充分利用Delphi的強制轉換:
“As”這個單詞不僅僅在英語中用處極大,在Delphi中亦然!當我們想為數個“同類”組件共享代碼時,即可發揮她的巨大作用:我們只需為其中一個組件編寫代碼即可。
比如:想讓一組文本編輯框在得到輸入焦點時背景顏色變為茶色,失去焦點是恢復系統顏色,我們可以如此共享代碼(讓每個文本編輯框的事件公用以下代碼):
procedure TForm1.Edit1Enter(Sender: TObject);
begin
(Sender as TEdit).color:=ClTeal; //得到輸入焦點
end;

procedure TForm1.Edit1Exit(Sender: TObject);
begin
(Sender as TEdit).color:=ClWindow; //失去輸入焦點
end;

三、不起眼的Tag屬性:
上面的例子似乎有點太特殊了,萬一我只對其中某些組件特別關照怎么辦?仍以上面的為例,比如其中有兩個文本輸入框需要輸入數字,為引用戶注意,得到焦點時顏色變為蘭色,但我仍然然不想為每個組件分別寫代碼。
要解決這個問題可利用組件的Tag屬性,先為要特別處理的組件分配非零、不等的Tag(必須說明的Delphi不會檢查Tag值是否相等,設計時自己掌握);然后如下編寫代碼,就可依然實現共享:
procedure TForm1.Edit1Enter(Sender: TObject);
begin
case (Sender as TEdit).Tag of
10,20:(Sender as TEdit).Color:=clBlue //輸入數字的文本框
else
(Sender as TEdit).Color:=clTeal; //其余文本框
end;
end;

四、充分利用Delphi的CodeInsight技術: 
(以下言論均假設在Delphi的默認條件之下)
1、利用Self關鍵字:
也許有人以為我搞錯了!其實,這里要向大家介紹的是筆者(因記性太差)“慣犯”的又一“伎倆”。在有的時候,我們可能記不準組件的確切名字(Name)了,這時你要是再返回窗體表格去確認一遍的話(大多數的朋友應該是這樣的)未免有點太對不起時間了,此時你要是利用Self就特別省力,因為Self在Delphi中是顯式地引用該組件所在的窗體,因此,我們可以輸入Self后加一逗點以此激活Delphi的Code Completion,此時系統會立即為你顯示一包含該窗體所有組件及窗體本身屬性的下拉列表,你從中選擇所需組件即可。這樣,就避免了來回切換窗體表格的這一工作量。
2、利用代碼補缺(Code Completion):
我們現在再也沒有必要讓自己去記憶太多的參數細節了,因為有了Delphi的代碼補缺功能。在具體解釋之前,還要羅嗦一點,Delphi的Code Completion默認的快捷鍵會與我們已用的某些快捷鍵沖突(如Ctrl+Space就與我們打開、關閉漢字輸入法的快捷鍵沖突),因此請先解決這個問題。
當然,Code Completion一般會自動激活,但是不要以為就萬事大吉了,本人認為Delphi的此項技術應向VB學習,此言怎講?舉例來說吧:當你輸入StrToint(edit1.后,Delphi不會自動顯示edit1的屬性,此時你就將用Ctrl+Space來激活Code Completion,特別是嵌套很深的時候,Delphi似乎也糊涂了。
3、利用代碼參數(Code Parameters):
激活快捷鍵是Ctrl+Shift+Space。這項功能也是Delphi自動實現的,正如上述所言,當我們來回切或是光標移走時,這項功能也就隨之消失了,當我們需要確認該函數的具體參數時即可以此快捷鍵打開。
4、利用代碼模板(Code Templates): 
這項技術再次體現了Inprise公司Delphi開發組的工程師們高超的技術及處處為用戶著想的高尚品德!(只是不希望再聽到又有人被微軟挖走的消息)
激活快捷鍵是Ctrl+J。此項功能實現機制與代碼補缺的差不多,只是她不是自動的,當然最另令人激動的一面是用戶可以定義自己的模板。比如筆者定義的一個模板:快捷-〉“msg”;代碼-〉“MessageboxMessageBox(
handle,'|','',MB_Icon...+MB_...);”,只要一輸入msg然后按Ctrl+J整個代碼“脫穎而出”,并把光標幫我移到我該補充輸入的地方,簡直爽呆了!
注意:如果你為自己定義了很多可愛的模板舍不得丟掉的話,不妨把...Delphi4\Bin目錄下的Delphi32.dci文件備份,重新安裝Delphi后以此文件覆蓋即可。

五、能偷懶時就偷懶:
這個話題本不應該寫在這里,但還是忍不住……
1、能利用對象觀察器直接設置且不會影響程序正常運行的就沒有必要去寫代碼:
由于這個話題涉及面太廣,此處僅舉一例說明:比如要在Delphi4中實現在狀態欄上的自動提示,又沒有太“苛
刻”的條件時,我們沒有必要再像以前一樣,先定義一個過程(ShowMyHint(...)),然后在程序初始化的地方
把她賦值給TApplication的OnHin事件。因為只需將狀態條的AutoHint屬性設為True即可!當然,她似乎只能在
第一個Panel上顯示(這就是沒有太“苛刻”的條件時)。當然,怪我羅嗦,有的朋友居然不知道Delphi的Hint
屬性由兩部分組成,此處不是說話之地,感興趣請到筆者的個人主頁上去遛遛www.zg169.net/~delphiok(剛開
張,東西還不多)。
2、節省代碼:
能夠少寫代碼就沒有必要多寫代碼,能夠精煉就不要冗余:
比如,以下的兩段代碼實現的功能完全相同,你喜歡用哪段?
代碼段一:
if ToolButton1.Down=true then
begin
Dbgrid1.show;
DelBtn.Enabled:=true;
end
else
begin
Dbgrid1.Hide;
DelBtn.Enabled:=false;
end;
代碼段二:
Dbgrid1.Visible:=ToolButton1.Down;
DelBtn.Enabled:=ToolButton1.Down;
因此,我們寫完程序后,不要僅僅追求程序調通,不妨也給程序代碼炸炸油。
3、節省變量:
有的程序員在不需要變量的地方定義了變量,在需要變量的地方定義了多余的變量,我個人認為這都不是好的
習慣,特別是動不動就定義全局變量更是值得商榷。有的讀者可能認為我是一個守財奴,現在的處理器速度都
什么年代了……但我只簡單的給你展示一段代碼你就明白了:
procedure TForm1.Button1Click(Sender: TObject);
Var s1,s2:String;
begin
s1:=Inputbox('數據','請輸入用戶姓名','');
if s1<>'' then
begin
Btn_Name.Enabled:=True;
s2:=Inputbox('數據','請輸入用戶住址','');
if s2<>'' then
Btn_Adress.Enabled:=True;
end;
end;

當然,本文的這些小例子僅僅從側面表述了筆者的一些個人觀點,要充分體現Delphi的高效性,這些還遠遠不夠!限于篇幅,關于數據庫以及其他高級話題在這里均未涉及,特別是數據庫編程方面,Delphi提供了相當的靈活性!當然,萬變不離其宗,只要隨時注意Delphi是完全面向對象的,有對象就考慮其屬性、事件、方法、繼承、引用等等。 
 
 


--------------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人一道本在线| 色综合天天天天做夜夜夜夜做| 欧美日韩精品一区视频| 亚洲欧美日韩综合aⅴ视频| 国产91精品精华液一区二区三区 | 99re这里都是精品| 国产亚洲欧美日韩在线一区| 美女被吸乳得到大胸91| 欧美一级艳片视频免费观看| 亚洲成人av福利| 欧美日韩在线三级| 亚洲国产精品嫩草影院| 在线观看日韩av先锋影音电影院| 亚洲乱码国产乱码精品精小说| 99久久久无码国产精品| 国产精品你懂的在线欣赏| 成人h动漫精品| 国产精品久久久久久久久动漫| 成人av影视在线观看| 国产精品高潮呻吟久久| 色综合久久88色综合天天免费| 中文字幕佐山爱一区二区免费| 成人毛片在线观看| 国产精品久久久久久户外露出 | 欧美日韩大陆在线| 五月婷婷综合网| 欧美一区二区在线不卡| 精品一区二区三区蜜桃| 久久蜜桃av一区二区天堂| 国产精品一区专区| 欧美国产欧美综合| 99久久精品国产麻豆演员表| 樱花草国产18久久久久| 欧美在线观看视频在线| 青青草成人在线观看| 欧美videos大乳护士334| 国产一区二区毛片| 国产精品乱码人人做人人爱| 色综合久久中文字幕| 夜夜嗨av一区二区三区网页| 欧美男同性恋视频网站| 蜜臀99久久精品久久久久久软件| 久久久精品一品道一区| 99久久国产综合色|国产精品| 亚洲福利电影网| 精品欧美一区二区在线观看| 国产传媒一区在线| 亚洲欧美电影院| 欧美精品精品一区| 国内外精品视频| 亚洲视频在线一区二区| 欧美女孩性生活视频| 国产一区二区不卡老阿姨| 欧美国产精品一区二区三区| 在线一区二区三区四区| 日韩成人一级片| 久久久久久久综合| 91久久精品日日躁夜夜躁欧美| 日韩和欧美一区二区三区| 国产网红主播福利一区二区| 在线观看av不卡| 久久精工是国产品牌吗| 日韩一区中文字幕| 欧美精品 国产精品| 国产传媒欧美日韩成人| 亚洲电影一区二区三区| 久久久国产综合精品女国产盗摄| 91国偷自产一区二区三区观看| 久久精品国产澳门| 最新中文字幕一区二区三区| 91精品国产综合久久婷婷香蕉 | 成人美女在线观看| 日韩av中文字幕一区二区三区| 国产亚洲欧美激情| 欧美日韩精品二区第二页| 国产伦精品一区二区三区在线观看 | 中文幕一区二区三区久久蜜桃| 欧美亚洲综合另类| 国产精品系列在线观看| 午夜影视日本亚洲欧洲精品| 中文字幕av在线一区二区三区| 6080国产精品一区二区| 成人黄色在线看| 日韩精品一二三区| 国产精品理论在线观看| 欧美电影免费观看完整版| 91高清在线观看| 国产精品伊人色| 奇米精品一区二区三区四区| 国产精品伦理一区二区| 精品国产乱码久久久久久图片| 欧美在线观看一二区| 波波电影院一区二区三区| 免费高清在线视频一区·| 一区二区在线观看视频| 中文字幕成人av| 久久免费看少妇高潮| 91精品综合久久久久久| 欧美婷婷六月丁香综合色| 成人av在线影院| 激情五月婷婷综合| 日日欢夜夜爽一区| 一区二区三区鲁丝不卡| 国产精品久久久久久久午夜片| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美日韩国产bt| 91在线视频网址| 国产99久久精品| 久久99国产精品免费| 热久久一区二区| 午夜久久久久久久久久一区二区| 亚洲美女屁股眼交| 国产精品久久久久影院老司 | 日韩免费高清电影| 欧美日韩国产高清一区二区| 91官网在线免费观看| 91亚洲精品久久久蜜桃| 国产99久久久久| 国产精品一区久久久久| 久久99精品久久久久久动态图| 图片区日韩欧美亚洲| 亚洲一区二区三区视频在线| 亚洲日本成人在线观看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 久久影院电视剧免费观看| 日韩一级片网址| 3751色影院一区二区三区| 精品视频免费看| 欧美美女一区二区在线观看| 欧美无砖专区一中文字| 欧美亚洲综合久久| 欧美制服丝袜第一页| 在线观看日韩电影| 欧美三级电影在线看| 欧美日韩精品一区二区三区四区 | 国产精品国产三级国产| 国产精品九色蝌蚪自拍| 亚洲品质自拍视频| 亚洲精品视频在线观看免费| 亚洲精品国产高清久久伦理二区| 亚洲美女偷拍久久| 亚洲一卡二卡三卡四卡无卡久久 | 国产一区二区免费视频| 国产激情一区二区三区四区 | 一区二区三区久久久| 亚洲一区二区视频在线观看| 性做久久久久久免费观看| 日韩精品一级二级| 精品在线播放午夜| 国产一区二区精品久久| 成人午夜av在线| 91色在线porny| 欧美在线观看18| 在线播放欧美女士性生活| 日韩亚洲欧美综合| 精品免费国产一区二区三区四区| 久久久久久久综合狠狠综合| 国产精品国产三级国产专播品爱网| 亚洲精品日韩专区silk| 午夜精品久久久久久久99樱桃| 日韩二区在线观看| 国产一区二区三区香蕉| 99精品久久免费看蜜臀剧情介绍| 日本韩国精品一区二区在线观看| 欧美日韩aaaaaa| 欧美大片在线观看一区| 国产午夜精品一区二区三区四区 | 国产精品灌醉下药二区| 亚洲蜜桃精久久久久久久| 日韩国产高清影视| 国产一区二区三区美女| 91捆绑美女网站| 91精品福利在线一区二区三区| 久久―日本道色综合久久| 日韩伦理av电影| 日韩精品电影在线观看| 国产一区二区三区在线看麻豆| 97久久超碰国产精品电影| 在线电影欧美成精品| 久久久国产午夜精品| 一区二区三区在线免费| 免费看欧美女人艹b| 成人免费看片app下载| 欧美性大战xxxxx久久久| 2020国产精品久久精品美国| 中文字幕精品综合| 亚洲国产精品视频| 国产精品77777| 欧美日韩一级片网站| 26uuu国产在线精品一区二区| 亚洲私人黄色宅男| 美国欧美日韩国产在线播放| 91美女视频网站| 欧美α欧美αv大片| 亚洲精品福利视频网站| 久久99在线观看| 欧美四级电影在线观看| 欧美岛国在线观看| 亚洲综合一区在线| 国产老女人精品毛片久久|