📄 mainformunit.pas
字号:
end;
end;
procedure TMainForm.MainMenu_ToolBarCustomDraw(Sender: TToolBar;
const ARect: TRect; var DefaultDraw: Boolean);
begin
if (MDIChildCount > 0) and (MDIChildren[0].WindowState = wsMaximized) then
begin
MainMenu_ToolBar.Canvas.FillRect(DrawButtonRect);
DrawButtonRect := GetCloseButtonRect;
DrawFrameControl(MainMenu_ToolBar.Canvas.Handle, DrawButtonRect, DFC_CAPTION, DFCS_CAPTIONCLOSE or Integer(IsDown and (MouseDownButton = 3)) * DFCS_PUSHED);
OffsetRect(DrawButtonRect, - 18, 0);
DrawFrameControl(MainMenu_ToolBar.Canvas.Handle, DrawButtonRect, DFC_CAPTION, DFCS_CAPTIONRESTORE or Integer(IsDown and (MouseDownButton = 2)) * DFCS_PUSHED);
OffsetRect(DrawButtonRect, - 16, 0);
DrawFrameControl(MainMenu_ToolBar.Canvas.Handle, DrawButtonRect, DFC_CAPTION, DFCS_CAPTIONMIN or Integer(IsDown and (MouseDownButton = 1)) * DFCS_PUSHED);
end;
end;
procedure TMainForm.MainMenu_ToolBarMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var p: TPoint;
begin
P := Point(X, Y);
DrawButtonRect := GetCloseButtonRect;
DrawButtonRect.Left := DrawButtonRect.Left - 34;
if PtInRect(DrawButtonRect, P) and (MDIChildCount > 0) and (MDIChildren[0].WindowState = wsMaximized) then
begin
IsDown := True;
MainMenu_ToolBarMouseMove(Sender, Shift, X, Y);
end;
end;
procedure TMainForm.MainMenu_ToolBarMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var p: TPoint;
OldMouseDownButton: Integer;
begin
if not IsDown then Exit;
OldMouseDownButton := MouseDownButton;
MouseDownButton := 0;
P := Point(X, Y);
DrawButtonRect := GetCloseButtonRect;
if PtInRect(DrawButtonRect, P) and (MouseDownButton = 0) then
MouseDownButton := 3;
OffsetRect(DrawButtonRect, - 18, 0);
if PtInRect(DrawButtonRect, P) and (MouseDownButton = 0) then
MouseDownButton := 2;
OffsetRect(DrawButtonRect, - 16, 0);
if PtInRect(DrawButtonRect, P) and (MouseDownButton = 0) then
MouseDownButton := 1;
if MouseDownButton <> OldMouseDownButton then
MainMenu_ToolBar.Invalidate;
end;
procedure TMainForm.MainMenu_ToolBarMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var p: TPoint;
begin
if (not IsDown) or (MDIChildCount = 0) then Exit;
IsDown := False;
MouseDownButton := 0;
P := Point(X, Y);
DrawButtonRect := GetCloseButtonRect;
if PtInRect(DrawButtonRect, P) and (MouseDownButton = 0) then
MouseDownButton := 3;
OffsetRect(DrawButtonRect, - 18, 0);
if PtInRect(DrawButtonRect, P) and (MouseDownButton = 0) then
MouseDownButton := 2;
OffsetRect(DrawButtonRect, - 16, 0);
if PtInRect(DrawButtonRect, P) and (MouseDownButton = 0) then
MouseDownButton := 1;
if MouseDownButton <> 0 then
begin
case MouseDownButton of
1: MDIChildren[0].WindowState := wsMinimized;
2: MDIChildren[0].WindowState := wsNormal;
3: MDIChildren[0].Close;
end;
MainMenu_ToolBar.Invalidate;
end;
MouseDownButton := 0;
end;
function TMainForm.GetCloseButtonRect: TRect;
begin
Result := Rect(MainMenu_ToolBar.Width - 16,
5,
MainMenu_ToolBar.Width,
19);
end;
procedure TMainForm.View_Watch_ActionExecute(Sender: TObject);
begin
Watch_ToolButton.Down := not WatchForm.Visible;
View_Watch_Action.Checked := Watch_ToolButton.Down;
if Watch_ToolButton.Down then
ShowDockForm(WatchForm)
else WatchForm.Close;
end;
procedure TMainForm.Window_Cascade_ActionExecute(Sender: TObject);
begin
Cascade;
end;
procedure TMainForm.Window_Tile_Horizontally_ActionExecute(
Sender: TObject);
begin
TileMode := tbHorizontal;
Tile;
end;
procedure TMainForm.Window_Tile_Vertically_ActionExecute(Sender: TObject);
begin
TileMode := tbVertical;
Tile;
end;
procedure TMainForm.View_Registers_ActionExecute(Sender: TObject);
begin
Registers_ToolButton.Down := not RegistersForm.Visible;
View_Registers_Action.Checked := Registers_ToolButton.Down;
if Registers_ToolButton.Down then
ShowDockForm(RegistersForm)
else RegistersForm.Close;
end;
procedure TMainForm.Window_Next_ActionExecute(Sender: TObject);
begin
Next;
end;
procedure TMainForm.Window_Previous_ActionExecute(Sender: TObject);
begin
Previous;
end;
procedure TMainForm.View_Memory_ActionExecute(Sender: TObject);
begin
Memory_ToolButton.Down := not MemoryForm.Visible;
View_Memory_Action.Checked := Memory_ToolButton.Down;
if Memory_ToolButton.Down then
ShowDockForm(MemoryForm)
else MemoryForm.Close;
end;
procedure TMainForm.Window_Close_ActionExecute(Sender: TObject);
begin
if MDIChildCount > 0 then
MDIChildren[0].Close;
end;
procedure TMainForm.Window_Close_All_ActionExecute(Sender: TObject);
var i: Integer;
begin
for i := MDIChildCount - 1 downto 0 do
MDIChildren[i].Close;
end;
procedure TMainForm.File_Exit_ActionExecute(Sender: TObject);
begin
Close;
end;
procedure TMainForm.Edit_Redo_ActionExecute(Sender: TObject);
begin
if (MDIChildCount > 0) and (ActivemwEdit <> nil) then
ActivemwEdit.Redo;
end;
procedure TMainForm.Edit_Redo_ActionUpdate(Sender: TObject);
begin
Edit_Redo_Action.Enabled := ActionEnable and ActivemwEdit.CanRedo;
end;
procedure TMainForm.Edit_Cut_ActionUpdate(Sender: TObject);
begin
Edit_Cut_Action.Enabled := ActionEnable and (ActivemwEdit.SelText <> '');
end;
procedure TMainForm.Edit_Copy_ActionUpdate(Sender: TObject);
begin
Edit_Copy_Action.Enabled := ActionEnable
end;
function TMainForm.ActionEnable: Boolean;
begin
Result := (MDIChildCount > 0) and
(MDIChildren[0].WindowState <> wsMinimized)
and (ActivemwEdit <> nil);
end;
procedure TMainForm.Edit_Paste_ActionUpdate(Sender: TObject);
begin
Edit_Paste_Action.Enabled := ActionEnable and ActivemwEdit.CanPaste;
end;
procedure TMainForm.Edit_Undo_ActionUpdate(Sender: TObject);
begin
Edit_Undo_Action.Enabled := ActionEnable and ActivemwEdit.CanUndo;
end;
procedure TMainForm.Edit_Delete_ActionUpdate(Sender: TObject);
begin
Edit_Undo_Action.Enabled := ActionEnable;
end;
procedure TMainForm.Edit_Cut_ActionExecute(Sender: TObject);
begin
if ActivemwEdit <> nil then
ActivemwEdit.CutToClipboard;
end;
procedure TMainForm.Edit_Copy_ActionExecute(Sender: TObject);
begin
if ActivemwEdit <> nil then
ActivemwEdit.CopyToClipboard;
end;
procedure TMainForm.Edit_Paste_ActionExecute(Sender: TObject);
begin
if ActivemwEdit <> nil then
ActivemwEdit.PasteFromClipboard;
end;
procedure TMainForm.Edit_SelectAll_ActionExecute(Sender: TObject);
begin
if ActivemwEdit <> nil then
ActivemwEdit.SelectAll;
end;
procedure TMainForm.Edit_Undo_ActionExecute(Sender: TObject);
begin
if ActivemwEdit <> nil then
ActivemwEdit.Undo;
end;
procedure TMainForm.Edit_Delete_ActionExecute(Sender: TObject);
begin
if ActivemwEdit <> nil then
ActivemwEdit.SelText := '';
end;
procedure TMainForm.lbDockServer1GetClientAlignSize(Align: TAlign;
var Value: Integer);
begin
if Align = alBottom then
begin
// DockPanel.Top := 0;
StatusBar1.Top := Height - StatusBar1.Height;
end;
end;
procedure TMainForm.View_Standard_Toolbar_ActionExecute(Sender: TObject);
begin
View_Standard_Toolbar_Action.Checked := not tb_Standard_Toolbar.Visible;
tb_Standard_Toolbar.Visible := View_Standard_Toolbar_Action.Checked;
end;
procedure TMainForm.View_Debug_Toolbar_ActionExecute(Sender: TObject);
begin
View_Debug_Toolbar_Action.Checked := not tb_Debug_Toolbar.Visible;
tb_Debug_Toolbar.Visible := View_Debug_Toolbar_Action.Checked;
end;
procedure TMainForm.View_Build_Minibar_Toolbar_ActionExecute(
Sender: TObject);
begin
View_Build_Minibar_Toolbar_Action.Checked := not tb_Build_Minibar_Toolbar.Visible;
tb_Build_Minibar_Toolbar.Visible := View_Build_Minibar_Toolbar_Action.Checked;
end;
procedure TMainForm.View_Edit_Toolbar_ActionExecute(Sender: TObject);
begin
View_Edit_Toolbar_Action.Checked := not tb_Edit_Toolbar.Visible;
tb_Edit_Toolbar.Visible := View_Edit_Toolbar_Action.Checked;
end;
procedure TMainForm.View_Variables_ActionExecute(Sender: TObject);
begin
Variables_ToolButton.Down := not VariablesForm.Visible;
View_Variables_Action.Checked := Variables_ToolButton.Down;
if Variables_ToolButton.Down then
ShowDockForm(VariablesForm)
else VariablesForm.Close;
end;
procedure TMainForm.View_Debug_Windows_ActionExecute(Sender: TObject);
begin
//
end;
procedure TMainForm.View_CallStack_ActionExecute(Sender: TObject);
begin
CallStack_ToolButton.Down := not CallStackForm.Visible;
View_CallStack_Action.Checked := CallStack_ToolButton.Down;
if CallStack_ToolButton.Down then
ShowDockForm(CallStackForm)
else CallStackForm.Close;
end;
procedure TMainForm.LoadDockInfo;
begin
CreateDockableForm;
GetToolbarWidthArr;
LoadDockTreeFromFile(ExtractFilePath(Application.ExeName) + 'DockInfo.ini');
SetToolButtonDownAndActionCheck;
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
// LoadDockInfo;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -