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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

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

?? 自己對DELPHI學(xué)習(xí)的一點(diǎn)體會
?? TXT
字號:
Delphi之快速設(shè)計(jì)(程序設(shè)計(jì)篇) (2001年4月5日) 

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

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

二、充分利用Delphi的強(qiáng)制轉(zhuǎn)換:
“As”這個(gè)單詞不僅僅在英語中用處極大,在Delphi中亦然!當(dāng)我們想為數(shù)個(gè)“同類”組件共享代碼時(shí),即可發(fā)揮她的巨大作用:我們只需為其中一個(gè)組件編寫代碼即可。
比如:想讓一組文本編輯框在得到輸入焦點(diǎn)時(shí)背景顏色變?yōu)椴枭ソ裹c(diǎn)是恢復(fù)系統(tǒng)顏色,我們可以如此共享代碼(讓每個(gè)文本編輯框的事件公用以下代碼):
procedure TForm1.Edit1Enter(Sender: TObject);
begin
(Sender as TEdit).color:=ClTeal; //得到輸入焦點(diǎn)
end;

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

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

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

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

當(dāng)然,本文的這些小例子僅僅從側(cè)面表述了筆者的一些個(gè)人觀點(diǎn),要充分體現(xiàn)Delphi的高效性,這些還遠(yuǎn)遠(yuǎn)不夠!限于篇幅,關(guān)于數(shù)據(jù)庫以及其他高級話題在這里均未涉及,特別是數(shù)據(jù)庫編程方面,Delphi提供了相當(dāng)?shù)撵`活性!當(dāng)然,萬變不離其宗,只要隨時(shí)注意Delphi是完全面向?qū)ο蟮模袑ο缶涂紤]其屬性、事件、方法、繼承、引用等等。 
 
 


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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区视频在线| 日本精品视频一区二区三区| 91日韩在线专区| 7777女厕盗摄久久久| 国产精品三级电影| 精品在线观看视频| 91成人网在线| 国产精品国产三级国产aⅴ原创| 丝袜美腿成人在线| 99re这里只有精品首页| 久久一日本道色综合| 日本不卡在线视频| 欧美日韩国产首页| 一区二区欧美在线观看| 不卡欧美aaaaa| 久久久夜色精品亚洲| 日本午夜一区二区| 4438x成人网最大色成网站| 洋洋成人永久网站入口| 91麻豆精东视频| 国产精品久久久爽爽爽麻豆色哟哟| 美女视频网站黄色亚洲| 制服丝袜中文字幕一区| 亚洲一区二区av在线| 91污片在线观看| 亚洲天堂成人网| 在线看日本不卡| 亚洲一二三专区| 精品视频在线免费观看| 亚洲大型综合色站| 在线综合+亚洲+欧美中文字幕| 亚洲成人一区二区| 欧美人妇做爰xxxⅹ性高电影| 亚洲第一精品在线| 欧美一级理论性理论a| 日韩中文字幕91| 日韩精品专区在线影院重磅| 麻豆一区二区99久久久久| 欧美videos大乳护士334| 国产精品一区二区三区四区| ww亚洲ww在线观看国产| 国产凹凸在线观看一区二区| 国产精品三级av在线播放| 9人人澡人人爽人人精品| 亚洲精品免费电影| 欧美剧情电影在线观看完整版免费励志电影 | 欧美精品色综合| 日韩电影一二三区| 久久综合狠狠综合久久综合88 | 国产欧美日本一区视频| 99久久精品免费精品国产| 亚洲精品乱码久久久久久| 9191久久久久久久久久久| 九色|91porny| 中文字幕视频一区| 欧美影视一区二区三区| 麻豆久久久久久久| 中文字幕永久在线不卡| 欧美美女一区二区| 国产美女主播视频一区| 亚洲欧美一区二区三区极速播放 | 国产高清精品久久久久| 自拍偷拍亚洲激情| 欧美一级黄色录像| caoporen国产精品视频| 石原莉奈一区二区三区在线观看| 亚洲精品一线二线三线无人区| 99视频有精品| 久久er精品视频| 一区二区中文视频| 日韩欧美在线综合网| av午夜一区麻豆| 日本视频中文字幕一区二区三区| 国产精品久久久99| 欧美一级欧美一级在线播放| 99精品热视频| 国内外精品视频| 亚洲一区二区美女| 中文字幕一区二区三中文字幕| 欧美日本一区二区| 99久久久久久| 国产一区二区三区在线观看精品| 亚洲国产日韩综合久久精品| 国产精品毛片无遮挡高清| 欧美一区二区三区在| 欧美午夜影院一区| eeuss国产一区二区三区| 激情综合色播五月| 视频一区二区三区中文字幕| 亚洲天堂网中文字| 亚洲国产精品av| 精品剧情在线观看| 欧美精品一二三四| 在线精品视频一区二区三四| 成人一区在线看| 国产一区二区精品久久99| 美女视频黄久久| 亚洲v精品v日韩v欧美v专区| 亚洲黄色小说网站| 亚洲欧美日韩一区二区| 国产精品久久久久7777按摩| 久久久久久久综合日本| 精品国产网站在线观看| 日韩一区二区三区免费看| 欧美亚洲国产一区二区三区va | 久久一区二区三区国产精品| 日韩一级免费观看| 欧美一区二区在线看| 欧美日韩亚洲综合在线| 精品视频一区二区三区免费| 91久久一区二区| 欧美视频在线播放| 欧美久久久久久久久中文字幕| 色视频欧美一区二区三区| 99热这里都是精品| 色综合色综合色综合色综合色综合| 粉嫩av一区二区三区在线播放| 国产成人综合自拍| 成人午夜又粗又硬又大| av在线不卡网| 91浏览器在线视频| 欧美日韩二区三区| 欧美一二三在线| 日韩美女在线视频| 国产日韩在线不卡| 国产精品久久久久久久岛一牛影视| 国产精品乱人伦| 亚洲美女淫视频| 日本视频免费一区| 国产精品88av| 91视视频在线观看入口直接观看www | 成人国产在线观看| 欧洲国内综合视频| 91精品国产综合久久蜜臀| 欧美成人三级电影在线| 日本一区二区三区久久久久久久久不 | 色综合久久久久综合| 色婷婷精品大视频在线蜜桃视频| 欧美日精品一区视频| 日韩一区二区麻豆国产| 久久精品日韩一区二区三区| 成人欧美一区二区三区小说 | 成人av在线电影| 色婷婷一区二区| 日韩一区二区三区视频在线观看| 国产校园另类小说区| 亚洲欧美日韩在线| 久久av中文字幕片| www.爱久久.com| 911精品产国品一二三产区| 久久精品无码一区二区三区| 夜夜嗨av一区二区三区四季av| 另类小说图片综合网| 色综合久久久久综合体桃花网| 日韩精品在线一区| 亚洲欧美日韩综合aⅴ视频| 麻豆高清免费国产一区| av高清不卡在线| 日韩精品一区国产麻豆| 亚洲女同一区二区| 国产在线播放一区| 欧美日韩成人综合在线一区二区| 久久久天堂av| 亚洲成人av福利| www.性欧美| www久久精品| 视频在线观看91| 在线看日本不卡| 中文字幕中文在线不卡住| 蜜臀久久99精品久久久画质超高清| gogogo免费视频观看亚洲一| 日韩精品一区二区三区在线播放 | 91网站在线播放| 精品日韩在线观看| 亚洲第一久久影院| 91小视频在线观看| 国产精品女同互慰在线看| 日本不卡123| 欧美色综合网站| 亚洲精品一二三四区| 国产精品18久久久久久久久久久久| 欧美电影影音先锋| 亚洲国产精品一区二区www在线| 波波电影院一区二区三区| 精品国精品国产尤物美女| 天堂成人国产精品一区| 欧美色倩网站大全免费| 亚洲精品中文在线影院| 91一区二区在线| 亚洲欧美色综合| 99精品国产一区二区三区不卡| 日本一区二区成人| 国产伦精品一区二区三区免费| 日韩一区二区免费电影| 麻豆免费看一区二区三区| 91精品一区二区三区在线观看| 亚洲成人资源在线| 欧美精品自拍偷拍| 天天爽夜夜爽夜夜爽精品视频| 欧美这里有精品|