2014-07-22 38 views
-1

我已經在互聯網上下載了一個Delphi項目,我想使用它,但有一個問題:下載的軟件包包含一個帶有dpr擴展名的文件,但是如果我雙擊它,打開的Delphi我可以看到一個源代碼,但設計缺失,所以我不能修改例如窗口屬性。在一個Delphi項目中,至少有兩個選項卡:讓我們將它們命名爲Unit1和Project1,但這裏僅在選項卡上使用源代碼。另外,在一個經典創建的項目中,源代碼會顯示在一個pas文件中,但是在這裏它是在dpr文件中。我試圖找到一種方法來導入它的內容,但什麼也沒找到。所以,如果有人可以告訴如何將這個dpr文件轉換成一個具有絕對結構的Delphi項目,請讓我知道。 非常感謝。導入一個dpr到Delphi

+0

.dpr文件鏈接使用過的.pas單元。如果您提交了dpr文件,這將有所幫助。 –

+0

好的,我該如何提交? –

+0

錯過了.dfm文件嗎?你能告訴我們一個鏈接到下載的項目? – MBo

回答

4

我已經下載了這個項目。它不是VCL項目,它是使用OpenGL的基於WinAPI的程序。

一些鏈接,以幫助非VCL德爾福編碼:

Creating forms without using vcl

A guide to developing Delphi programs in Windows API

Delphi Without the VCL or the IDE

在這裏 - example of VCL application with OpenGL

+0

好的,謝謝,我會盡力閱讀和理解這些文章,那麼也許我會回來。再次感謝。 –

+0

這正是我第一次讀到這個問題時所懷疑的,OP是不熟悉不涉及VCL表單的Delphi項目。我認爲每個初學者都要經歷這個階段,但它仍然是每個編碼員都應該學習和理解的東西。 –

+0

好的,但它仍然不清楚:可以將基於WinAPI的程序轉換爲VCL程序嗎? –

2

一個.dpr文件是一個Delphi項目文件。對於普通的VCL或FMX應用程序,IDE使用它來列出項目中的表單,幷包含初始化Application類的代碼,創建主窗體,並通過調用Application.Run啓動程序的執行。舉例來說,這裏是一個應用程序的外殼採用文件 - >新建 - > VCL窗體從IDE主菜單中的應用程序創建:

program Project1; 

uses 
    Vcl.Forms, 
    Unit1 in 'Unit1.pas' {Form1}; 

{$R *.res} 

begin 
    Application.Initialize; 
    Application.MainFormOnTaskbar := True; 
    Application.CreateForm(TForm1, Form1); 
    Application.Run; 
end. 

上面告訴它需要包括VCL.Forms單元以及IDE中作爲單位Unit1(其中包含Form1)。它初始化應用程序,在成爲Application.MainForm的變量Form1中創建一個TForm1實例,然後啓動程序運行。當Application.Run退出時(通常在Form1關閉時發生),應用程序退出。

但是,應用程序不一定必須包含表單,並且.dpr可以包含應用程序的所有源代碼。下面是一個Delphi控制檯應用程序的例子,它是一個單獨的.dpr文件中的完全包含的程序 - 您可以使用IDE主菜單中的File-> New-> Other創建shell,並在Delphi Projects類別下選擇Console Application 。我添加了三行代碼(兩次調用WriteLn,一次調用ReadLn),以便它執行某些操作。您可以將文件保存爲Project1.dpr,在任何Delphi IDE中打開它,然後按F9運行它以查看它是如何工作的。

program Project1; 

{$APPTYPE CONSOLE} 

{$R *.res} 

uses 
    System.SysUtils; 

begin 
    WriteLn('This is a Delphi console application.'); 
    WriteLn('Press Enter to quit.'); 
    ReadLn; 
end. 

另一種類型不具有與之相關聯的形式德爾福項目是一個Windows服務(文件 - >新建 - >其它 - >德爾福項目 - >服務應用程序)。

所以,你不能假定一個.dpr文件將與表單有任何關係。你可以通過檢查內容來判斷它是否有效,但不能簡單地通過擴展來判斷。