📄 main.pas
字号:
begin
SimpleGraph.ForEachObject(ForEachCallback, FEO_SENDTOBACK, True);
end;
procedure TMainForm.EditBringToFrontUpdate(Sender: TObject);
begin
EditBringToFront.Enabled := not IsReadonly and (SimpleGraph.SelectedObjects.Count > 0);
end;
procedure TMainForm.EditBringToFrontExecute(Sender: TObject);
begin
SimpleGraph.ForEachObject(ForEachCallback, FEO_BRINGTOFRONT, True);
end;
procedure TMainForm.EditAlignUpdate(Sender: TObject);
begin
EditAlign.Enabled := (SimpleGraph.SelectedObjects.Count > 1);
end;
procedure TMainForm.EditAlignExecute(Sender: TObject);
var
H: THAlignOption;
V: TVAlignOption;
begin
if TAlignDialog.Execute(H, V) then
SimpleGraph.AlignSelection(H, V);
end;
procedure TMainForm.EditSizeUpdate(Sender: TObject);
begin
EditSize.Enabled := (SimpleGraph.SelectedObjects.Count > 1);
end;
procedure TMainForm.EditSizeExecute(Sender: TObject);
var
Horz, Vert: TResizeOption;
begin
if TSizeDialog.Execute(Horz, Vert) then
SimpleGraph.ResizeSelection(Horz, Vert);
end;
procedure TMainForm.EditLockNodesUpdate(Sender: TObject);
begin
EditLockNodes.Checked := SimpleGraph.LockNodes;
EditLockNodes.Enabled := not IsReadonly;
end;
procedure TMainForm.EditLockNodesExecute(Sender: TObject);
begin
SimpleGraph.LockNodes := not SimpleGraph.LockNodes;
end;
procedure TMainForm.EditLockLinksUpdate(Sender: TObject);
begin
EditLockLinks.Checked := SimpleGraph.LockLinks;
EditLockLinks.Enabled := not IsReadonly;
end;
procedure TMainForm.EditLockLinksExecute(Sender: TObject);
begin
SimpleGraph.LockLinks := not SimpleGraph.LockLinks;
end;
procedure TMainForm.EditPropertiesExecute(Sender: TObject);
var
LinkCount: Integer;
begin
if SimpleGraph.SelectedObjects.Count = 0 then
TDesignerProperties.Execute(SimpleGraph)
else
begin
LinkCount := SimpleGraph.SelectedObjectsCount(TGraphLink);
if LinkCount = 0 then
TNodeProperties.Execute(SimpleGraph.SelectedObjects)
else if LinkCount = SimpleGraph.SelectedObjects.Count then
TLinkProperties.Execute(SimpleGraph.SelectedObjects)
else
TObjectProperties.Execute(SimpleGraph.SelectedObjects);
end;
end;
procedure TMainForm.ClipboardNativeUpdate(Sender: TObject);
begin
ClipboardNative.Checked := cfNative in SimpleGraph.ClipboardFormats;
end;
procedure TMainForm.ClipboardNativeExecute(Sender: TObject);
begin
if cfNative in SimpleGraph.ClipboardFormats then
SimpleGraph.ClipboardFormats := SimpleGraph.ClipboardFormats - [cfNative]
else
SimpleGraph.ClipboardFormats := SimpleGraph.ClipboardFormats + [cfNative];
end;
procedure TMainForm.ClipboardBitmapUpdate(Sender: TObject);
begin
ClipboardBitmap.Checked := cfBitmap in SimpleGraph.ClipboardFormats;
end;
procedure TMainForm.ClipboardBitmapExecute(Sender: TObject);
begin
if cfBitmap in SimpleGraph.ClipboardFormats then
SimpleGraph.ClipboardFormats := SimpleGraph.ClipboardFormats - [cfBitmap]
else
SimpleGraph.ClipboardFormats := SimpleGraph.ClipboardFormats + [cfBitmap];
end;
procedure TMainForm.ClipboardMetafileUpdate(Sender: TObject);
begin
ClipboardMetafile.Checked := cfMetafile in SimpleGraph.ClipboardFormats;
end;
procedure TMainForm.ClipboardMetafileExecute(Sender: TObject);
begin
if cfMetafile in SimpleGraph.ClipboardFormats then
SimpleGraph.ClipboardFormats := SimpleGraph.ClipboardFormats - [cfMetafile]
else
SimpleGraph.ClipboardFormats := SimpleGraph.ClipboardFormats + [cfMetafile];
end;
procedure TMainForm.FormatBoldExecute(Sender: TObject);
begin
FormatBold.Checked := not FormatBold.Checked;
if FormatBold.Checked then
SimpleGraph.ForEachObject(ForEachCallback, FEO_SETFONTBOLD, True)
else
SimpleGraph.ForEachObject(ForEachCallback, FEO_RESETFONTBOLD, True);
end;
procedure TMainForm.FormatItalicExecute(Sender: TObject);
begin
FormatItalic.Checked := not FormatItalic.Checked;
if FormatItalic.Checked then
SimpleGraph.ForEachObject(ForEachCallback, FEO_SETFONTITALIC, True)
else
SimpleGraph.ForEachObject(ForEachCallback, FEO_RESETFONTITALIC, True);
end;
procedure TMainForm.FormatUnderlineExecute(Sender: TObject);
begin
FormatUnderline.Checked := not FormatUnderline.Checked;
if FormatUnderline.Checked then
SimpleGraph.ForEachObject(ForEachCallback, FEO_SETFONTUNDERLINE, True)
else
SimpleGraph.ForEachObject(ForEachCallback, FEO_RESETFONTUNDERLINE, True);
end;
procedure TMainForm.FormatAlignLeftExecute(Sender: TObject);
begin
FormatAlignLeft.Checked := True;
SimpleGraph.ForEachObject(ForEachCallback, FEO_SETALIGNMENTLEFT, True);
end;
procedure TMainForm.FormatCenterExecute(Sender: TObject);
begin
FormatCenter.Checked := True;
SimpleGraph.ForEachObject(ForEachCallback, FEO_SETALIGNMENTCENTER, True);
end;
procedure TMainForm.FormatAlignRightExecute(Sender: TObject);
begin
FormatAlignRight.Checked := True;
SimpleGraph.ForEachObject(ForEachCallback, FEO_SETALIGNMENTRIGHT, True);
end;
procedure TMainForm.FormatAlignTopExecute(Sender: TObject);
begin
FormatAlignTop.Checked := True;
SimpleGraph.ForEachObject(ForEachCallback, FEO_SETLAYOUTTOP, True);
end;
procedure TMainForm.FormatVCenterExecute(Sender: TObject);
begin
FormatVCenter.Checked := True;
SimpleGraph.ForEachObject(ForEachCallback, FEO_SETLAYOUTCENTER, True);
end;
procedure TMainForm.FormatAlignBottomExecute(Sender: TObject);
begin
FormatAlignBottom.Checked := True;
SimpleGraph.ForEachObject(ForEachCallback, FEO_SETLAYOUTBOTTOM, True);
end;
procedure TMainForm.ObjectsNoneUpdate(Sender: TObject);
begin
ObjectsNone.Checked :=(SimpleGraph.CommandMode in [cmEdit, cmViewOnly]);
end;
procedure TMainForm.ObjectsNoneExecute(Sender: TObject);
begin
if IsReadonly then
SimpleGraph.CommandMode := cmViewOnly
else
SimpleGraph.CommandMode := cmEdit;
end;
procedure TMainForm.ObjectsRectangleUpdate(Sender: TObject);
begin
ObjectsRectangle.Checked :=(SimpleGraph.CommandMode = cmInsertNode) and
(SimpleGraph.DefaultNodeClass = TRectangularNode);
ObjectsRectangle.Enabled := not IsReadonly;
end;
procedure TMainForm.ObjectsRectangleExecute(Sender: TObject);
begin
SimpleGraph.DefaultNodeClass := TRectangularNode;
SimpleGraph.CommandMode := cmInsertNode;
end;
procedure TMainForm.ObjectsRoundRectUpdate(Sender: TObject);
begin
ObjectsRoundRect.Checked :=(SimpleGraph.CommandMode = cmInsertNode) and
(SimpleGraph.DefaultNodeClass = TRoundRectangularNode);
ObjectsRoundRect.Enabled := not IsReadonly;
end;
procedure TMainForm.ObjectsRoundRectExecute(Sender: TObject);
begin
SimpleGraph.DefaultNodeClass := TRoundRectangularNode;
SimpleGraph.CommandMode := cmInsertNode;
end;
procedure TMainForm.ObjectsEllipseUpdate(Sender: TObject);
begin
ObjectsEllipse.Checked :=(SimpleGraph.CommandMode = cmInsertNode) and
(SimpleGraph.DefaultNodeClass = TEllipticNode);
ObjectsEllipse.Enabled := not IsReadonly;
end;
procedure TMainForm.ObjectsEllipseExecute(Sender: TObject);
begin
SimpleGraph.DefaultNodeClass := TEllipticNode;
SimpleGraph.CommandMode := cmInsertNode;
end;
procedure TMainForm.ObjectsTriangleUpdate(Sender: TObject);
begin
ObjectsTriangle.Checked :=(SimpleGraph.CommandMode = cmInsertNode) and
(SimpleGraph.DefaultNodeClass = TTriangularNode);
ObjectsTriangle.Enabled := not IsReadonly;
end;
procedure TMainForm.ObjectsTriangleExecute(Sender: TObject);
begin
SimpleGraph.DefaultNodeClass := TTriangularNode;
SimpleGraph.CommandMode := cmInsertNode;
end;
procedure TMainForm.ObjectsRhomboidUpdate(Sender: TObject);
begin
ObjectsRhomboid.Checked :=(SimpleGraph.CommandMode = cmInsertNode) and
(SimpleGraph.DefaultNodeClass = TRhomboidalNode);
ObjectsRhomboid.Enabled := not IsReadonly;
end;
procedure TMainForm.ObjectsRhomboidExecute(Sender: TObject);
begin
SimpleGraph.DefaultNodeClass := TRhomboidalNode;
SimpleGraph.CommandMode := cmInsertNode;
end;
procedure TMainForm.ObjectsPentagonUpdate(Sender: TObject);
begin
ObjectsPentagon.Checked :=(SimpleGraph.CommandMode = cmInsertNode) and
(SimpleGraph.DefaultNodeClass = TPentagonalNode);
ObjectsPentagon.Enabled := not IsReadonly;
end;
procedure TMainForm.ObjectsPentagonExecute(Sender: TObject);
begin
SimpleGraph.DefaultNodeClass := TPentagonalNode;
SimpleGraph.CommandMode := cmInsertNode;
end;
procedure TMainForm.ObjectsHexagonUpdate(Sender: TObject);
begin
ObjectsHexagon.Checked :=(SimpleGraph.CommandMode = cmInsertNode) and
(SimpleGraph.DefaultNodeClass = THexagonalNode);
ObjectsHexagon.Enabled := not IsReadonly;
end;
procedure TMainForm.ObjectsHexagonExecute(Sender: TObject);
begin
SimpleGraph.DefaultNodeClass := THexagonalNode;
SimpleGraph.CommandMode := cmInsertNode;
end;
procedure TMainForm.ObjectsLinkUpdate(Sender: TObject);
begin
ObjectsLink.Checked :=(SimpleGraph.CommandMode = cmInsertLink);
ObjectsLink.Enabled := not IsReadonly;
end;
procedure TMainForm.ObjectsLinkExecute(Sender: TObject);
begin
SimpleGraph.CommandMode := cmInsertLink;
end;
procedure TMainForm.ViewZoomInUpdate(Sender: TObject);
begin
ViewZoomIn.Enabled := (SimpleGraph.Zoom < High(TZoom));
end;
procedure TMainForm.ViewZoomInExecute(Sender: TObject);
begin
SimpleGraph.ChangeZoomBy(+10, zoCenter);
end;
procedure TMainForm.ViewZoomOutUpdate(Sender: TObject);
begin
ViewZoomOut.Enabled := (SimpleGraph.Zoom > Low(TZoom));
end;
procedure TMainForm.ViewZoomOutExecute(Sender: TObject);
begin
SimpleGraph.ChangeZoomBy(-10, zoCenter);
end;
procedure TMainForm.ViewActualSizeUpdate(Sender: TObject);
begin
ViewActualSize.Enabled := (SimpleGraph.Zoom <> 100);
end;
procedure TMainForm.ViewActualSizeExecute(Sender: TObject);
begin
SimpleGraph.ChangeZoom(100, zoTopLeft);
end;
procedure TMainForm.ViewWholeGraphUpdate(Sender: TObject);
begin
ViewWholeGraph.Enabled := (SimpleGraph.Objects.Count > 0);
end;
procedure TMainForm.ViewWholeGraphExecute(Sender: TObject);
begin
SimpleGraph.ZoomGraph;
end;
procedure TMainForm.ViewGridUpdate(Sender: TObject);
begin
ViewGrid.Checked := SimpleGraph.ShowGrid;
end;
procedure TMainForm.ViewGridExecute(Sender: TObject);
begin
SimpleGraph.ShowGrid := not SimpleGraph.ShowGrid;
end;
procedure TMainForm.ViewFixScrollsUpdate(Sender: TObject);
begin
ViewFixScrolls.Checked := SimpleGraph.FixedScrollBars;
end;
procedure TMainForm.ViewFixScrollsExecute(Sender: TObject);
begin
SimpleGraph.FixedScrollBars := not SimpleGraph.FixedScrollBars;
end;
procedure TMainForm.ViewTransparentUpdate(Sender: TObject);
begin
ViewTransparent.Checked := SimpleGraph.Transparent;
end;
procedure TMainForm.ViewTransparentExecute(Sender: TObject);
begin
SimpleGraph.Transparent := not SimpleGraph.Transparent;
end;
procedure TMainForm.ViewPanUpdate(Sender: TObject);
begin
ViewPan.Checked := (SimpleGraph.CommandMode = cmPan);
ViewPan.Enabled := (SimpleGraph.HorzScrollBar.IsScrollBarVisible or
SimpleGraph.VertScrollBar.IsScrollBarVisible);
end;
procedure TMainForm.ViewPanExecute(Sender: TObject);
begin
SimpleGraph.CommandMode := cmPan;
end;
procedure TMainForm.HelpAboutExecute(Sender: TObject);
begin
with TAbout.Create(Application) do
try
ShowModal;
finally
Free;
end;
end;
procedure TMainForm.HelpUsageExecute(Sender: TObject);
begin
THelpOnActions.Execute;
end;
procedure TMainForm.OptionsConfirmHookLinkExecute(Sender: TObject);
begin
OptionsConfirmHookLink.Checked := not OptionsConfirmHookLink.Checked;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -