熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

利用Delphi2005編寫C#應用程序

2022-06-13   來源: Delphi編程 
Delphi 被Broland成為windows平台上的最終的完整解決方案 Delphi 集成了Delphi C # Microsoft NET Framework and Win 支持圖形用戶接口( GUI ) Web開發 數據庫富客戶端應用程序( richclient applications )等多種開發開發語言同時還集成了軟件生命周期管理( ALM )功能及開發者生產力促進功能(即RAD)在Delphi 所提供的IDE使windows平台的開發更快速更容易並且新的版本能更好的支持Win 標准同時還提供了一個世界級水平的編譯器和調試器他還提供了大量的可重用的組件一個強大的代碼生成向導可以幫你更快的產生你所想要的代碼Delphi 還 包括了嶄新的第二代企業核心對象技術 ( Borland Enterprise Core Objects II即ECO II ) ECO II 為模型驅動的NET企業應用提供了開發框架Delphi 還能協助開發團隊在創建新應用的同時維護及改進現有的Windows應用
  
  總之憑借Delphi 開發人員既能繼續改進Win應用又能先行采用NET及ASPNET是一款值得使用的開發工具這篇文章中我們就在Delphi 開發環境中體驗一下Borland為我們提供的C# 開發功能閒話少敘還是趕快進入我們的C#體驗之旅吧!
  
  先打開Delphi 開發環境點擊菜單中的 file 在顯示的下拉菜單中選擇New 如下圖所示
  
 

  鼠標點擊 new 會在右面會在右面出現一個下級菜單如下圖所示
  
 

  我們在其中選擇 other 緊接著回彈出 new Items 對話框如下圖所示
  
 

  我們在其中的左邊選擇 c # Projects 並在右面選擇 Console Application 點擊 ok 按鈕會出現 New Application 對話框在其中 Name: 中添加一個工程的名字 Location: 項中添加保存工程的位置可以點擊後面的 按鈕在彈出的保存對話中選擇保存位置如下圖所示
  
 

  在 New Application 對話框中點擊 ok 按鈕進入Delphi 的編程環境
  
  下圖顯示的是其中的項目窗口中的內容
  
 

  因為我們在 New Application 對話框中沒有改變工程的名稱使用了默認的 Project 所以在此顯示為 Projectexe (我們在這裡將工程命名為 colcsharpip 所以顯示為 colcsharpip AssemblyInfocs 是與系統有關的文件 Classcs 則是我們要添加代碼的地方
  
  默認的情況下在編譯器的正中間就應該顯示編譯器給我們添加的代碼如下所示
  
  using System ;
  
  namespace Project
  {
   /// <summary>
   /// Summary description for Class
   /// </summary>
   class Class
   {
  /// <summary>
  /// The main entry point for the application
  /// </summary>
  [STAThread]
  static void Main ( string [ ] args )
  {
   //
   // TODO : Add code to start application here
   //
  }
   }
  }
  
  說明
  
  ()其中using System 表示使用System庫就像用delphi 程序中開頭的
  
  uses
  System Drawing System Collections System ComponentModel
  System Windows Forms System Data ;
  
  功能是一樣的
  
  ()namespace Project中的namespace 關鍵字表示一個名空間
  
  ()class Class 表示建立一個名字為Class的類
  
  ()static void Main ( string [ ] args )才是程序的入口函數
  
  下面我們建立自己的程序在程序中我們要實現的功能是再輸入主機名字時顯示該主機的ip地址並顯示相關的信息如ip地址協議簇以及ip協議的版本步驟如下
  
  ()為了實現以上功能要在文件開頭添加如下庫的引用代碼如下
  
  //添加所要用到的庫文件
  using System Net ;
  using System Net Sockets ;
  using System Text RegularExpressions ;
  
  ()在static void Main ( string [ ] args ) { }中添加如下代碼
  
  //定義一個字符串型的變量用來保存主機的名稱
  string server = null ;
  
  // 定義了一個用戶輸入的規則
  // 用來檢查用戶的輸入
  // 他只允許用戶輸入 ~ 個字符長度的字符串
  Regex rex = new Regex ( @ ^ [ a – z A – Z ] \ w { } $ ) ;
  
  if ( args Length < ) //如果輸入的字符長度小於
  {
   //如果沒有主機名稱被作為程序的參數輸入
   // 那麼就一當前主機的名稱作為默認的主機
   server = Dns GetHostName ( ) ; //使用Dns類的GetHostName方法得到主機名稱並保存在server變量中
   Console WriteLine ( Using current host : + server ) ;
   //使用Console類的WriteLine方法在控制面板中輸出信息
  }
  else //如果輸入的字符長度大於
  {
   server = args [ ] ; //得到參數中的值並保存在server變量中
   if ( ! ( rex Match ( server ) ) Success ) //如果輸入的格式不對
   {
  Console WriteLine ( Input string format not allowed ) ; //顯示提示信息
  return ;
   }
  
   // 設置顯示所用的文字類型
  
   System Text ASCIIEncoding ASCII = new System Text ASCIIEncoding ( ) ;
  
   // 得到主機相關信息
   IPHostEntry heserver = Dns Resolve ( server ) ;
  
   //列舉主機地址列表
   foreach (IPAddress curAdd in heserver AddressList )
   {
  // 顯示主機所支持的地址協議簇類型
  // 如果這個主機所支持的地址協議簇類型是IPv enabled 那麼它的值為 InternNetworkV
  // 如果這個主機所支持的地址協議簇類型也是IPv enabled 那麼它的值為 InterNetwork
  Console WriteLine ( AddressFamily : + curAdd AddressFamily ToString ( ) ) ;
  
  // 顯示IPV 地址中的ScopeId 屬性
  if ( curAdd AddressFamily ToString ( ) == ProtocolFamily InterNetworkV ToString ( ) )
  Console WriteLine ( Scope Id : + curAdd ScopeId ToString ( ) ) ;
  
   // 使用標准格式顯示主機的IP地址
   // 如果是IPv格式將被顯示為點分格式
   // 如果是IPv格式將被現實為冒號分割的十六進制方式
   Console WriteLine ( Address : + curAdd ToString ( ) ) ;
  
  // 按字節格式顯示主機的IP地址
  Console Write ( AddressBytes : ) ;
  
  Byte[] bytes = curAdd GetAddressBytes ( ) ;
  for (int i = ; i < bytes Length ; i + + )
  {
   Console Write ( bytes [ i ] ) ;
  }
  
  Console WriteLine ( \ r \ n ) ;
  
   }
  
   // 顯示主機是否支持IPv和IPv
   Console WriteLine ( \ r \ n SupportsIPv : + Socket SupportsIPv ) ;
   Console WriteLine ( SupportsIPv : + Socket SupportsIPv ) ;
  
   if ( Socket SupportsIPv ) //如果支持IPv
   {
  // 顯示IPv種偵聽的地址
  Console WriteLine ( \ r \ n IPvAny : + IPAddress IPvAny ToString ( ) ) ;
  
  // 顯示主機的回送地址
  Console WriteLine ( IPvLoopback : + IPAddress IPvLoopback ToString ( ) ) ;
  
  Console WriteLine ( IsLoopback ( IPvLoopback ) : + IPAddress IsLoopback ( IPAddress IPvLoopback ) ) ;
   }
  
   //顯示IPv主機的回送地址
   Console WriteLine ( IsLoopback ( Loopback ) : + IPAddress IsLoopback ( IPAddress Loopback ) ) ;
  
   //輸入任意鍵程序繼續
   Console Read ( ) ;
  }
  
  顯示結果如下圖所示
  

  體會
  總體感覺Delphi 中的提供了多種語言編寫程序的平台但C#編譯的速度還比較快不想再C++ Builder中的兩種語言所產生的編譯速度超慢的現象可見Borland工程師對於編譯速度還是用心了不過就是在啟動時因為載入的東西太多啟動速度讓人著急
From:http://tw.wingwit.com/Article/program/Delphi/201311/8443.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.