程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi 2005賞析

Delphi 2005賞析

編輯:Delphi

一、概述

Borland 希望Delphi 2005 能成為Windows平台上的最終的完整解決方案,為此 Delphi 2005 集成了 Delphi, C#, Microsoft .NET Framework and Win32 ,支持圖形用戶接口(GUI), Web開發, 數據庫、富客戶端應用程序(rich-client applications)等多方面的開發, 集成軟件生命周期管理(ALM)功能及快速開發(即RAD)的能力。在Delphi 2005中,所提供的IDE使Windows平台的開發更快速,更容易,並且新的版本能更好的支持win32 標准,同時還提供了一個世界級水平的編譯器和調試器;他還提供了大量的可重用的組件,一個強大的代碼生成向導,可以幫你更快的產生你所想要的代碼;Delphi 2005 還 包括了嶄新的第二代企業核心對象技術 (Borland Enterprise Core Objects II即ECO II) 。ECO II 為模型驅動的.NET企業應用提供了開發框架。Delphi 2005還能協助開發團隊在創建新應用的同時,維護及改進現有的Windows應用。 總之,憑借Delphi 2005,開發人員既能繼續改進Win32應用,又能采用.NET及ASP.NET,是一款值得期待和使用的開發工具。

二、Delphi 2005的新特性

有了大概的印象之後,也許你已經很急於了解Delphi 2005所提供的各種引人注目的功能了吧。下面我們將詳細的來了解Delphi 2005 的新的特性。

(1)集成開發環境

1、一個集成開發環境,支持多種平台

在Delphi 2005 的集成開發環境中,為廣大用戶提供了統一而又強大的開發環境。在這裡你可以用Delphi 或者 C# 等語言來創建win32 應用程序或者是創建.NET程序,也可以使用ASP.NET創建動態網頁或者傳統的客戶端應用程序。在Delphi 2005 中,IDE還可以保證你的程序如你在設計時所看見的一樣,即通常所說的所見即所得的方式。例如:如果你要用ASP.NET建立一個web應用程序,html設計可以保證你在設計時的頁面顯示狀態,同時還可以通過拖拽組件到頁面上來建立你所要的web應用程序,但你卻可以只寫很少甚至不寫一點代碼。如下圖所示:

在這裡選擇你想要建立的工程類型,在向導幫助你建立起所要的框架。

當然新的開發環境中,同樣可以開發傳統的win32應用程序。Delphi 2005 提供了一個全面的而又強大的Delphi語言開發win32應用程序的環境。其中包含了眾多我們所熟知和不熟悉的可視化組件庫(Visual Component Library 即VCL),同時又增加了一些功能強大的vcl控件供用戶使用。如下圖所示:

2、使用C# 或者 Delphi 開發.NET 框架應用程序

.NET已經推出了很多年了,他同時也代表著未來軟件技術的發展方向。所以Delphi 2005 集成了能夠完全支持.NET框架的SDK(應用程序開發包)。在Delphi 2005 中包含了基於ASP.NET、Windows 窗體、網服務器和組件開發的圖形設計環境,在其中你可以使用Delphi語言,也可以使用C#語言。在這個.NET框架中Delphi既可以使用.NET SDK來創建windows窗體和網窗體應用程序,又可以使用Borland的可視化組件庫(Visual Component Library即vcl.NET)。同時你還可以很容易的將以前的基於win32的vcl應用程序移植到vcl.NET環境下。如下圖所示:

當我們用Delphi 2005 打開一個以前的工程時,系統會提示我們在工程被打開時,要被升級。如下圖所示:

我們有兩種選擇,可以繼續傳統的win 32 應用程序,也可以升級到Delphi的.NET版本。

3、改進的工程開發環境

Delphi 2005 在多年的基礎上,依靠Borland工程師對工作的了解,所以做了許多的改動。其中最有特色的是對IDE中工具欄的改造。可以根據所建工程類型的不同自動的顯示不同工程中所提供和能夠使用的組件和控件。我們可以在主界面的右下角進行選擇。如下圖所示:

左上角的工程結構窗口則顯示了組件和工程之間的關系,使開發人員都工程裡各部分的關系更為清晰。如下圖所示:

最讓人關注和喜愛的還要數,Delphi 2005 代碼編輯器的演變。在代碼編輯器中,Borland工程師為廣大Delphi用戶提供了非常體貼的提示標簽。如下面兩幅圖中所示:

圖一

圖二

當我們將鼠標指向並放在一個變量上面時,編譯器會為我們顯示出,相應的提示,或者是錯誤的提示,如“變量沒有定義”或者是所指示函數的說明。

還有一種提示則是,對要求對應出現的符號的提示。如括號和引號等。當我們在括號中寫入內容,或者選擇內容是,編譯器會將對應的符號換色顯示,從而避免低級錯誤的發生。如下圖所示:

Delphi 2005 的多樣性,不僅表現在工程選擇和語言上,還擴展到了調試器上。在Delphi 2005 中你可以同時調試win 32和.NET兩種平台上的應用程序。如下圖所示:

對於一個工程為變量改名是在所難免的。Delphi 2005 中也提供了一個在整個文件中批量改名的功能。使用它用戶可以便利的將同一文件中的一個變量的所有名字都改過來,包括全局變量。如下圖所示:

也可以改變一個對象或成員變量的名字。如下圖所示:

(2)語言的發展和演變

Delphi 2005 中包含了新的語言特征,新增For ... in 語法。其用法類似Visual Basic的For Each :如下圖所示:

你也可以自己輸入下面代碼,體驗一下。

procedure TestNewFor();
var
 StrList: TStrings;
 S: String;
begin
 StrList := TStringList.create();
 StrList.Add('Borland Delphi');
 StrList.Add('Borland C++ Builder');
 StrList.Add('Borland JBuilder');
 for S in StrList do begin
  ShowMessage(S);
 end;
end;

(3)代碼管理

在Delphi 2005 中還提供了對代碼的管理。其中清晰的顯示了,用戶對代碼所做的修改過程。如下圖所示:

當然還包括很多的功能,我們可以在以後的使用中不斷的體會Delphi 2005 中所提供的便捷性。

三、安裝

Delphi 2005 一共是3張盤,其中第一張是Delphi 2005,我們可以在光盤中,找到setup.exe文件,雙擊,就進入了安裝界面,如下圖所示:

圖一

圖二

點擊“next”,進入下一頁:

圖三

在這裡Delphi 2005 會檢查你的軟件環境。在安裝的Delphi 2005前你必須先安裝以下程序:

先安裝 IE6.1 ;

再安裝.NET_framework 1.1;

再安裝.NET_framework 1.1 Pack;

再安裝 .NET_Framework_SDK_1.1_CHS;

再安裝 J# net V1.1;

再安裝 msxml;

否則就會出現如下提示:

提示一

提示二

如果你已經安裝了上述軟件,就會進入下一頁安裝界面:

點擊“next”,進入下一個頁面:

選擇“ I accept the terms in the license agreement ” ,進入下一頁:

填入用戶名稱,和單位,點擊“next”進入下一頁:

在這裡我們可以選擇完全和自定義兩種安裝方式,一般情況選擇"complete",點擊“next”,進入下一頁:

同樣是選擇第一項,點擊“next”按鈕,進入下一頁:

在這裡你可以選擇安裝的路徑。然後點擊“next”按鈕進入下一頁:

在這裡可以選擇要按裝的組件。在要安裝的組件項前,點擊復選按鈕,打上對構表示已選中。之後點擊“next”進入下一頁:

點擊“install”,到下一步,開始安裝:

直到安裝結束。

四、實戰

還是讓我們通過一個實例,來對Delphi 2005做更親密的接觸吧。

下面是一個簡單的例子,其中我們主要實現了一個隨機出題的軟件,雖然我們只實現了最多10個小於10的數字的加法,但其中顯示了Delphi 2005 中的主要功能。

從左下角的“開始” —〉 “程序”—〉“ Borland Delphi 2005 ” —〉 “ Delphi 2005 ”如下圖所示:

打開Delphi 2005 ,啟動界面如下圖所示:

(3)新建工程

我們點擊菜單欄中的“ file ”,在下級菜單中選擇“ windows forms application — Delphi for .NET ”,如下圖所示:

也可以選擇“ other ... ”選項,打開

在這裡,我們選擇windows forms application,這種工程文件是可以在windows中直接運行的exe可執行文件。點擊“ ok ”按鈕,來到Delphi主界面。如下圖所示:

(4)設計窗體

1、我們的軟件要首先要在窗口標題上寫上軟件名稱,我們可以在左邊的properties (屬性)列表中找到text屬性,將其中的winform1改為“珠腦算出題軟件v1.0”,回車,可以看到設計窗體中的窗體標題也變為“珠腦算出題軟件v1.0”。如下圖所示:

2、在窗體上添加文本框label1,修改其text屬性,作為操作方法的提示,添加文本框label2,修改其text屬性,作為做題時間指示,添加文本框label3,修改其text屬性,作為要被顯示的題目,文本框label4,修改其text屬性,用來指示正在做的題數:如下圖所示:

圖一

圖二

3、在向窗體中添加一個文本輸入框( textbox1 ),和三個按鈕botten1 , botton2 , botton3,並分別為其命名為,出題,下一題,完成。如下圖所示:

最後再添加一個richtextbox (福文本框),用來顯示已經做過的題目,及其正誤,做題時間及題數。如下圖所示:

當然我們要先將他的visible屬性設置為false,這樣在窗體載入時就可以不顯示了,可以露出後面的其它控件了。

最後在向窗口中添加一個timer控件,來為做題計時。這時timer控件會放在主窗口的下面。如下圖所示:

並且設置它的enable屬性為false,這樣就可以使timer控件不會在開始時就運行了。

(5)編寫代碼

我們可以通過在主窗口下面的分頁中,進行代碼和設計窗口的切換。如下圖所示:

我們可以點擊code頁,來到代碼窗口,可以看到Delphi 為我們添加了許多的代碼。如下圖所示:

剩下的當然就是我們自己來編寫自己的代碼了。

在代碼窗口對Twinform類的定義後面中添加下面的代碼:

//自定義變量
type
 suijishu = array [ 1 .. 10 ] of integer ; //用來保存 加數和被加數
 deshu = array [ 1 .. 10 ] of integer ; //用來保存 每道題的得數,所填的數,與此比較,判斷對誤
var
 sjs : suijishu ; //定義suijishu類型的一個實例
 ds : deshu ; //定義deshu類型的一個實例
 temp : integer ; //定義一個臨時變量
 tishu : integer ; //定義一個變量,存儲已經做得題數
 shijian : integer ; //定義一個變量,存儲做題所用的時間

在implementation段後面,添加下面的代碼:

//自定義過程
procedure fenpei( ) ; //給sjs數組分配隨即數值
var
 i : integer ;
begin
 Randomize ;
 for i : = 1 to 10 do
 begin
  sjs [ i ] : = Random ( 10 ) ;
 end ;
end ;
procedure jisuan ( ) ; //得到結果,並保存到ds數組中
var
 i : integer ;
begin
 temp : = 0 ;
 for i : = 1 to 10 do
 begin
  temp : = temp + sjs [ i ] ;
  ds [ 1 ] : = temp ;
 end ;
end ;

這裡我們定義了兩個過程fenpei 和 jisuan 。fenpei用來給sjs數組分配隨即數值,這樣就可以出題了,jisuan將得到算數的結果,並保存到ds數組中

做題時,首先是要點擊“出題”按鈕。所以要在TWinForm . Button1 _ Click事件中添加代碼,調用fenpei和jisuan過程來初始化題目並得到答案。之後顯示在label3中,並且開始計時,在label4中顯示正在做第幾題。下面是這裡所要添加的代碼:

procedure TWinForm . Button1 _ Click ( sender : System . Object ; e : System . EventArgs ) ;
begin
 //添加自己的代碼
 fenpei ;
 jisuan ;
 label3 . text : = Convert . ToString ( sjs [ 1 ] ) + ' + ' + Convert . ToString ( sjs [ 2 ] ) + ' + ' + Convert . ToString ( sjs [ 3 ] ) + ' + ' + Convert . ToString ( sjs [ 4 ] ) + ' + ' + Convert . ToString ( sjs [ 5 ] ) + ' + ' + Convert . ToString ( sjs [ 6 ] ) + ' + ' + Convert . ToString ( sjs [ 7 ] ) + ' + ' + Convert . ToString ( sjs [ 8 ] ) + ' + ' + Convert . ToString ( sjs [ 9 ] ) + ' + ' + Convert . ToString ( sjs [ 10 ] ) + ' = ' ;
 timer1 . Enabled : = true ;
 button1 . Enabled : = false ;
 button2 . Enabled : = true ;
 shijian : = 0 ;
 tishu : = 1 ;
 richtextbox1 . Visible : = false ;
 label4 . text : = '第' + Convert . ToString ( tishu ) + '題' ;
 textbox1 . Clear ;
end ;

之後我們需要在文本框( textbox1 )中填寫得數,點擊“下一題” ,就可以從新開始一道新的題目了。 但為了統計所做題目相關信息,如:正誤等,所以我們還要在福文本框中添加相應的信息。

按照前面的構思我們要在TWinForm . button2 _ Click事件中加入下面的代碼:

procedure TWinForm . button3 _ Click ( sender : System . Object ; e : System . EventArgs ) ;
begin
//添加自己的代碼
if textbox1 . Text = Convert . ToString ( ds [ 1 ] ) then
begin
 richtextbox1 . Text : = richtextbox1 . text + label3 . Text + textbox1 . Text + ' 正確' + chr ( 13 ) + chr ( 10 ) ;
 fenpei ;
 jisuan ;
 label3 . Text : = Convert . ToString ( sjs [ 1 ] ) + ' + ' + Convert . ToString ( sjs [ 2 ] ) + ' + ' + Convert . ToString ( sjs [ 3 ] ) + '+ ' + Convert . ToString ( sjs [ 4 ] ) + ' + ' + Convert . ToString ( sjs [ 5 ] ) + ' + ' + Convert . ToString ( sjs [ 6 ] ) + ' + ' + Convert . ToString ( sjs [ 7 ] ) + ' + ' + Convert . ToString ( sjs [ 8 ] ) + ' + ' + Convert . ToString ( sjs [ 9 ] ) + ' + ' + Convert . ToString ( sjs [ 10 ] ) + ' = ' ;
 TextBox1 . Text : = ' ' ;
 tishu : = tishu + 1 ;
 label4 . text : = '第' + Convert . ToString ( tishu ) + '題' ;
 end
else
begin
 richtextbox1 . Text : = richtextbox1 . text + label3 . Text + textbox1 . Text + ' 錯; 正確得數為 :' + Convert . ToString ( ds [ 1 ] ) + chr ( 13 ) + chr ( 10 ) ;
 fenpei ;
 jisuan ;
 label3 . Text : = Convert . ToString ( sjs [ 1 ] ) + ' + ' + Convert . ToString ( sjs [ 2 ] ) + ' + ' + Convert . ToString ( sjs [ 3 ] ) + ' + ' + Convert . ToString ( sjs [ 4 ] ) + ' + ' + Convert . ToString ( sjs [ 5 ] ) + ' + ' + Convert . ToString ( sjs [ 6 ] ) + ' + ' + Convert . ToString ( sjs [ 7 ] ) + ' + ' + Convert . ToString ( sjs [ 8 ] ) + ' + ' + Convert . ToString ( sjs [ 9 ] ) + ' + ' + Convert . ToString ( sjs [ 10 ] ) + ' = ' ;
 textbox1 . Text : = ' ' ;
 tishu : = tishu + 1 ;
 label4 . text : = ' 第' + Convert . ToString ( tishu ) + '題' ;
end ;
end ;

對於“完成“按鈕,我們所要做的就是在此按鈕被點擊時,讓福文本框的可見性變為true,這樣就可以顯示剛才所保存的所有做題信息了。

代碼如下所示:

procedure TWinForm . Button3 _ Click ( sender : System . Object ; e : System . EventArgs ) ;
begin
 //添加自己的代碼
 button1 . Enabled : = true ;
 button3 . Enabled : = false ;
 button2 . Enabled : = false ;
 richtextbox1 . Text : = richtextbox1 . text + '作題數 :' + Convert . ToString ( tishu ) + ' 用時 :' + Convert . ToString ( shijian ) + '秒' ;
 richtextbox1 . Visible : = true ;
 timer1 . Enabled : = false ;
end ;

我們還要在鐘表觸發事件中添加代碼,用來顯示做題時的時間信息.代碼如下:

procedure TWinForm . Timer1 _ Tick ( sender : System . Object ; e : System . EventArgs ) ;
begin
 //添加自己的代碼
 label2 . text : = '用時 :' + Convert . ToString ( shijian ) + '秒' ;
 shijian : = shijian + 1 ;
end ;

最後,就是在窗體初始化時,對相關變量信息的設置。代碼如下:

procedure TWinForm . TWinForm _ Load ( sender : System . Object ; e : System . EventArgs ) ;
begin
 //添加自己的代碼
 shijian : = 0 ;
 tishu : = 1 ;
end ;

運行界面如下:

這樣我們的軟件就完工了。當然我希望大家通過這個簡單的實例,大家在編寫和使用的過程中,能體會到Delphi為我們提供的完美的服務。

五、結束語

Delphi 2005總的來說還是挺直得一用的工具,無論從大的功能方面,還是小的細節方面,都時很不錯的。但是,當你用了微軟的工具之後,也許你對這些功能就不覺得很驚奇了。最重要的是,對於硬件的需求來說,Delphi 2005確實比較吃內存,如下圖所示:

這是我在主頻2.8G的inter p4 處理器,256m ddr333的機器上的測試,雖然,不象之前大家所傳的必須要使用512m內存那麼誇張,但是可以看到在還是比較吃內存的。最重要的一點,Delphi 2005 將Delphi帶入了.NET時代是一大進步,也是廣大Delphi用戶的一件幸事,但在其中添加C#等工程就顯得畫蛇添足。畢竟Delphi用戶,再學習C#是一件比較艱難的事情,即使學習之後,難道真的有必要使用Delphi嗎?微軟的VC#,和Borland自己的C# builder不是更專業嗎?我不解...

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved