📄 mainformunit.pas
字号:
ToolButton_Redo: TToolButton;
ToolButton_Start1: TToolButton;
ToolButton_Break1: TToolButton;
ToolButton19: TToolButton;
ToolButton_End1: TToolButton;
ToolButton_Find_and_Replace: TToolButton;
Toolbar_Find_ComboBox: TComboBox;
ToolButton22: TToolButton;
ToolButton23: TToolButton;
ToolButton_Project_Explorer: TToolButton;
ToolButton_Properties_Window: TToolButton;
ToolButton_Toolbox: TToolButton;
ToolButton_Task_List: TToolButton;
ToolButton30: TToolButton;
Load_Save_WindowUI_ComboBox: TComboBox;
Other_Windows_PopupMenu: TPopupMenu;
TaskList2: TMenuItem;
VisualComponentManager2: TMenuItem;
ObjectBrowser2: TMenuItem;
DocumentOutline2: TMenuItem;
Output2: TMenuItem;
DataView2: TMenuItem;
ScriptOutline2: TMenuItem;
ToolBar_Debug: TToolBar;
ToolButton_Start2: TToolButton;
ToolButton_Start_Without_Debugging: TToolButton;
ToolButton_Break2: TToolButton;
ToolButton_End2: TToolButton;
ToolButton_Detach_All_Processes: TToolButton;
ToolButton_Restart: TToolButton;
ToolButton_Run_To_Cursor: TToolButton;
ToolButton_Step_Into: TToolButton;
ToolButton36: TToolButton;
ToolButton_Step_Over: TToolButton;
ToolButton_Step_Out: TToolButton;
ToolButton39: TToolButton;
ToolButton_Insert_Breakpoint: TToolButton;
ToolButton_Enable_Breakpoint: TToolButton;
ToolButton_Clear_All_Breakpoints: TToolButton;
ToolButton_Breakpoints: TToolButton;
ToolButton44: TToolButton;
ToolButton_Immediate: TToolButton;
ToolButton_Autos: TToolButton;
ToolButton_Locals: TToolButton;
ToolButton_Watch: TToolButton;
ToolButton_Threads: TToolButton;
ToolButton_Call_Stack: TToolButton;
ToolButton_Running_Documents: TToolButton;
ToolButton_Output: TToolButton;
ToolButton53: TToolButton;
ToolButton_Processes: TToolButton;
Action_Build_Project: TAction;
Action_Build_Solution: TAction;
Action_Rebuild_Solution: TAction;
Action_Cancel: TAction;
Action_Build: TAction;
ActionBuild1: TMenuItem;
BuildProject1: TMenuItem;
BuildSolution1: TMenuItem;
RebuildSolution1: TMenuItem;
Cancel1: TMenuItem;
ComboBox_Configuration: TComboBox;
Action_Toolbars_Build: TAction;
Build1: TMenuItem;
lbDockServer1: TJvDockServer;
JvDockVIDStyle1: TJvDockVIDStyle;
MainFormStatusBar: TStatusBar;
procedure Action_FileExecute(Sender: TObject);
procedure MainControlBarBandMove(Sender: TObject; Control: TControl;
var ARect: TRect);
procedure Action_New_ProjectExecute(Sender: TObject);
procedure Action_ExitExecute(Sender: TObject);
procedure Action_Task_ListExecute(Sender: TObject);
procedure MainFormStatusBarResize(Sender: TObject);
procedure Action_Project_ExplorerExecute(Sender: TObject);
procedure Action_Properties_WindowExecute(Sender: TObject);
procedure Action_ToolboxExecute(Sender: TObject);
procedure Action_ImmediateExecute(Sender: TObject);
procedure Action_AutosExecute(Sender: TObject);
procedure Action_LocalsExecute(Sender: TObject);
procedure Action_WatchExecute(Sender: TObject);
procedure Action_ThreadsExecute(Sender: TObject);
procedure Action_Call_StackExecute(Sender: TObject);
procedure Action_Running_DocumentsExecute(Sender: TObject);
procedure Action_Document_OutlineExecute(Sender: TObject);
procedure Action_OutputExecute(Sender: TObject);
procedure Action_Script_OutlineExecute(Sender: TObject);
procedure Action_Define_Window_LayoutExecute(Sender: TObject);
procedure Action_Find_and_ReplaceExecute(Sender: TObject);
procedure Load_Save_WindowUI_ComboBoxChange(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Action_AboutExecute(Sender: TObject);
private
{ Private declarations }
FCreated: Boolean;
procedure CreateDockableForm;
procedure GetToolbarWidthArr;
procedure SaveDefaultLayout;
procedure LoadDefaultLayout;
public
{ Public declarations }
{$IFDEF USEJVCL}
JvAppStorage:TJvAppIniFileStorage;
{$ENDIF}
procedure LoadDockInfo;
end;
var
MainForm: TMainForm;
const DefineWindowLayoutFileName: string = 'DefineWindowLayout.ini';
const SectionString: string = 'DefineWindowLayout';
const DefaultLayout: string = 'DefaultLayout';
implementation
uses IniFiles, ProjectExplorerUnit, PropertiesUnit, ToolboxUnit, ImmediateUnit,
AutosUnit, LocalsUnit, WatchUnit, ThreadsUnit, CallStackUnit,
RunningDocumentsUnit, TaskListUnit, DocumentOutlineUnit, OutputUnit,
ScriptOutlineUnit, DefineWindowLayoutUnit, FindAndReplaceUnit, SplashUnit;
procedure TMainForm.CreateDockableForm;
begin
ProjectExplorerForm := TProjectExplorerForm.Create(Self); //创建Project Explorer工具窗体
PropertiesForm := TPropertiesForm.Create(Self); //创建Properties工具窗体
ToolboxForm := TToolboxForm.Create(Self); //创建Toolbox工具窗体
{----------------------------------------------------------------------------}
ImmediateForm := TImmediateForm.Create(Self); //创建Immediate工具窗体
AutosForm := TAutosForm.Create(Self); //创建Autos工具窗体
LocalsForm := TLocalsForm.Create(Self); //创建Locals工具窗体
WatchForm := TWatchForm.Create(Self); //创建Watch工具窗体
ThreadsForm := TThreadsForm.Create(Self); //创建Threads工具窗体
CallStackForm := TCallStackForm.Create(Self); //创建Call Stack工具窗体
RunningDocumentsForm := TRunningDocumentsForm.Create(Self); //创建Running Documents工具窗体
{----------------------------------------------------------------------------}
TaskListForm := TTaskListForm.Create(Self); //创建Task List工具窗体
DocumentOutlineForm := TDocumentOutlineForm.Create(Self); //创建Document Outline工具窗体
OutputForm := TOutputForm.Create(Self); //创建Output工具窗体
ScriptOutlineForm := TScriptOutlineForm.Create(Self); //创建Script Outline工具窗体
{----------------------------------------------------------------------------}
FindAndReplaceForm := TFindAndReplaceForm.Create(Self); //创建Find And Replace工具窗体
end;
{$R *.DFM}
procedure TMainForm.Action_FileExecute(Sender: TObject);
begin
//
end;
procedure TMainForm.GetToolbarWidthArr;
var i: Integer;
begin
//
for i := 0 to MainControlBar.ControlCount - 1 do
MainControlBar.Controls[i].Tag := MainControlBar.Controls[i].Width;
FCreated := True;
end;
procedure TMainForm.MainControlBarBandMove(Sender: TObject;
Control: TControl; var ARect: TRect);
begin
//
if (Control.Tag <> ARect.Right - ARect.Left - 13) and FCreated then
begin
ARect.Right := ARect.Left + Control.Tag + 13;
end;
end;
procedure TMainForm.Action_New_ProjectExecute(Sender: TObject);
begin
MainFormStatusBar.Panels[2].Text := Format('You clicked ''%s''', [TAction(Sender).Caption]);
end;
procedure TMainForm.Action_ExitExecute(Sender: TObject);
begin
Close;
end;
procedure TMainForm.MainFormStatusBarResize(Sender: TObject);
begin
if MainFormStatusBar.Width > 450 then
MainFormStatusBar.Panels[0].Width := MainFormStatusBar.Width - 350
else
MainFormStatusBar.Panels[2].Width := MainFormStatusBar.Width - 200;
end;
procedure TMainForm.Action_Task_ListExecute(Sender: TObject);
begin
{ 显示Task List工具窗体 }
ShowDockForm(TaskListForm);
end;
procedure TMainForm.Action_Project_ExplorerExecute(Sender: TObject);
begin
{ 显示Task List工具窗体 }
ShowDockForm(ProjectExplorerForm);
end;
procedure TMainForm.Action_Properties_WindowExecute(Sender: TObject);
begin
{ 显示Properties工具窗体 }
ShowDockForm(PropertiesForm);
end;
procedure TMainForm.Action_ToolboxExecute(Sender: TObject);
begin
{ 显示Toolbox工具窗体 }
ShowDockForm(ToolboxForm);
end;
procedure TMainForm.Action_ImmediateExecute(Sender: TObject);
begin
{ 显示Immediate工具窗体 }
ShowDockForm(ImmediateForm);
end;
procedure TMainForm.Action_AutosExecute(Sender: TObject);
begin
{ 显示Autos工具窗体 }
ShowDockForm(AutosForm);
end;
procedure TMainForm.Action_LocalsExecute(Sender: TObject);
begin
{ 显示Locals工具窗体 }
ShowDockForm(LocalsForm);
end;
procedure TMainForm.Action_WatchExecute(Sender: TObject);
begin
{ 显示Watch工具窗体 }
ShowDockForm(WatchForm);
end;
procedure TMainForm.Action_ThreadsExecute(Sender: TObject);
begin
{ 显示Threads工具窗体 }
ShowDockForm(ThreadsForm);
end;
procedure TMainForm.Action_Call_StackExecute(Sender: TObject);
begin
{ 显示Call Stack工具窗体 }
ShowDockForm(CallStackForm);
end;
procedure TMainForm.Action_Running_DocumentsExecute(Sender: TObject);
begin
{ 显示Running Documents工具窗体 }
ShowDockForm(RunningDocumentsForm);
end;
procedure TMainForm.Action_Document_OutlineExecute(Sender: TObject);
begin
{ 显示Document Outline工具窗体 }
ShowDockForm(DocumentOutlineForm);
end;
procedure TMainForm.Action_OutputExecute(Sender: TObject);
begin
{ 显示Output工具窗体 }
ShowDockForm(OutputForm);
end;
procedure TMainForm.Action_Script_OutlineExecute(Sender: TObject);
begin
{ 显示Script Outline工具窗体 }
ShowDockForm(ScriptOutlineForm);
end;
procedure TMainForm.Action_Find_and_ReplaceExecute(Sender: TObject);
begin
{ 显示Find And Replace工具窗体 }
ShowDockForm(FindAndReplaceForm);
end;
procedure TMainForm.Action_Define_Window_LayoutExecute(Sender: TObject);
begin
with TDefineWindowLayoutForm.Create(nil) do
begin
ShowModal;
Load_Save_WindowUI_ComboBox.Items.Clear;
Load_Save_WindowUI_ComboBox.Items.Assign(Views_ListBox.Items);
Load_Save_WindowUI_ComboBox.ItemIndex := SelectItemIndex;
Release;
end;
end;
procedure TMainForm.LoadDockInfo;
begin
CreateDockableForm;
GetToolbarWidthArr;
LoadDefaultLayout;
end;
procedure TMainForm.LoadDefaultLayout;
var IniFile: TIniFile;
Str: string;
Sections: TStringList;
Index: Integer;
begin
IniFile := TIniFile.Create(ExtractFilePath(Application.EXEName) + DefineWindowLayoutFileName);
Sections := TStringList.Create;
try
IniFile.ReadSection(SectionString, Sections);
Index := Sections.IndexOf(DefaultLayout);
if Index <> - 1 then
Sections.Delete(Sections.IndexOf(DefaultLayout));
Sections.Sort;
Load_Save_WindowUI_ComboBox.Items.Assign(Sections);
Load_Save_WindowUI_ComboBox.ItemIndex := 0;
Str := IniFile.ReadString(SectionString, DefaultLayout, 'ERROR');
if Str <> 'ERROR' then
begin
Load_Save_WindowUI_ComboBox.ItemIndex := Load_Save_WindowUI_ComboBox.Items.IndexOf(Str);
{$IFDEF USEJVCL}
JvAppStorage.Filename := ExtractFilePath(Application.ExeName) + Str + '.ini';
LoadDockTreeFromAppStorage(JvAppStorage);
{$ELSE}
LoadDockTreeFromFile(ExtractFilePath(Application.EXEName) + Str + '.ini');
{$ENDIF}
end;
finally
Sections.Free;
IniFile.Free;
end;
end;
procedure TMainForm.SaveDefaultLayout;
//var IniFile: TIniFile;
begin
{$IFDEF USEJVCL}
JvAppStorage.Filename := ExtractFilePath(Application.EXEName) + Load_Save_WindowUI_ComboBox.Text + '.ini';
SaveDockTreeToAppStorage(JvAppStorage, Load_Save_WindowUI_ComboBox.Text);
{ JvAppStorage.WriteString(JvAppStorage.ConcatPaths([SectionString, DefaultLayout]), Load_Save_WindowUI_ComboBox.Text);
IniFile := TIniFile.Create(ExtractFilePath(Application.EXEName) + DefineWindowLayoutFileName);
try
IniFile.WriteString(SectionString, DefaultLayout, Load_Save_WindowUI_ComboBox.Text);
finally
IniFile.Free;
end;}
{$ELSE}
SaveDockTreeToFile(ExtractFilePath(Application.EXEName) + Load_Save_WindowUI_ComboBox.Text + '.ini');
{$ENDIF}
end;
procedure TMainForm.Load_Save_WindowUI_ComboBoxChange(Sender: TObject);
begin
{$IFNDEF USEJVCL}
LoadDockTreeFromFile(ExtractFilePath(Application.EXEName) + Load_Save_WindowUI_ComboBox.Text + '.ini');
{$ENDIF}
end;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
{ 保存停靠信息的代码不能放在OnDestroy事件中,因为这时候有些窗口已经被释放了,不能被保存。 }
SaveDefaultLayout;
end;
procedure TMainForm.FormDestroy(Sender: TObject);
begin
(* ProjectExplorerForm.Release;
PropertiesForm.Release;
ToolboxForm.Release;
{----------------------------------------------------------------------------}
ImmediateForm.Release;
AutosForm.Release;
LocalsForm.Release;
WatchForm.Release;
ThreadsForm.Release;
CallStackForm.Release;
RunningDocumentsForm.Release;
{----------------------------------------------------------------------------}
TaskListForm.Release;
DocumentOutlineForm.Release;
OutputForm.Release;
ScriptOutlineForm.Release;
{----------------------------------------------------------------------------}
FindAndReplaceForm.Release;*)
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
{$IFDEF USEJVCL}
JvAppStorage := TJvAppIniFileStorage.Create(self);
{$ENDIF}
LoadDockInfo;
end;
procedure TMainForm.Action_AboutExecute(Sender: TObject);
begin
with TSplashForm.Create(nil) do
try
ShowModal;
finally
Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -