📄 mainformunit.pas
字号:
Debug_Stop_Debugging_Action: TAction;
Debug_Break_Action: TAction;
Debug_Apply_Code_Changes_Action: TAction;
Debug_Step_Into_Action: TAction;
Debug_Step_Over_Action: TAction;
Debug_Step_Out_Action: TAction;
Debug_Run_to_Cursor_Action: TAction;
Debug_Step_Into_Specific_Function_Action: TAction;
Debug_Exceptions_Action: TAction;
Debug_Threads_Action: TAction;
Debug_Modules_Action: TAction;
Debug_Show_Next_Statement_Action: TAction;
Debug_QuickWatch_Action: TAction;
Go1: TMenuItem;
Restart1: TMenuItem;
StopDebugging1: TMenuItem;
Break1: TMenuItem;
ApplyCodeChanges1: TMenuItem;
StepInto1: TMenuItem;
StepOver1: TMenuItem;
StepOut1: TMenuItem;
RuntoCursor1: TMenuItem;
StepIntoSpecificFunction1: TMenuItem;
Exceptions1: TMenuItem;
hreads1: TMenuItem;
Modules1: TMenuItem;
ShowNextStatement1: TMenuItem;
QuickWatch1: TMenuItem;
N33: TMenuItem;
N34: TMenuItem;
N35: TMenuItem;
Cascade1: TMenuItem;
Edit_Toggle_Bookmark_Action: TAction;
Edit_Next_Bookmark_Action: TAction;
Edit_Previous_Bookmark_Action: TAction;
Edit_Clear_All_BookMarks_Action: TAction;
Edit_Increase_Indent_Action: TAction;
Edit_Decrease_Indent_Action: TAction;
Edit_Toggle_WhiteSpace_Display_Action: TAction;
View_Watch_Action: TAction;
View_Variables_Action: TAction;
View_Registers_Action: TAction;
View_Memory_Action: TAction;
View_CallStack_Action: TAction;
View_Disassembly_Action: TAction;
DebugWindows1: TMenuItem;
Watch1: TMenuItem;
CallStack1: TMenuItem;
Memory1: TMenuItem;
Variable1: TMenuItem;
Register1: TMenuItem;
Disassembly1: TMenuItem;
Build_Stop_Build_Action: TAction;
Build_Insert_Remove_Breakpoint_Action: TAction;
lbVCDockStyle1: TlbVCDockStyle;
OpenDialog1: TOpenDialog;
StatusBar1: TStatusBar;
lbDockServer1: TlbDockServer;
Edit_Cut_Action: TEditCut;
Edit_Copy_Action: TEditCopy;
Edit_Paste_Action: TEditPaste;
Edit_SelectAll_Action: TEditSelectAll;
Edit_Undo_Action: TEditUndo;
Edit_Delete_Action: TEditDelete;
ViewPopupMenu: TPopupMenu;
Output_PopupItem: TMenuItem;
Watch_PopupItem: TMenuItem;
Variables_PopupItem: TMenuItem;
Registers_PopupItem: TMenuItem;
Memory_PopupItem: TMenuItem;
CallStack_PopupItem: TMenuItem;
Workspace_PopupItem: TMenuItem;
N36: TMenuItem;
View_Standard_Toolbar_Action: TAction;
View_Debug_Toolbar_Action: TAction;
View_Build_Minibar_Toolbar_Action: TAction;
View_Edit_Toolbar_Action: TAction;
Standard1: TMenuItem;
BuildMinibar1: TMenuItem;
Edit2: TMenuItem;
Debug2: TMenuItem;
View_Customize_Toolbar_Action: TAction;
N37: TMenuItem;
BuildMinibar2: TMenuItem;
ToolButton13: TToolButton;
ToolButton14: TToolButton;
ToolButton33: TToolButton;
ToolButton35: TToolButton;
ToolButton49: TToolButton;
ToolButton50: TToolButton;
ToolButton51: TToolButton;
ToolButton52: TToolButton;
ToolButton53: TToolButton;
procedure View_Workspace_ActionExecute(Sender: TObject);
procedure View_OutPut_ActionExecute(Sender: TObject);
procedure MainControlBarBandMove(Sender: TObject; Control: TControl;
var ARect: TRect);
procedure File_New_ActionExecute(Sender: TObject);
procedure File_Open_ActionExecute(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure MainControlBarResize(Sender: TObject);
procedure MainMenu_ToolBarCustomDraw(Sender: TToolBar;
const ARect: TRect; var DefaultDraw: Boolean);
procedure MainMenu_ToolBarMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure MainMenu_ToolBarMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
procedure MainMenu_ToolBarMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure View_Watch_ActionExecute(Sender: TObject);
procedure Window_Cascade_ActionExecute(Sender: TObject);
procedure Window_Tile_Horizontally_ActionExecute(Sender: TObject);
procedure Window_Tile_Vertically_ActionExecute(Sender: TObject);
procedure View_Registers_ActionExecute(Sender: TObject);
procedure Window_Next_ActionExecute(Sender: TObject);
procedure Window_Previous_ActionExecute(Sender: TObject);
procedure View_Memory_ActionExecute(Sender: TObject);
procedure Window_Close_ActionExecute(Sender: TObject);
procedure Window_Close_All_ActionExecute(Sender: TObject);
procedure File_Exit_ActionExecute(Sender: TObject);
procedure Edit_Redo_ActionExecute(Sender: TObject);
procedure Edit_Redo_ActionUpdate(Sender: TObject);
procedure Edit_Cut_ActionUpdate(Sender: TObject);
procedure Edit_Copy_ActionUpdate(Sender: TObject);
procedure Edit_Paste_ActionUpdate(Sender: TObject);
procedure Edit_Undo_ActionUpdate(Sender: TObject);
procedure Edit_Delete_ActionUpdate(Sender: TObject);
procedure Edit_Cut_ActionExecute(Sender: TObject);
procedure Edit_Copy_ActionExecute(Sender: TObject);
procedure Edit_Paste_ActionExecute(Sender: TObject);
procedure Edit_SelectAll_ActionExecute(Sender: TObject);
procedure Edit_Undo_ActionExecute(Sender: TObject);
procedure Edit_Delete_ActionExecute(Sender: TObject);
procedure lbDockServer1GetClientAlignSize(Align: TAlign;
var Value: Integer);
procedure View_Standard_Toolbar_ActionExecute(Sender: TObject);
procedure View_Debug_Toolbar_ActionExecute(Sender: TObject);
procedure View_Build_Minibar_Toolbar_ActionExecute(Sender: TObject);
procedure View_Edit_Toolbar_ActionExecute(Sender: TObject);
procedure View_Variables_ActionExecute(Sender: TObject);
procedure View_Debug_Windows_ActionExecute(Sender: TObject);
procedure View_CallStack_ActionExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
procedure GetToolbarWidthArr;
function GetCloseButtonRect: TRect;
function ActionEnable: Boolean;
procedure SetToolButtonDownAndActionCheck;
{ Private declarations }
public
{ Public declarations }
ActivemwEdit: TmwCustomEdit;
procedure LoadDockInfo;
end;
var
MainForm: TMainForm;
implementation
uses WorkSpaceUnit, OutputUnit, SourceEditUnit, WatchUnit, RegistersUnit,
MemoryUnit, VariablesUnit, CallStackUnit;
var
WorkSpaceForm: TWorkSpaceForm;
OutputForm: TOutputForm;
WatchForm: TWatchForm;
VariablesForm: TVariablesForm;
RegistersForm: TRegistersForm;
MemoryForm: TMemoryForm;
CallStackForm: TCallStackForm;
DrawButtonRect: TRect;
IsDown: Boolean;
MouseDownButton: Integer;
{$R *.dfm}
procedure CreateDockableForm;
begin
WorkSpaceForm := TWorkSpaceForm.Create(nil);//创建WorkSpace工具窗体
OutputForm := TOutputForm.Create(nil); //创建Output工具窗体
WatchForm := TWatchForm.Create(nil); //创建Watch工具窗体
VariablesForm := TVariablesForm.Create(nil);//创建Variables工具窗体
RegistersForm := TRegistersForm.Create(nil);//创建Registers工具窗体
MemoryForm := TMemoryForm.Create(nil); //创建Memory工具窗体
CallStackForm := TCallStackForm.Create(nil);//创建CallStack工具窗体
end;
procedure TMainForm.SetToolButtonDownAndActionCheck;
begin
View_Workspace_Action.Checked := WorkSpaceForm.Visible;
WorkSpace_ToolButton.Down := WorkSpaceForm.Visible;
View_Output_Action.Checked := OutputForm.Visible;
Output_ToolButton.Down := OutputForm.Visible;
View_Watch_Action.Checked := WatchForm.Visible;
Watch_ToolButton.Down := WatchForm.Visible;
View_Variables_Action.Checked := VariablesForm.Visible;
Variables_ToolButton.Down := VariablesForm.Visible;
View_Registers_Action.Checked := RegistersForm.Visible;
Registers_ToolButton.Down := RegistersForm.Visible;
View_Memory_Action.Checked := MemoryForm.Visible;
Memory_ToolButton.Down := MemoryForm.Visible;
View_CallStack_Action.Checked := CallStackForm.Visible;
CallStack_ToolButton.Down := CallStackForm.Visible;
{ -------------------------------------------------------------------------- }
View_Standard_Toolbar_Action.Checked := tb_Standard_Toolbar.Visible;
View_Debug_Toolbar_Action.Checked := tb_Debug_Toolbar.Visible;
View_Build_Minibar_Toolbar_Action.Checked := tb_Build_Minibar_Toolbar.Visible;
View_Edit_Toolbar_Action.Checked := tb_Edit_Toolbar.Visible;
end;
procedure TMainForm.GetToolbarWidthArr;
var i: Integer;
begin
for i := 0 to MainControlBar.ControlCount - 1 do
MainControlBar.Controls[i].Tag := MainControlBar.Controls[i].Width;
end;
procedure TMainForm.View_Workspace_ActionExecute(Sender: TObject);
begin
WorkSpace_ToolButton.Down := not WorkSpaceForm.Visible;
View_WorkSpace_Action.Checked := WorkSpace_ToolButton.Down;
if WorkSpace_ToolButton.Down then
ShowDockForm(WorkSpaceForm)
else WorkSpaceForm.Close;
end;
procedure TMainForm.View_OutPut_ActionExecute(Sender: TObject);
begin
Output_ToolButton.Down := not OutputForm.Visible;
View_Output_Action.Checked := Output_ToolButton.Down;
if Output_ToolButton.Down then
ShowDockForm(OutputForm)
else OutputForm.Close;
end;
procedure TMainForm.MainControlBarBandMove(Sender: TObject;
Control: TControl; var ARect: TRect);
begin
if (Control.Tag <> ARect.Right - ARect.Left - 13)
and (Control <> MainMenu_ToolBar) then
begin
ARect.Right := ARect.Left + Control.Tag + 13;
end;
end;
procedure TMainForm.File_New_ActionExecute(Sender: TObject);
begin
{ 没事做,显示一个提示信息 }
ShowMessage(Format('您点击了''%s''', [TAction(Sender).Caption]));
end;
procedure TMainForm.File_Open_ActionExecute(Sender: TObject);
function FindExistFile(AFileName: string): TCustomForm;
var i: Integer;
begin
Result := nil;
for i := 0 to MDIChildCount - 1 do
if MDIChildren[i].Caption = AFileName then
begin
Result := MDIChildren[i];
Exit;
end;
end;
var
ExistForm: TCustomForm;
i: Integer;
// SumFileNum: Integer;
begin
if OpenDialog1.Execute then
begin
if (OpenDialog1.Files.Count > 0) then
begin
if MDIChildCount + OpenDialog1.Files.Count >= 100 then
begin
ShowMessage('文件数目太多,最多只能显示100个文件,后面的文件将不能显示');
for i := OpenDialog1.Files.Count - 1 downto 100 - MDIChildCount do
OpenDialog1.Files.Delete(i);
end;
for i := 0 to OpenDialog1.Files.Count - 1 do
begin
ExistForm := FindExistFile(OpenDialog1.Files[i]);
if ExistForm = nil then
begin
with TSourceEditForm.Create(nil) do
begin
try
LoadFromFile(OpenDialog1.Files[i]);
except
Release;
ShowMessage('打开文件失败!');
end;
end;
end else if not ExistForm.Active then
ExistForm.Show;
end;
end;
end;
end;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
var i: Integer;
begin
for i := MDIChildCount - 1 downto 0 do
MDIChildren[i].Close;
SaveDockTreeToFile(ExtractFilePath(Application.ExeName) + 'DockInfo.ini');
end;
procedure TMainForm.MainControlBarResize(Sender: TObject);
begin
// if (MainMenu_ToolBar.Width <> MainControlBar.ClientWidth - 13) then
begin
MainMenu_ToolBar.Width := MainControlBar.ClientWidth - 13;
MainMenu_ToolBar.Invalidate;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -