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

首頁 > 編程 > Delphi > 正文

Delphi隨筆一

2019-11-18 18:41:39
字體:
來源:轉載
供稿:網友
 

一、老生長談
    Delphi VS VC已經是很古老的話題了,但是我還是想在這里談一下,全是一家之言,如果不同意,請一笑之。
    RAD的好處是很易見的,界面的設計上Delphi實在是高過VC。我要寫一個非常規的透明按鈕,Delphi只要找個控件,點一下鼠標,修改一下Caption就OK了,VC呢?至少要寫上10幾行代碼才能搞定,當然MFC的做法讓人了解windows底層的原理,但是OOP的封裝性沒有很好的體現,開發者要了解所有的底層才能寫代碼,對我對大多數的入門者是個折磨,因為沒必要,現在是開發期限永遠緊張,時間永遠不夠,我們不能指望程序員知道Windows編程的所有的方面,有人對視頻很了解,有人對網絡很在行,但是沒有人是全才,樣樣在行是不現實的,所以封裝是很重要的。如果每次開發新產品我都要在一個透明按鈕或者一個漂亮的界面上花30%甚至更多的時間,那我就去跳河:)Delphi在界面上的確比MFC好!當然不是說MFC就設計不出漂亮的界面,只是花費的時間太長,不值得。
    RAD就真的全是好處?也不是。至少對于初學者不是,因為它讓人誤會編程只是動動鼠標,拉拉框架,最后的結果就是讓人覺得,Delphi就是用來寫界面的,底層什么都不能做。好像MFC程序員都是這么講Delphi程序員的:“你們的程序除了界面漂亮,還能做什么?”錯!其實除了DDK,Delphi什么不能開發?API的頭文件Delphi哪個沒有?Borland沒有轉換的,JEDI都轉換了,即使JEDI沒有轉,自己動手也是一樣的,只要給我C的頭文件,我就可以轉換,JEDI上那篇短短的轉換說明應該是每個Delphi程序員的必備文檔。頭文件轉換了,剩下的就是開寫了,MFC能做的,Delphi也可以!視頻?網絡?directx?Audio?哪個Delphi不能做?

二、子過程
    寫一個事件,很多人就是直接開寫,不管代碼有多長,做的事情有多少,只要是在一個事件里做的,一古腦寫下去,結果是幾個月后重新修改的時候無從下手,因為代碼段實在太長了。那么為什么不把代碼段拆開呢?人的注意力有有限的,超過100行的代碼一口氣看下來會暈的,Delphi的前輩告訴我一件事情:所有的過程(這里的過程包括PRocedure和function)不要超過25行!因為這個長度的代碼看起來不會讓你頭暈,你會很容易了解這個過程要做的事情。
    那么怎么把原本在一個事件做的事情拆開呢?方法很多,我的經驗是模塊化。比如一個事件里要做很多不同的事情,那么就把不同的事情化為不同的子過程,然后在主過程里調用,主過程里大多數就是一些判斷和循環,不會出現具體的實現過程,這樣會生出很多的代碼段,但是會讓你的注意力集中!
    原則:一個過程只做一件事情,并且做好它。
    參考:VCL的源代碼??纯碫CL的源代碼,很少有超過25行的代碼段!

三、參數名
    記得當初學SDK的時候,我一看到匈牙利表示法就頭暈,太多了!記不住??!所以我恨那個發明者:)終于Delphi出現了,戴著鐐銬跳舞的日子過去了!在Delphi里,定義一個字符串用strDoSometing這樣的變量名是可笑的和不必要的。只要你的過程很短,不出現全局變量,就不需要這樣的前綴。比如:
procedure SubPro;
var
  i : byte;
  Width, Height : integer;
begin
  Width := GetWidth;
  Height := GetHeight;
  for i:=0 to 9 do
  begin
    DrawThread := TDrawThread.Create;
    DrawThread.Width := Width;
    DrawThread.Height := Height;
    DrawThread.Start;
  end;
end;
    我想這樣的代碼段雖然沒有注釋,也很容易知道他要做的事情。所以,請去掉所有的前綴和下劃線,Delphi的程序不需要這些!我們的參數名只要動詞+名詞就可以,只要說明這個參數的作用就可以,多余的東西我們不要,簡單就是美,Pascal的好處就在于代碼像在說話,而不是讀天書,你的腦袋里是怎么想的,代碼就是什么樣子的。優美、簡單,這是Pascal的好處,請遵守!
    原則:簡單就是美!

四、子窗口
    很多人在調用子窗口的時候是直接對子窗口里的控件操作的,比如:
  if SetAlarmParamDlg.ShowModal = MrOK then
  begin
    AlarmTimes := StrToInt(SetAlarmParamDlg.Edit1.Text);
    AlarmArea  := SetAlarmParamDlg.SpinEdit1.Value;
  end;
    天,假如明天用戶覺得你用的Edit或者SpinEdit的樣子難看,換了一個漂亮的控件,你怎么辦?不但要修改子窗口的代碼,還要修改主窗體的代碼。一兩個子窗口的程序當然不會讓你痛苦,假如是一個有二十多個子窗體的程序呢?花一天的時間,原因卻只是因為換了一個控件!為什么不換一個方法?把要用的參數用屬性表示,你會少寫無數的代碼。
// 主窗體
  if SetAlarmParamDlg.ShowModal = MrOK then
  begin
    AlarmTimes := SetAlarmParamDlg.AlarmTimes;
    AlarmArea  := SetAlarmParamDlg.AlarmArea;
  end;

// 子窗體
interface
private
  FAlarmTimes : integer;
  FAlarmArea : integer;
published
  property AlarmTimes : integer read FAlarmTimes write FAlarmTimes;
  property AlarmArea : integer read FAlarmArea write FAlarmArea;

implementation
...
  FAlarmTimes := StrToInt(Edit1.Text);
  FAlarmArea := SpinEdit1.Value;
 
  ModalResult := MrOK;
...

    只要這樣堅持下來,你會發現好處大大的,一個子窗口只做他自己的事情,主窗口和他的交互是通過屬性來做的,只要接口不變,子窗口的修改不會影響到主窗口的代碼,不管子窗口的樣子怎么變換,控件怎么更換,代碼怎么修改,整個程序都還是老樣子,只是界面變了而已。
    原則:模塊化你的子窗口,窗口也是類,類之間怎么通信,窗口之間就應該怎么通信


上一篇:Delphi深度探索-CodeSite應用指南

下一篇:如何用Delphi制作錄音程序

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

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人天堂噜噜噜| 欧美成人全部免费| 久久久久久91香蕉国产| 97久久超碰福利国产精品…| 91网站免费看| www.美女亚洲精品| 国产日韩精品综合网站| 色综合久久悠悠| 亚洲桃花岛网站| 国产区亚洲区欧美区| 欧洲一区二区视频| 欧美亚洲国产日韩2020| 国产丝袜一区二区三区| 欧美国产日韩中文字幕在线| 成人自拍性视频| 精品国产欧美一区二区五十路| 欧美亚洲视频在线看网址| 大桥未久av一区二区三区| 精品国产欧美一区二区三区成人| 亚洲激情久久久| 51ⅴ精品国产91久久久久久| 国产精品美女主播在线观看纯欲| 在线播放日韩专区| 91午夜在线播放| 日韩在线视频一区| 国产原创欧美精品| 亚洲女人被黑人巨大进入al| 亚洲男人av在线| 69影院欧美专区视频| 欧美一级电影在线| 姬川优奈aav一区二区| 欧美又大又硬又粗bbbbb| 精品视频—区二区三区免费| 亚洲欧美精品中文字幕在线| 亚洲国产小视频| 日韩在线观看免费网站| 97超级碰碰碰久久久| 日韩欧美精品网址| 欧美视频中文字幕在线| 成人黄色片网站| 久久免费在线观看| 亚洲春色另类小说| 欧美一级淫片播放口| 亚洲精品欧美极品| 国产做受高潮69| 久久久av免费| 亚洲无线码在线一区观看| 91成人在线视频| 在线激情影院一区| 欧美俄罗斯乱妇| 日韩免费看的电影电视剧大全| 欧美黑人狂野猛交老妇| 国内外成人免费激情在线视频| 久久久精品国产网站| 日韩高清电影好看的电视剧电影| 中文字幕免费国产精品| 国产大片精品免费永久看nba| 欧美大学生性色视频| 麻豆乱码国产一区二区三区| 国产精品美女在线观看| 亲子乱一区二区三区电影| 精品亚洲国产视频| 久久亚洲国产精品| 亚洲乱码一区av黑人高潮| 国产亚洲精品久久| 北条麻妃99精品青青久久| 高清一区二区三区日本久| 欧美午夜片在线免费观看| 国产色婷婷国产综合在线理论片a| 色综合影院在线| 国产中文欧美精品| 国产精品视频网站| 亚洲免费人成在线视频观看| 国产成人亚洲综合青青| 国产精品伦子伦免费视频| 久久精视频免费在线久久完整在线看| 成人亚洲综合色就1024| 欧美综合一区第一页| 欧美亚洲国产精品| 国产最新精品视频| 亚洲色图欧美制服丝袜另类第一页| 欧美成人激情视频| 欧美日韩亚洲91| 538国产精品一区二区免费视频| 亚洲福利精品在线| 亚洲国产精品yw在线观看| 亚洲午夜av久久乱码| 亚洲精品理论电影| 国产精品r级在线| 国产精品福利在线| 国产成人97精品免费看片| 亚洲美女福利视频网站| 欧美成人亚洲成人| 成人h视频在线| 久久久在线免费观看| 国产有码一区二区| 午夜精品久久久久久久久久久久久| 亚洲美女福利视频网站| 久久久最新网址| 中文国产亚洲喷潮| 日韩亚洲欧美中文在线| 国产a∨精品一区二区三区不卡| 国产精品久久久久久中文字| 日韩精品在线播放| 国产精品福利在线观看网址| 国产精品女主播| 亚洲最大av在线| 国产一区深夜福利| 欧美午夜丰满在线18影院| 亚洲激情免费观看| 一区二区三区天堂av| 欧美又大又硬又粗bbbbb| 欧美日韩国产在线播放| 久久亚洲影音av资源网| 97久久伊人激情网| 美日韩精品视频免费看| 久久五月天综合| 在线免费观看羞羞视频一区二区| 久久91亚洲精品中文字幕| 亚洲福利视频久久| 久久久久久久97| 精品久久久久久久久中文字幕| 日韩美女写真福利在线观看| 国产一区二区在线免费| 在线观看久久av| 91午夜理伦私人影院| 午夜精品美女自拍福到在线| 欧美国产中文字幕| 欧美色另类天堂2015| 国产成人精品综合| 国产不卡av在线| 国产精品国产亚洲伊人久久| 日韩黄色在线免费观看| 欧美日本啪啪无遮挡网站| 日本人成精品视频在线| 欧美国产乱视频| 欧美专区第一页| 欧美一级片在线播放| 最近中文字幕mv在线一区二区三区四区| 国产精品入口免费视| 欧美国产日韩一区二区| 亚洲欧美制服中文字幕| 91精品国产777在线观看| 亚洲精品电影网在线观看| 中文字幕欧美日韩在线| 日韩精品极品视频免费观看| 日产精品99久久久久久| 久久久久久久久电影| 亚洲人午夜精品| 国产精品入口福利| 日韩中文第一页| 国产精品吴梦梦| 国产精品ⅴa在线观看h| 国产日韩精品在线观看| 亚洲欧美成人精品| 亚洲精品大尺度| 久久人体大胆视频| 国产视频精品久久久| 久久韩剧网电视剧| 欧美日本在线视频中文字字幕| 在线播放国产一区二区三区| 成人激情在线观看| 久久视频免费观看| 欧美亚洲在线观看|