修改 DirectoryOutline.Directory 即可切換目錄。若磁碟機同時改變,需同步 DriveTabSet.TabIndex。因磁碟機字母與索引無固定對應,採循環比對:
procedure TFMForm.ChangeDirectory(ToDir: String);
var i: Integer;
begin
{$I-}
ChDir(ToDir);
if IOResult <> 0 then
MessageDlg('Cannot find directory', mtWarning, [mbOk], 0)
else
begin
with DirectoryOutline do
begin
Directory := ToDir;
Refresh;
if DriveTabSet.Tabs[DriveTabSet.TabIndex][1] <> Drive then
for i := 1 to 25 do
if DriveTabSet.Tabs[i][1] = Drive then
begin
DriveTabSet.TabIndex := i;
Exit;
end;
end;
end;
end;
ChangeDirectory 與檔案移動/複製/更名共用 FileChange 事件處理器(詳見前文)。
格式:當前目錄\檔案類型過濾器。CreateCaption 過程:
procedure TFMForm.CreateCaption;
var Cap: String;
begin
Cap := DirectoryOutline.Directory;
Cap := Cap + '\' + FileList.Mask;
Caption := Cap;
end;
目錄變更(DirectoryOutline.OnChange)或檢視類型變更(ViewType 選單)時呼叫更新標題。