亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

Delphi之快速設計(程序設計篇)

2019-11-18 18:55:40
字體:
來源:轉載
供稿:網友
  • *本文涉及的所有代碼均在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開發組的工程師們高超的技術及處處為用戶著想的高尚品德?。ㄖ皇遣幌M俾牭接钟腥吮晃④浲谧叩南ⅲ?BR>激活快捷鍵是Ctrl+J。此項功能實現機制與代碼補缺的差不多,只是她不是自動的,當然最另令人激動的一面是用戶可以定義自己的模板。比如筆者定義的一個模板:快捷-〉“msg”;代碼-〉“MessageboxMessageBox(
    handle,'|',',MB_Icon...+MB_...);”,只要一輸入msg然后按Ctrl+J整個代碼“脫穎而出”,并把光標幫我移到我該補充輸入的地方,簡直爽呆了!
    注意:如果你為自己定義了很多可愛的模板舍不得丟掉的話,不妨把...Delphi4Bin目錄下的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是完全面向對象的,有對象就考慮其屬性、事件、方法、繼承、引用等等。

  • 上一篇:Delphi實用編程經驗二則

    下一篇:從delphi6,kylix看borland的未來發展

    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    學習交流
    熱門圖片

    新聞熱點

    疑難解答

    圖片精選

    網友關注

    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    91亚洲国产精品| 美日韩精品免费观看视频| 国产精品视频xxx| 国语自产偷拍精品视频偷| 亚洲japanese制服美女| 日本免费在线精品| 久久综合久久88| 国产69精品久久久久99| 性欧美xxxx| 国产精品第七影院| 亚洲一区二区三区成人在线视频精品| 欧美午夜精品久久久久久人妖| 国产亚洲欧美日韩精品| 成人国内精品久久久久一区| 国产不卡av在线| 一本一本久久a久久精品牛牛影视| 亚洲春色另类小说| 91在线视频九色| 欧美久久精品午夜青青大伊人| 91精品久久久久久久久中文字幕| 欧美大片在线看| 亚洲成人久久网| 国产在线拍偷自揄拍精品| 国产精品尤物福利片在线观看| 国产中文日韩欧美| 亚洲精美色品网站| 欧美俄罗斯乱妇| 国产日产欧美a一级在线| 精品视频偷偷看在线观看| 亚洲人成绝费网站色www| 日韩av不卡在线| 国产成人亚洲综合青青| 人人爽久久涩噜噜噜网站| 日日摸夜夜添一区| 欧美国产第一页| 亚洲黄色有码视频| 91在线观看免费观看| 成人免费直播live| 欧美日韩国产精品一区二区不卡中文| 国产一区二区av| 欧美精品中文字幕一区| 久久久人成影片一区二区三区观看| 日韩精品中文字幕在线| 国产精品美女久久| 亚洲精品日韩激情在线电影| 91精品久久久久久综合乱菊| www日韩中文字幕在线看| 欧美成人合集magnet| 国产一区二区三区免费视频| 欧美一级bbbbb性bbbb喷潮片| 日韩电影中文 亚洲精品乱码| 日本亚洲欧洲色| 久久精品视频99| 国产精品久久9| 97视频在线观看网址| 国产一区二区三区四区福利| 久久九九全国免费精品观看| 欧美视频第一页| 91麻豆国产语对白在线观看| 久久激情视频久久| 91精品在线影院| 一区二区亚洲欧洲国产日韩| 社区色欧美激情 | 亚洲黄色片网站| www.亚洲免费视频| 亚洲精品日韩丝袜精品| 国产精品国语对白| 久久久久久中文| 亚洲精品suv精品一区二区| 97在线视频免费| 欧美激情网站在线观看| 俺去亚洲欧洲欧美日韩| 国产一区香蕉久久| 欧美日韩国产成人在线| 欧美俄罗斯乱妇| 亚洲精品第一国产综合精品| 热久久免费视频精品| 日韩av在线免费看| 亚洲第一页自拍| 97香蕉超级碰碰久久免费软件| 日本精品久久久| 精品福利樱桃av导航| 久久久噜噜噜久久中文字免| 欧美成人午夜激情| 成人在线视频网站| 日韩风俗一区 二区| 亚洲精品中文字幕av| www.亚洲男人天堂| 日日狠狠久久偷偷四色综合免费| 日韩av中文字幕在线播放| 国产精品1234| 亚洲欧美日韩高清| 欧美日韩成人精品| 亚洲aⅴ男人的天堂在线观看| 精品久久在线播放| 精品丝袜一区二区三区| 91麻豆桃色免费看| 国产一区二区三区久久精品| 在线不卡国产精品| 亚洲成年人在线| 精品久久久精品| 欧美成人午夜免费视在线看片| 国产精品久久久久久久久借妻| 亚洲国产欧美自拍| 国产国语videosex另类| 亚洲免费中文字幕| 91精品视频在线| 精品国产31久久久久久| 国产精品视频精品视频| 黑人巨大精品欧美一区二区三区| 欧美丰满少妇xxxx| 色99之美女主播在线视频| 亚洲国产免费av| 国产精品美女久久久久久免费| 成人黄色免费片| 国产精品h在线观看| 国产一区二区av| 亚洲性线免费观看视频成熟| 欧美国产日韩一区二区在线观看| 91在线观看免费高清完整版在线观看| 亚洲xxxxx性| 日韩av有码在线| xxxx欧美18另类的高清| 亚洲色图在线观看| 久久人人爽亚洲精品天堂| 国产婷婷97碰碰久久人人蜜臀| 国产精品18久久久久久麻辣| 亚洲午夜精品久久久久久久久久久久| 美女扒开尿口让男人操亚洲视频网站| 精品自在线视频| 久久成人18免费网站| 日韩性生活视频| 亚洲成人av片在线观看| 久久亚洲精品成人| 日韩电影在线观看免费| 国产日韩换脸av一区在线观看| 亚洲国产成人在线视频| 国产精品久久久久久网站| www.久久草.com| 欧美一级黄色网| 久久久久久久久久久久久久久久久久av| 国产婷婷色综合av蜜臀av| 97视频在线观看免费| 欧美国产精品日韩| 亚洲码在线观看| 日韩精品极品毛片系列视频| 亚洲美女av网站| 欧美成人免费在线观看| 影音先锋欧美精品| 2020国产精品视频| 久久久久久亚洲精品| 在线a欧美视频| wwwwwwww亚洲| 亚洲国产精品久久久久秋霞蜜臀| 亚洲国产91色在线| 91精品视频在线免费观看| 操91在线视频| 日韩成人免费视频| 国产91免费观看| 日本三级久久久| 欧美日本啪啪无遮挡网站| 91精品国产高清久久久久久久久| 亚洲午夜精品久久久久久久久久久久| 麻豆一区二区在线观看|