📄 u_selectdir.pas
字号:
unit U_SelectDir;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, FileCtrl, ExtCtrls;
type
TFm_SelectDir = class(TForm)
DriveBox_Scbb: TDriveComboBox;
DirBox_Scbb: TDirectoryListBox;
Button_Ok: TButton;
Button_Cancel: TButton;
Bevel1: TBevel;
Edit_Dir: TEdit;
procedure DirBox_ScbbChange(Sender: TObject);
procedure Edit_DirKeyPress(Sender: TObject; var Key: Char);
procedure Edit_DirKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit_DirExit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Fm_SelectDir: TFm_SelectDir;
function Show_SelectDir: string;
implementation
uses U_GlobalProc, U_GlobalVar;
{$R *.DFM}
function Show_SelectDir: string;
var
tmS: string;
begin
Fm_SelectDir := TFm_SelectDir.Create(Application);
with Fm_SelectDir do
begin
try
Edit_Dir.Text := DirBox_Scbb.Directory;
if Showmodal = mrOK then
begin
tmS := '';
tmS := tmS + Edit_Dir.Text;
Result := tmS;
end
else
begin
Result := '';
end;
finally
Free;
end;
end;
end;
procedure TFm_SelectDir.DirBox_ScbbChange(Sender: TObject);
begin
Edit_Dir.Text := DirBox_Scbb.Directory;
end;
procedure TFm_SelectDir.Edit_DirKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #32 then
Key := #0;
end;
procedure TFm_SelectDir.Edit_DirKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_RETURN) and (Shift = []) then
begin
try
DirBox_Scbb.Directory := Edit_Dir.Text;
except
U_GlobalProc.Show_ErrorMess('输入目录错误,请重新输入。');
end;
end;
end;
procedure TFm_SelectDir.Edit_DirExit(Sender: TObject);
begin
if not (Button_Cancel.Focused or DirBox_Scbb.Focused) then
try
DirBox_Scbb.Directory := Edit_Dir.Text;
except
U_GlobalProc.Show_ErrorMess('输入目录错误,请重新输入。');
Edit_Dir.SetFocus;
Exit;
end;
if DirBox_Scbb.Focused then
try
DirBox_Scbb.Directory := Edit_Dir.Text;
except
Edit_Dir.Text := DirBox_Scbb.Directory;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -