程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 在DELPHI中如何調用系統對話框

在DELPHI中如何調用系統對話框

編輯:Delphi
在寫程序的時候,有時我們為了省力,或者為了別的目的,我們常常想借用系統的對話框,那麼,如何才能調用系統對話框呢?一位朋友是VB中是這樣調用“打開方式”對話框的:
  winexec(PChar('rundll32  shell32,OpenAs_RunDLL  '+FilePath),SW_SHOWDEFAULT);
  這句代碼是運行rundll32.exe,讓它調用shell32.dll中的資源來實現的。方法可行,但是有許多像我一樣的菜鳥並不明白如何調用shell32.dll中的寶貴資源,我們應該如何去做呢?
  下面說說我是如何調用的:
  一、調用系統“About”對話框:
  首先在uses中加入SHellApi,
  然後寫下如下代碼:
  procedure TForm1.Button1Click(Sender: TObject);
  var
    shellapp: variant;
  begin
    ShellAboutW(0,'Timer v1.03','kedy版權所有',1);
  end;
  其他步驟我不詳述。運行後點擊button就會彈出標准的Windows關於對話框。對話框標題為"關於Timer v 1.03"。大家可以看到,在程序中我使用了ShellAboutW這個函數。在MSDN2003中這個函數是這樣描述的:
  ShellAbout Function
  Displays a ShellAbout dialog box. 
  Syntax
  int ShellAbout(          HWND hWnd,
      LPCTSTR szApp,
      LPCTSTR szOtherStuff,
      HICON hIcon
  );
  Parameters
  hWnd
  [in] Window handle to a parent window. This parameter can be NULL. 
  szApp
  [in] Pointer to a null-terminated string containing text that will be displayed in the 
  title bar of the ShellAbout dialog box and on the first line of the dialog box after the 
  text "Microsoft". If the text contains a separator (#) dividing it into two parts, the 
  function displays the first part in the title bar and the second part on the first line 
  after the text "Microsoft". 
  szOtherStuff
  [in] Pointer to a null-terminated string containing text that will be displayed in the 
  dialog box after the version and copyright information. 
  hIcon
  [in] Icon that the function displays in the dialog box. If this parameter is NULL, the 
  function displays the Microsoft® Windows® or Microsoft Windows NT® icon. 
  什麼意思我想不用我來翻譯了吧,這些東西自己去看最好。
  二、調用關機對話框
  我們只要把begin部分代碼改為
  begin
    shellapp := CreateOleObject('Shell.Application');
    shellapp.ShutDownWindows;
  end;
  其他部分不變。運行點擊button我們就可以看到標准的系統關機對話框了。
  其實這還是調用的WindowsAPI函數shutdownWindows.
  這個部分使用的是Windows的shell application的method中的兩個函數。method其他的函數還有:
  BrowseForFolder、CascadeWindows、ControlPanelItem、EjectPC、Explore、FileRun、FindComputer、FindFiles、Help、MinimizeAll、NameSpace、Open、RefreshMenu、SetTime、TileHorizontally、TileVertically、TrayPropertIEs、UndoMinimizeALL。我也只是學會了使用其中的幾個函數。詳細情況請大家查看MSDN中有關shell object的內容。
  
  我最想說的是,學Windows下的程序一定要用MSDN。這個庫裡的資源讓我實在驚歎不已,大家可以看一看,我想你也會這樣認為的。
  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved