首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 專案開發實戰要點:選型理由、核心觀念、通訊錄入門、編碼規範與重入陷阱

     編輯:Delphi

一、為何選擇 Delphi?

  1. 小專案不想用 ODBC,BDE 效能優異。
  2. 厭惡 OCX/VBX 大量外部檔案佈署,追求單一 EXE 成就感。
  3. 鮮做 CView/CDocument 架構,MFC 非文檔視圖支援極弱。
  4. 偏愛 Pascal 語法,begin..end 不遜於大括號。
  5. C/C++ 網路資源稀少,Delphi 社群代碼片段豐富。

二、核心觀念速記

  • 面向對象本質:record + procedure/function = class。類本質是變數,Implementation 定義細節,Interface 告訴編譯器去哪裡找代碼。Form 間引用實為物件變數元素引用。
  • 三大元素:Property(可讀寫)、Method(呼叫過程/函數)、Event(回調)。設計時在 Object Inspector 設 Property,運行時呼叫 Method。
  • Property 陷阱:設定屬性可能觸發大量代碼(read GetX write SetX),非單純賦值。
  • 代碼位置與訊息驅動:Windows 訊息驅動,永不觸發的代碼不編譯(Delphi 3 無藍點),代碼可重入。

三、從通訊錄開始(不使用資料庫控件的反面教學)

  1. 用 Database Desktop 建表(欄位勿用中文)。
  2. Database/Form Wizard 產生原型(含 DBNavigator、Data-aware 控件)。
  3. Field Editor 設 DisplayName 為中文、Transliterate=False 正確顯示中文。
  4. DBNavigator 僅保留首筆、上一筆、下一筆、末筆、新增、刪除、儲存、取消。
  5. 加入查詢功能:新 Form 放 Edit + OK/Cancel BitBtn,主 Form 按鈕代碼:
    if Form2.ShowModal = mrOK then begin
      Table1.DisableControls;
      Table1.First;
      while not Table1.EOF and (Pos(Form2.Edit1.Text, Table1Name.Value) = 0) do
        Table1.Next;
      Table1.EnableControls;
    end;

四、編碼鐵律

  • 變數/程序盡量置於 private 區段,嚴禁在 class 定義外定義全域變數。
  • begin 後縮排兩格,end 對齊對應 begin 欄位。
  • 大小寫不敏感,但多處引用保持拼寫一致。
  • 勿手刪 Delphi 自動生成代碼(空 begin..end 會自動清理)。
  • FormCreate 前控件未建立不可引用;OnCreate 內直接用控件名(ListBox1)而非 Form1.ListBox1。
  • MainForm OnCreate 不可引用其他 Form 變數(尚未建立)。
  • ShowModal 阻塞,Show 非阻塞。
  • 訊息處理器勿長時間運行,長迴圈中必呼叫 Application.ProcessMessages 防假死。

五、Windows 重入陷阱

TTimer 觸發間隔若短於執行時間,下一次觸發會重入同一事件處理器,造成共享變數競態。類似地,Show 非模態視窗同時操作同一變數也會產生離奇 Bug。新手優先避開:Timer 事件首行設 Enabled := False,處理完再 True;傾向用 ShowModal。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved