子窗口主菜單包括File
由於對話框界面設計很簡單
子窗口的創建
● New Windows : 創建新的子窗口
● Tile : 平鋪
● Cascade : 層疊
● ArrangeIcon : 排列圖標
● Minimized All : 極小化所有子窗口
子窗口的創建只需要簡單調用窗體的Create方法
FileMan := TFMForm
子窗口的標准排列方式直接調用MDI窗口的標准方法Tile
極小化所有子窗口的實現利用MDI窗口的兩個屬性
for i :=
MDIChildren[i]
子窗口關閉時釋放內存空間
Action := OnFree;
為了保持和Windows的File Manager的一致性
If FileManager
CanClose := False;
CanClose是OnCloseQuery事件過程返回的一個參數
由於這一過程歸子窗口所有
但不幸的是
為此我們需要判斷發出關閉消息的是子窗口的系統菜單還是菜單的Exit項
定義一個全局變量
var
ExitClick: Boolean;
在子窗口的Exit
ExitClick := True;
FileManager
子窗口關閉前可以利用這一全局變量檢測是否應關閉
If (FileManager
CanClose := False;
在本例中我們使用了一組新的控件
TabSet與DirectoryOutline的聯系在TabSet的Click事件處理過程中建立
With DriveTabSet do
DirectoryOutline
DirectoryOutline與FileListBox的聯系在DirectoryOutline的Change事件處理過程中建立
FileList
FileList
Dephi為一些控件提供了自畫風格的顯示
自畫風格顯示通常的應用是為項目除文本外再添加圖形顯示
通常情況下產生一個自畫風格需要三個步驟
控件屬性Style 用於設置自畫風格
對於ListBox
在本程序中我們設置了三個圖片部件NetWork
根據字符串鏈表的性質
在子窗口的OnCreate事件處理過程中
程序清單如下
procedure TFMForm
var
Drive
DriveLetter: Char;
begin
for Drive :=
begin
DriveLetter := Chr(Drive + ord(
case GetDrivetype(Drive) of
DRIVE_REMOVABLE:
AddedIndex := DriveTabSet
DRIVE_FIXED:
AddedIndex := DriveTabSet
DRIVE_REMOTE:
AddedIndex := DriveTabSet
end;
if UpCase(DriveLetter) = UpCase(FileList
DriveTabSet
end;
end;
當把一個控件的風格設置為自畫時
對於TabSet而言
procedure TFMForm
var TabWidth: Integer)
var
BitmapWidth: Integer;
begin
BitmapWidth := TBitmap(DriveTabSet
Inc(TabWidth
end;
由於TStrings的Objects屬性中存放的對象都是TObject類型
BitmapWidth := TBitmap(DriveTabSet
返回目錄
編輯推薦
Java程序設計培訓視頻教程
J
Visual C++音頻/視頻技術開發與實戰
Oracle索引技術
ORACLE
Java程序性能優化
C嵌入式編程設計模式
Android游戲開發實踐指南
[
From:http://tw.wingwit.com/Article/program/Delphi/201311/25239.html