Delphi中initialization和finalization
新建一工程,建立3個Form,分別是form1、form2、form3,預設情況下form1為主窗體。
<1 begin>
程式啟動 --> 執行 initialization 處的程式碼(先 form1 然後 form2 最後 form3 ) --> 執行窗體的建構函式並建立相應窗體和單元中的物件(如拖拉的控制元件物件,全域性變數等) --> 執行 OnCreate 事件(先 form1 然後 form2 最後 form3 ) --> 程式執行 --> 關閉主窗體(此處指呼叫主窗體的Close或點選主窗體的關閉按鈕) --> 執行主窗體的 OnClose 事件 --> 執行 OnDestroy 事件(先 form3 然後 form2 最後 form1 ,注意喲,順序倒過來了。) --> 執行 finalization 處的程式碼(先 form3 然後 form2 最後 form1 ,注意喲,順序倒過來了。)
<1 end>
為什麼 OnDestroy 和 OnCreate 的順序相反?為什麼 finalization和 initialization 的順序相反?大家好好想想吧!
相關推薦
Delphi中initialization和finalization
以上是對於單個窗體而言,下面是對於多個窗體: 新建一工程,建立3個Form,分別是form1、form2、form3,預設情況下form1為主窗體。<1 begin>程式啟動 --> 執行 initialization 處的程式碼(先 form1 然後 form2 最後 form3 ) --
Delphi中“initialization和OnCreate”、“OnClose、OnDestroy和finalization”
注:本文主要是討論delphi程式啟動時和退出時的執行順序,期間有些知識來源於Delphi幫助,有些來自《Delphi7程式設計教程》(這本書只告訴我有initialization 和 finalization 這兩個關鍵字,但是沒講明白)(唉,現在的書只討論框框架架,不
Delphi中GDI+和ImageList使用的正確姿勢
GDI+DrawImage只能傳入TGPImage, 因此最初想到的是從ImageList中得到Image, 然後儲存為流,再轉換為TGPImage,然後顯示。 function drawImageList(graphics: TGPGraphics; paraImage
Delphi中override和overload的定義和區別是什麼?
overload是過載;相同的函式名,引數不同,使用不同的函式體 override 是對父類宣告的vitural或dynamic方法進行覆蓋 overload的使用方法: function max(a, b :Byte):byte;overload;
delphi中urlencode和urldecode的函式編寫?
use httpapp; 函式:httpencode 和 httpdecode; 一、utf8編碼的urlencode dest:= HttpEncode(AnsiToUtf8(src)) ; 二、utf8解碼的urldecode
如何用delphi中Data Module 管理數據庫連接 和Adoquery 及 datasourse 等
href src 數據庫連接 為什麽 com 根據 table log other 首先關於使用data module 的理論可以參看,裏面講的很詳細:https://wenku.baidu.com/view/073aa98aa0116c175f0e48e2.html 其次
delphi中WebBrowser的parent改變時變成空白問題的解決(覆蓋CreateWnd和DestroyWnd)
classes panel replace orm cat art topic alt 解決 這段時間在做一個delphi界面打開網頁的功能,且此網頁所在窗口可完整顯示,可縮小到另一個窗口的panel上顯示 可是在改變網頁所在窗口時,WebBrowser控件變成了空白
delphi中的copy函數和pos函數
結果 -1 位置 s函數 第一次 best 一個 字符 開始 1、copy(‘csdn’,1,2) 返回的結果是 cs 註釋: Copy有3個參數,第一個是要處理的字符串,第二個是要截取的開始位置,第三個是截取位數 當第三個參數大於字符長度,那麽效果就是
Delphi中destroy, free, freeAndNil, release用法和區別
http://kudick.blog.163.com/blog/static/16660663200931311194482/ 2009-04-13 11:19:04| 分類: Delphi相關|舉報|字號 訂閱
談談Delphi中的類和物件3---抽象類和它的例項
---恢復內容開始--- 四、抽象類和它的例項 Delphi中有一個類稱為是抽象類,你不能天真的直接為它建立一個例項,如 var StrLst: TString; begin StrLst:= TString.Create; StrLst.Add('I love
delphi 中OutputDebugString 函式的妙用(使用DebugView或者Pascal Analyzer軟體,在執行過程中就能監視和捕捉日誌,而且通過網路就能監視)
原文地址 https://www.peganza.com/delphi-and-outputdebugstring.html 曾經想要實時監控您的Delphi應用程式,並能夠檢視日誌訊息嗎?當然,您始終可以在RAD Studio IDE中以完全除錯模式執行。另一種方法是輸出日誌訊息
delphi中對override(重寫)和overload(過載)的一些看法
重寫就是用現在的方法覆蓋了繼承過來的方法,過載就是在不改變繼承過來的方法的基礎上重新新增一個方法名字一樣,但引數或返回值是不一樣的。 下面舉個例子: unit Unit1;interfacetype TStudent=classprivate//... publi
delphi中,write和read的用法?什麼時候需要用?
如你所說,在控制元件或者類的屬性中,read 表示 讀取,write 則表示設定。比如在類中:TTestClass = (Class)privateFOrderCode:String;publicproperty OrderCode:String read FOrderCode write FOrd
Delphi中的ADOquery 用法以及ADOquery的自有方法Append 和Delete和 Edit 和Post
Delphi在資料庫操作是非常好用的,delphi把ADO一些方法屬性都集成了,以下是我的一些總結:*******************************通過sql的儲存過程來實現:新增With ADOQuery1 dobeginClose;SQL.Clear;SQL.Add(' Insert Int
Delphi數據庫技術中Disablecontrols和Enablecontrols的功能
編輯狀態 mysql itl htm first http -m pid stat 一般來說,用來掃描整個數據庫表並修改每個記錄的某一個字段的程序如下所示: with Table Do begin DisableContro
Delphi資料庫技術中Disablecontrols和Enablecontrols的功能
一般來說,用來掃描整個 資料庫表並修改每個記錄的某一個欄位的程式如下所示: with Table Do begin
Delphi中的介面和抽象類
介面:Interface Delphi中介面的關鍵字是Interface,但它和Pascal單元中的Interface沒有任何聯絡。 1、抽象類 Delphi中的抽象類只定義行為的類,它規定了由此派生的類必須具備某些行為。但是抽象類不實現這些行為,而必須由其派生類去實
Delphi 中圖象的放大和縮小
在Delphi中,可利用類Tcanvas的CopyRect方法實現圖象的放大和縮小。其功能是將源畫布上的一個指定矩形區域(簡稱源矩形)內的象素,拷貝到目的畫布上的一個指定矩形區域(簡稱目的矩形)中。亦可稱之為象素塊複製。 由CopyMode屬性確定拷貝的模式。在直接拷
Delphi中使用cxGrid對資料集進行Sort和Locate操作
核心提示:在編寫某個系統時,由於使用了資料集型別無關技術(即資料集可能是ADOQuery,也有可能是TClientDataSet等等)。當需要對資料進行排序和查詢時,只好利用cxGrid自身的功能來實現:fun... 在編寫某個系統時,由於使用了資料集型別無關技術(即資料集可能是ADOQuery,也有可
關於delphi中write,read,writeln和readln的用法
read為讀入,引數為read(a,b,c……);意為將變數a,b,c……讀入(注意:輸入的資料一定要與設定一致,否測會出錯誤)。 readln也是讀入,引數相同,但多一個功能,就是在a,b,c……讀入完畢以後,再讀入一個回車。例如,現有資料1 3 5 7,執行口令為re