bds即Delphi2007 控件安裝

 
Delphi 2006 高級控件應用

來源:電腦報

    Borland Developer Studio 2006 已於 2005 年 12 月 5 日正式發佈了。 Delphi 2006 是 Borland Developer Studio 2006 產品中的一部分,我們不僅能繼續開發基於 Win32 平臺的應用程序,還可以使用 Delphi 語言編寫 .NET 平臺的應用程序,使得 Delphi 程序員可以輕鬆的將 Win32 平臺的應用程序移植到 .NET 平臺中。
    本文將帶領讀者去體驗一下 Delphi 2006 中高級控件的應用。看完本文後,你會發現,使用 Delphi 2006 將會使你更加高效、快速地開發應用程序。
  一、 Delphi 2006 中控件的安裝
    以前的大多數第三方控件仍然可以在 Delphi 2006 中使用。只是在安裝方式上有一些差別。
    1 . DPK 控件包的安裝方法:
    有一些第三方控件提供給我們的是 DPK 文件,在 Delphi7 中,我們直接雙擊就可以進行安裝。但是在 Delphi 2006 中,步驟有一點不同。我們以 FlatStyle 控件的安裝爲例,講解一下 DPK 控件包的方法:
    第一步:啓動 Delphi for Microsoft Win32 ,點擊“ File ”菜單下的“ Open Project ”,選擇要安裝的 DPK 文件 FlatStyle_D7.dpk ,點擊“打開”按鈕。
    第二步:在右邊的“ Project Manager ”中,鼠標右擊控件名稱 FlatStyle_D7.bpl ,在彈出的菜單中點擊“Install”。 Delphi 2006 將對控件進行編譯並安裝。
安裝控件


    2 .單個 PAS 文件的安裝:
    有一些第三方控件只有一個 PAS 文件,沒有提供安裝包,在 Delphi 7 中,可以單獨對 PAS 文件進行安裝,但是在 Delphi 2006 裏,已經取消了這個功能。那麼在 Delphi 2006 中如何安裝單個的 PAS 文件呢?方法如下:
    第一步:點擊“ File ”-“ New ”菜單中的“ Package – Delphi for Win32 ”,新建一個控件包。
    新建控件包
    第二步:選中右邊“ Project Manager ”中“ Contains ”文件夾,點擊鼠標右鍵,在彈出的菜單中選擇“ Add ”。
    添加
    第三步:在 Add 對話框中,點擊“ Browse ”按鈕,選擇要安裝的 PAS 文件,然後點擊“ OK ”按鈕。
    選擇 PAS 文件
    第四步:鼠標右擊“ Project Manager ”中的“ Package1.bpl ”,在彈出的菜單中選擇“ Install ”,這時就完在了控件的安裝。
    第五步:保存 bpl 文件。
   
    二、屬性編輯器控件
    1 . TValueListEditor
    Delphi 2006 提供的 TValueListEditor 控件可以編寫一個類似於 Delphi7 的 Object Inspector 。下面我們就來編寫一個簡單的屬性編輯器,如下圖所示:
    屬性編輯器
    第一步:在窗體上放置一個 ValueListEditor 控件(在 Additional 面板中可能找到該控件)。
    第二步:添加屬性名稱及屬性值。本例中,我們一共有 3 個屬性,分別是“ Name ”、“ Color ”和“ Size ”。 ValueListEditor 爲我們提供了 InsertRow 方法,使用該方法可以添加屬性名稱及屬性值。代碼如下:
    ValueListEditor1.InsertRow('Name', '', True);
    ValueListEditor1.InsertRow('Color', 'clRed', True);
    ValueListEditor1.InsertRow('Size', '9', True);
    是不是非常簡單?運行程序,用鼠標點擊 Size 中的 9, 效果是否不同呢?編輯器中有一個下拉列表,那麼如何實現呢?我們將第三句代碼作如下修改:
    Index := ValueListEditor1.InsertRow('Size', '9', True);
    首先獲取要修改的行號, InserRow 在插入一行後,會返回當前行的行號。下面再使用 ItemProps 屬性修改“行”的屬性:
    with ValueListEditor1.ItemProps[Index - 1].PickList do begin
    Add('9');
    Add('11');
    Add('13');
    Add('20');
    end;
    PickList 中就是保存的下接列表中的數據。
    現在再運行程序看看效果,是否一樣了呢?
    下面我們再看一個效果:
    帶“彈出”效果的編輯器
    圖中的 clRed 後有一個“ … ”按鈕,在 Delphi 7 中,當這個按鈕出現時,我們可以通過點擊這個按鈕彈出一個窗體,進行相應的屬性設置。那麼,我們要實現這樣的效果也是非常簡單的,將“ ValueListEditor1.InsertRow ('Color', 'clRed', True); ”這句代碼作如下修改:
    Index := ValueListEditor1.InsertRow('Color', 'clRed', True);
    ValueListEditor1.ItemProps[Index - 1].EditStyle := esEllipsis;
    修改 ItemProps 中的 EditStyle 屬性爲“ esEllipsis ”即可實現這樣的效果。但是,現在這個按鈕什麼都不能幹,需要我們加入執行代碼纔會發揮其作用。在這個例子中,我們要求點擊“ … ”按鈕後,彈出顏色對話框,然後將用戶選擇的顏色值顯示在 Color 右邊的文本框中。我們可以在 OnEditButtonClick 事件中寫入實現代碼:
    procedure TForm1.ValueListEditor1EditButtonClick(Sender: TObject);
    var
    nRow: Integer;
    begin
    nRow := ValueListEditor1.Row;
    case nRow of
      2:
      with TColorDialog.Create(nil) do
      begin
        if Execute then
        ValueListEditor1.Cells[2, nRow] := ColorToString(Color);
        end;
    end;
    end;
    當點擊“ … ”按鈕時,會觸發 OnEditButtonClick 事件。在 OnEditButtonClick 事件中,我們首先使用 ValueListEditor1.Row 獲取當前“行”的行號,也就是鼠標點擊的是哪一行的按鈕。知道了行號,我們就可以根據行號來加入相應的代碼。在本例中,只有第二行有“ … ”按鈕,因此,當 Row 等於 2 時,我們就顯示顏色對話框。“ ValueListEditor1.Cells[2, nRow] := ColorToString(Color); ”這一句代碼是將用戶選擇的顏色值顯示到文本框中。
    通過上面的講解,我們知道了屬性記錄的添加及設置。那麼如何獲取某個屬性的屬性值呢?請看下面:
    假如我們要獲取 Name 的屬性值,我們使用下面的代碼即可獲得:
    ShowMessage(ValueListEditor1.Cells[2, 1]);
    前面我們通過 Cells 屬性設置了文本框中的內容,在這裏,我們可以使用 Cells 屬性獲取指定文本框的內容。 Cells 有 2 個參數,第一個是列,第二個是行。 Name 的屬性值是在第 2 列、第一行中的,因爲指定 Cells[2,1] ,如果要獲取 Size 的屬性值,那麼就應該是 Cells[2,3] 。
    屬性 / 方法說明
    DeleteRow 刪除指定行。
    FindRow 查找行。
    ColCount 獲取列的個數。
    ItemProps.HasPickList 是否捅有下拉列表。
    Values 根據 Key 獲取 Key 所對應的值。
    Keys 獲取 Key 的值 RowCount 獲取行的個數。

    三、系統控件
    1 . TTrayIcon 在 Delphi 2006 中,新增了一個 TTrayIcon 的控件。該控件是用於在托盤中顯示自己軟件的圖標。使用 TTrayIcon 控件可以很容易的實現“動態圖標”及“氣泡提示”功能。如下圖所示:
    托盤顯示
    ( 1 )“氣泡提示”的製作
    第一步:在窗體中放置 TrayIcon 控件( Additional 面板中可以找到)。
    第二步:設置 TrayIcon 的 Icon 圖標,載入一個 ICO 文件。
    第三步:設置 TrayIcon 的 BalloonHint 爲“ Delphi 2006 高級控件應用”,設置 BalloonTitle 爲“電腦報 2005 年合訂本”。設置 Visible 爲 True 。
    第四步:雙擊窗體,在 OnCreate 事件中寫入下面代碼: TrayIcon1.ShowBalloonHint;
    好了, F9 運行程序,一個“氣泡提示”就會出現在圖標上。屬性中的 BalloonTimeout 是設置“氣泡提示”多少秒後消失,默認是 3 秒。
    ( 2 )動態圖標
    我們大家都知道,當有 QQ 消息時,托盤中會有一個閃爍圖標,使用 TrayIcon 控件可以非常容易地實現這個功能。
    使圖標動起來,其實就是使用多個圖標進行切換。 QQ 的閃爍圖標,其實就是使用的兩個圖標來進行切換的,一個是頭像圖標,一個是空的圖標。
    下面我們就來模擬 QQ 頭像閃爍功能:
    第一步:在窗體上放置 ImageList 控件(在 Win32 面板中可以找到)。
    第二步:設置 ImageList 控件的 Width 和 Height 屬性爲 32 ,然後雙擊 ImageList ,點擊“ Add ”按鈕添加圖標文件。第一個添加的是要顯示的圖標,第二個添加一個空的圖標(可以使用 Image Editor 新建一個 ICO 文件,然後直接保存即可得到一個空的圖標。)。
    第三步:設置 TrayIcon 的 Icons 屬性爲 ImageList1 (可以直接在列表中選擇)。
    第四步:在 Form1 的 OnFormShow 事件中加入下面的代碼:
    TrayIcon1.Animate := True;
    TrayIcon1.AnimateInterval := 450;
    當 Animate 爲 True 時,將自動按 ImageList 控件中圖標的順序進行依次顯示,形成動態效果。 AnimateInterval 爲每隔多少時間顯示下一個圖標。如果要停止閃爍,將 Animate 設置爲 False 即可。
    怎麼樣, Delphi2006 提供的 TTrayIcon 控件是不是很酷。

    屬性 / 方法說明
    Animate 設置是否使用動態圖標。
    AnimateInterval 圖標變化的時間。
    BalloonFlags 氣泡提示中的圖標。
    bfError 爲錯誤圖標
    bfInfo 爲信息圖標
    bfWarning 爲警示圖標。
    BalloonTimeout 氣泡提示消失時間。
    BalloonTitle 氣泡提示標題。
    Hint 托盤圖標提示。
    當鼠標移動到托盤中的圖標時顯示。
    Icon 設置托盤圖標。
    IconIndex 圖標索引。
    Icons 圖標集合。一般使用 ImageList 控件包含圖標集合。
    Visible 是否在托盤中顯示。

    四、界面控件
    1 . XPMenu
    XPMenu 控件可以幫助我們輕鬆製作 XP 樣式的菜單。這是一個第三方控件,其講解“單個 PAS 文件的安裝”中,就是以 XPMenu 爲例講解的。首先我們先使用 TMainMenu 或者 TPopupMenu 製作好菜單,然後在 XP 面板中將 TXPMenu 控件拖動到窗體中,將 XPMenu 的 Active 和 AutoDetect 屬性設置爲 True 就可以了。如果我們想自己定義菜單的背景色、邊框顏色,甚至是字體的大小及顏色,也是很容易的。下表是修改菜單、字體顏色的屬性:屬性說明 SelectBorderColor 選中菜單時邊框顏色 SelectColor 選中菜單時的背景顏色 SelectFontColor 選中菜單時文字的顏色 Separator Color 分隔線的顏色 Font 設置字體、大小、顏色 2 . FlatStyle FlatStyle 是一套平面控件。如果想你的界面與衆不同,那麼使用 FlatStyle 是最佳選擇。 TFlatTitleBar TFlatTitleBar 模擬標題欄控件。效果如下圖所示:模擬標題欄控件將 FlatTitlebar 放置到窗體上,然後將 Align 屬性設置爲 alTop ,由於窗體中有默認的標題欄,因此我們需要將窗體的 BorderStyle 設置爲 None 去掉標題欄。 TFlatHint FlatHint 改變了 Windows 的標準提示信息框樣式。其效果如下:
改變效果只要我們爲控件設置好了 Hint 屬性,並將 ShowHint 設置成 True ,那麼將 TFlatHint 控件拖動到窗體上就可以了。由於 TFlatHint 默認使用的字體是英文,顯示出來的漢字比較小,只需將 FlatHint 的 Font 屬性設置爲中文字體即可。五、多媒體控件 1 . TWinAmpComponent 該控件可以幫助我們操控 Winamp 。操控 Winamp 一些常用的 Winamp 方法: WinAmpControl1.Play; 播放音樂 WinAmpControl1.PrevTrack; 前一首音樂 WinAmpControl1.Pause; 暫停播放 WinAmpControl1.Stop; 停止播放 WinAmpControl1.NextTack; 下一首音樂 WinAmpControl1.SetVolume 設置音量 WinAmpControl1.GetSongLength 獲取音樂長度 WinAmpControl1.SetRepeat; 設置重複播放 WinAmpControl1.ClearRepeat; 清除重複播放 WinAmpControl1.SetShufle; 設置無序播放 WinAmpControl1.ClearShufle; 清除無序播放 WinAmpControl1.ClearPlayList; 清除播放列表

WinAmpControl1.AddFile 添加音樂 WinAmpControl1.AddDir 添加目錄 2 . Audio Components Suite Audio Components Suite ,一套跨平臺的音頻處理組件包:支持音頻回放、捕捉; CD-ROM 回放、 CDDA 捕捉; Wave 流支持; MP3 、 Ogg 、 FLAC 、 Monkey 等格式支持;音頻混響處理;輸入設備動態捕捉;音頻格式轉換;聲音音頻指示器;其他一些特效。錄音例子:第一步:添加 TAudioIn 、 TWaveOut 到窗體上。第二步:設置 AudioIn1 和 WaveOut1 的相關屬性: AudioIn1.InSampleRate := 44100; AudioIn1.InBitsPerSample := 16; AudioIn1.InChannels := 2; AudioIn1.RecTime := 30; WaveOut1.FileName := SaveDialog1.FileName; 第三步:開始錄音 WaveOut1.Run; 一個簡單的錄音程序就寫好了。如果要停止錄音,可以使用 WaveOut1.Stop; 。六、文件操作控件 1 . TEasyFileSearch TEasyFileSearch 一個用來搜索文件的組件,支持子目錄搜索,支持通配符 (*.*, *.exe, ...) 過濾。可以按最小文件大小、最大文件大小、文件日期進行搜索。搜索文件搜索例子:首先將 TEasyFileSearch 、 TButton 、 TListView 控件添加到窗體上。然後雙擊 Button1 控件,輸入下面的代碼: EasyFileSearch1.RootPath := ‘ C:/ ’ ; EasyFileSearch1 SearchOptions := [okIncludeSubfolder] EasyFileSearch1.FileNames.Clear; EasyFileSearch1.FileNames.Add( ‘ *.* ’ ); EasyFileSearch1.Search; 上面 4 句代碼就可以將 C 盤下所有文件都搜索出來。 SearchOptions 設置爲 okIncludeSubfolder 表示搜索子目錄。如何獲取搜索到的文件呢?我們可以使用 OnFileFound 事件。代碼如下: procedure TForm1.EasyFileSearch1FileFound(FileFound: TFileInformations); var NewItem : TListItem; Time : String; begin { 添加找到的文件 } NewItem := ListView1.Items.Add; with NewItem do

begin Caption := FileFound.Name; SubItems.Add(FileFound.Path); Time := IntToStr(FileFound.Time.CreationTime.wDay)+'/'; Time := Time+IntToStr(FileFound.Time.CreationTime.wMonth)+'/'; Time := Time+IntToStr(FileFound.Time.CreationTime.wYear); SubItems.Add(Time); SubItems.Add(IntToStr(FileFound.Size)); end; end; 2 . Disk Controls Disk Controls 能夠讓使用例如硬盤、軟盤、 CD 、內存、網絡、外殼及文件系統的相關開發更加簡單。組件介紹及使用方法:( 1 ) dcDiskScanner 用於查找文件。示例代碼: dcDiskScanner1.Folder := 'C:/'; dcDiskScanner1.SearchMask := '*.bmp'; dcDiskScanner1.IncludeSubfolders := True; // 包含子目錄 dcDiskScanner1.Execute; // 執行搜索在 OnFileFound 事件中獲取搜索到的文件: procedure TForm1.dcDiskScanner1FileFound(Sender: TObject; const FileName, FileType: string; const FileSize: Extended; const FileTime: TDateTime; const FileAttributes: TdcScanAttributes; const LargeIcon, SmallIcon: TIcon; SysImageIndex, TotalFiles: Integer; const TotalSize: Extended); begin ListBox1.Items.Add(FileName); end; ( 2 ) dcMultiDiskScanner 該控件的作用及使用方法與 dcDiskScanner 類似。 dcMultiDiskScanner 增加了一個過濾文件的屬性 ExcludeList ,該列表中包含的文件將不被搜索。( 3 ) dcFileOperations 該控件可以複製、刪除、移動、重命名多個文件或者文件夾。示例代碼: dcFileOperations1.FileList.Add('c:/test.txt'); dcFileOperations1.DestFolder := 'd:/'; dcFileOperations1.Operation := foCopy; dcFileOperations1.Execute; ( 4 ) dcFolderMonitor 監視文件夾被刪除、複製、更名時的動作。示例代碼: dcFolderMonitor1.Folder := 'd:/'; dcFolderMonitor1.Filter := [fmFileName]; dcFolderMonitor1.Active := True; 監視 D 盤,當 D 盤中文件的文件名被更改時,觸發 OnChange 事件。( 2 ) dcVirtualDrives 創建虛擬磁盤。

虛擬磁盤示例代碼: procedure TForm1.Button1Click(Sender: TObject); begin if dcVirtualDrives1.AddDrive('H', ‘ D:/Music ’ ) then ShowMessage(' 添加成功! '); end; 當我們關閉程序時,應該使用 dcVirtualDrives1.DeleteDrive('H'); 刪除虛擬磁盤。( 6 ) dcDiskInfo 獲取磁盤信息。指定 Disk 後,即可通過訪問 dcDiskInfo 的相關屬性獲取信息。( 7 ) dcFileInfo 獲取文件信息。指定 FileName 後,即可通過訪問 dcFileInfo 的相關屬性獲取信息。( 8 ) dcFileCRC 獲取文件的 CRC 值。( 9 ) dcVersionInfo 獲取文件的版本信息。主要用於獲取 EXE 、 DLL 及 OCX 文件的版本信息。( 10 ) dcShellIcon 獲取文件關聯的圖標。( 11 ) dcShellLink 獲取快捷方式所指向的文件。( 12 ) dcShellProperties 顯示指定文件、文件夾的屬性框及顯示右鍵菜單。( 13 ) dcIcon2Bitmap 可以將圖標文件轉換爲 BMP 圖片。 Delphi 的 VCL 爲我們開發程序帶來了極大的方便。功能強大,豐富多彩的第三方控件更使得我們如虎添 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章