菜鳥在學習偉大的delphi中遇到了困難,望大俠指點江山,激揚文字,小弟感激涕零!
1、需要了解Application.Run 之后的部分是依照什么順序運行,或者說多個form運行順序由什么檔案或者代碼控制(除了show和showmodal呼叫之外)
2、能否告知unit的編譯順序是遵照什么原則,什么順序
謝謝高手指點!!!
uj5u.com熱心網友回復:
這兩個問題,你只要在IDE選 Project -> View Source 就明白了。uj5u.com熱心網友回復:
> unit的編譯順序是遵照什么原則,什么順序話說回來,這個問題真的沒有認真去思考過。
覺得以 View Source 里的內容為基礎,需要用到時Compiler自己會決定還要編譯什么,
應該就是這樣子吧,還有什么原則嗎?
uj5u.com熱心網友回復:
我看過了,單步執行時Application.Initialize之前會有部分編譯,其他的在哪兒就不知道了,Application.CreateForm是創建form的程序,但是后面的呼叫好像是在Application.Run之后,主界面呼叫完了,部分界面貌似要呼叫的,但是控制順序不明白啊,謝謝你啊uj5u.com熱心網友回復:
如果是exe的工程,你打開dpr的單元檔案,里面有代碼,delphi編譯的順序,運行的順序都是按代碼來的。如果是元件(DLL),那就跟主程式呼叫的順序有關了
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
uj5u.com熱心網友回復:
不錯的,探索精神,編譯器的順序,多看看,原始碼就明白,或,inside vcl 也有講到一部分,Application.CreateForm 這個涵數,進去,看,不錯,有很多東西學,這些一句話說不明白的,uj5u.com熱心網友回復:
看李維的inside vcl,說的比較詳細uj5u.com熱心網友回復:
小弟在此謝過各位大俠指點uj5u.com熱心網友回復:
如果你用win32 api寫過一個簡單界面。你就會明白訊息機制。 這個在c++里面有講。你再看看forms單元 應該會明白許多
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/123407.html
標籤:語言基礎/算法/系統設計
