📄 toolsmgrfrm.pas
字号:
unit ToolsMgrFrm;
interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ToolsMgr;
type
TToolsMgrForm = class(TForm)
ToolsListBox: TListBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
TitleEdit: TEdit;
CmdLineEdit: TEdit;
ParaEdit: TEdit;
WorkDirEdit: TEdit;
RunModeComboBox: TComboBox;
BrowseCmdLineButton: TButton;
BrowseWorkDirButton: TButton;
Bevel1: TBevel;
CloseButton: TButton;
AddButton: TButton;
MoveUpButton: TButton;
MoveDownButton: TButton;
ClearButton: TButton;
DeleteButton: TButton;
OpenDialog: TOpenDialog;
ReplaceButton: TButton;
procedure CloseButtonClick(Sender: TObject);
procedure AddButtonClick(Sender: TObject);
procedure MoveUpButtonClick(Sender: TObject);
procedure MoveDownButtonClick(Sender: TObject);
procedure ClearButtonClick(Sender: TObject);
procedure DeleteButtonClick(Sender: TObject);
procedure BrowseCmdLineButtonClick(Sender: TObject);
procedure BrowseWorkDirButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ReplaceButtonClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ToolsListBoxDblClick(Sender: TObject);
private
{ Private declarations }
procedure ClearControls;
procedure FillToolsListBox;
function ReadControls: TToolsItem;
function CheckValid: Boolean;
public
{ Public declarations }
end;
var
ToolsMgrForm: TToolsMgrForm;
procedure ShowToolsMgrForm;
implementation
{$R *.DFM}
uses
Misc;
procedure ShowToolsMgrForm;
var
Frm: TToolsMgrForm;
begin
Frm := TToolsMgrForm.Create(Application);
Frm.ShowModal;
Frm.Free;
end;
procedure TToolsMgrForm.ClearControls;
begin
TitleEdit.Text := '';
CmdLineEdit.Text := '';
ParaEdit.Text := '';
WorkDirEdit.Text := '';
RunModeComboBox.ItemIndex := 0;
end;
procedure TToolsMgrForm.FillToolsListBox;
var
i: Integer;
begin
ToolsListBox.Items.BeginUpdate;
ToolsListBox.Items.Clear;
for i := 0 to Length(ToolsManager.Items) - 1 do
begin
ToolsListBox.Items.Add(ToolsManager.Items[i].Title);
end;
ToolsListBox.Items.EndUpdate;
end;
function TToolsMgrForm.ReadControls: TToolsItem;
begin
Result.Title := TitleEdit.Text;
Result.CmdLine := CmdLineEdit.Text;
Result.Para := ParaEdit.Text;
Result.WorkDir := WorkDirEdit.Text;
Result.RunMode := RunModeComboBox.ItemIndex;
end;
function TToolsMgrForm.CheckValid: Boolean;
begin
Result := True;
if TitleEdit.Text = '' then
begin
Result := False;
TitleEdit.SetFocus;
Exit;
end;
if CmdLineEdit.Text = '' then
begin
Result := False;
CmdLineEdit.SetFocus;
Exit;
end;
end;
procedure TToolsMgrForm.FormCreate(Sender: TObject);
begin
ClearControls;
FillToolsListBox;
end;
procedure TToolsMgrForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
ToolsManager.Save;
end;
procedure TToolsMgrForm.CloseButtonClick(Sender: TObject);
begin
Close;
end;
procedure TToolsMgrForm.AddButtonClick(Sender: TObject);
var
Item: TToolsItem;
begin
if not CheckValid then Exit;
Item := ReadControls;
ToolsManager.AddItem(Item);
ToolsListBox.Items.Add(Item.Title);
ToolsListBox.ItemIndex := ToolsListBox.Items.Count - 1;
ClearControls;
TitleEdit.SetFocus;
end;
procedure TToolsMgrForm.ReplaceButtonClick(Sender: TObject);
var
i: Integer;
Item: TToolsItem;
begin
i := ToolsListBox.ItemIndex;
if i = -1 then Exit;
if not CheckValid then Exit;
Item := ReadControls;
ToolsManager.ModifyItem(i, Item);
ToolsListBox.Items[i] := Item.Title;
TitleEdit.SetFocus;
end;
procedure TToolsMgrForm.MoveUpButtonClick(Sender: TObject);
var
i: Integer;
s: string;
begin
if ToolsListBox.ItemIndex = -1 then Exit;
i := ToolsListBox.ItemIndex;
if i > 0 then
begin
ToolsManager.MoveUp(i);
s := ToolsListBox.Items[i-1];
ToolsListBox.Items[i-1] := ToolsListBox.Items[i];
ToolsListBox.Items[i] := s;
ToolsListBox.ItemIndex := i - 1;
end;
end;
procedure TToolsMgrForm.MoveDownButtonClick(Sender: TObject);
var
i: Integer;
s: string;
begin
if ToolsListBox.ItemIndex = -1 then Exit;
i := ToolsListBox.ItemIndex;
if i < ToolsListBox.Items.Count - 1 then
begin
ToolsManager.MoveDown(i);
s := ToolsListBox.Items[i+1];
ToolsListBox.Items[i+1] := ToolsListBox.Items[i];
ToolsListBox.Items[i] := s;
ToolsListBox.ItemIndex := i + 1;
end;
end;
procedure TToolsMgrForm.ClearButtonClick(Sender: TObject);
var
R: Integer;
begin
R := MessageBox(Handle, '真的清空所有项目吗?', '提示', 48);
if R = ID_YES then
begin
ToolsManager.ClearItems;
ToolsListBox.Items.Clear;
end;
end;
procedure TToolsMgrForm.DeleteButtonClick(Sender: TObject);
var
i: Integer;
begin
if ToolsListBox.ItemIndex = -1 then Exit;
i := ToolsListBox.ItemIndex;
ToolsManager.DeleteItem(i);
ToolsListBox.Items.Delete(i);
if i > ToolsListBox.Items.Count - 1 then
i := ToolsListBox.Items.Count - 1;
ToolsListBox.ItemIndex := i;
end;
procedure TToolsMgrForm.BrowseCmdLineButtonClick(Sender: TObject);
begin
if OpenDialog.Execute then
begin
CmdLineEdit.Text := OpenDialog.FileName;
end;
end;
procedure TToolsMgrForm.BrowseWorkDirButtonClick(Sender: TObject);
var
Path: string;
Ok: Boolean;
begin
Path := '';
Ok := SelectDir(Handle, '请选择一个文件夹:', '', Path);
if Ok then WorkDirEdit.Text := AddDirSuffix(Path);
end;
procedure TToolsMgrForm.ToolsListBoxDblClick(Sender: TObject);
var
i: Integer;
begin
i := ToolsListBox.ItemIndex;
if i = -1 then Exit;
TitleEdit.Text := ToolsManager.Items[i].Title;
CmdLineEdit.Text := ToolsManager.Items[i].CmdLine;
ParaEdit.Text := ToolsManager.Items[i].Para;
WorkDirEdit.Text := ToolsManager.Items[i].WorkDir;
RunModeComboBox.ItemIndex:= ToolsManager.Items[i].RunMode;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -