⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.pas

📁 矢量绘图组件(开源版)
💻 PAS
📖 第 1 页 / 共 4 页
字号:
{------------------------------------------------------------------------------}
{                                                                              }
{  TSimpleGraph Demonstration Program                                          }
{  by Kambiz R. Khojasteh                                                      }
{                                                                              }
{  kambiz@delphiarea.com                                                       }
{  http://www.delphiarea.com                                                   }
{                                                                              }
{------------------------------------------------------------------------------}

{$I DELPHIAREA.INC}

unit Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  SimpleGraph {$IFDEF COMPILER7_UP}, XPMan {$ENDIF}, Dialogs, ExtDlgs,
  Menus, ActnList, ImgList, StdCtrls, ComCtrls, ToolWin, JPEG, Buttons;

type
  TMainForm = class(TForm)
    SimpleGraph: TSimpleGraph;
    ToolBar: TToolBar;
    StatusBar: TStatusBar;
    ImageList: TImageList;
    ActionList: TActionList;
    FileNew: TAction;
    FileOpen: TAction;
    FileSave: TAction;
    MainMenu: TMainMenu;
    File1: TMenuItem;
    New1: TMenuItem;
    Open1: TMenuItem;
    Save1: TMenuItem;
    FileExit: TAction;
    N1: TMenuItem;
    Exit1: TMenuItem;
    OpenDialog: TOpenDialog;
    SaveDialog: TSaveDialog;
    EditCut: TAction;
    EditCopy: TAction;
    EditPaste: TAction;
    EditDelete: TAction;
    EditSelectAll: TAction;
    EditLockNodes: TAction;
    Edit1: TMenuItem;
    EditCut1: TMenuItem;
    Copy1: TMenuItem;
    Paste1: TMenuItem;
    Delete1: TMenuItem;
    N2: TMenuItem;
    SelectAll1: TMenuItem;
    N3: TMenuItem;
    LockNodes1: TMenuItem;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ObjectsNone: TAction;
    ObjectsRectangle: TAction;
    ObjectsRoundRect: TAction;
    ObjectsEllipse: TAction;
    ObjectsLink: TAction;
    Opjects1: TMenuItem;
    ToolButton12: TToolButton;
    ToolButton13: TToolButton;
    ToolButton14: TToolButton;
    ToolButton15: TToolButton;
    ToolButton16: TToolButton;
    EditBringToFront: TAction;
    EditSendToBack: TAction;
    N6: TMenuItem;
    BringToFront1: TMenuItem;
    SendToBack1: TMenuItem;
    EditProperties: TAction;
    N7: TMenuItem;
    Properties1: TMenuItem;
    DesignerPopup: TPopupMenu;
    ObjectsPopup: TPopupMenu;
    Properties2: TMenuItem;
    Cut1: TMenuItem;
    Copy2: TMenuItem;
    Paste2: TMenuItem;
    Delete2: TMenuItem;
    N8: TMenuItem;
    Properties3: TMenuItem;
    N10: TMenuItem;
    N12: TMenuItem;
    SelectAllNodes1: TMenuItem;
    Paste5: TMenuItem;
    EditMode1: TMenuItem;
    N4: TMenuItem;
    InsertRectangle1: TMenuItem;
    InsertRoundRectangle1: TMenuItem;
    InsertEllipse1: TMenuItem;
    N5: TMenuItem;
    LinkObjects1: TMenuItem;
    N9: TMenuItem;
    InsertRectangle2: TMenuItem;
    InsertRoundRectangle2: TMenuItem;
    InsertEllipse2: TMenuItem;
    N14: TMenuItem;
    LinkObjects2: TMenuItem;
    N15: TMenuItem;
    BringToFront2: TMenuItem;
    SendToBack2: TMenuItem;
    FilePrint: TAction;
    N16: TMenuItem;
    Print1: TMenuItem;
    PrinterSetupDialog: TPrinterSetupDialog;
    ToolButton19: TToolButton;
    ToolButton20: TToolButton;
    ToolButton21: TToolButton;
    ToolButton22: TToolButton;
    btnSaveAs: TToolButton;
    FileSaveAs: TAction;
    FileSaveAs1: TMenuItem;
    HelpAbout: TAction;
    Help1: TMenuItem;
    About2: TMenuItem;
    FormatToolBar: TToolBar;
    cbxFontName: TComboBox;
    cbxFontSize: TComboBox;
    btnBoldface: TToolButton;
    btnItalic: TToolButton;
    btnUnderline: TToolButton;
    FormatBold: TAction;
    FormatItalic: TAction;
    FormatUnderline: TAction;
    FormatAlignLeft: TAction;
    FormatCenter: TAction;
    FormatAlignRight: TAction;
    ToolButton27: TToolButton;
    ToolButton28: TToolButton;
    ToolButton29: TToolButton;
    ExportMetafile: TAction;
    SavePictureDialog: TSavePictureDialog;
    ToolButton30: TToolButton;
    ToolButton17: TToolButton;
    ToolButton25: TToolButton;
    ViewZoomIn: TAction;
    ViewZoomOut: TAction;
    ToolButton32: TToolButton;
    ObjectsTriangle: TAction;
    ToolButton33: TToolButton;
    ObjectsRhomboid: TAction;
    ToolButton34: TToolButton;
    ObjectsPentagon: TAction;
    ToolButton35: TToolButton;
    FormatAlignTop: TAction;
    FormatVCenter: TAction;
    FormatAlignBottom: TAction;
    ToolButton36: TToolButton;
    ToolButton37: TToolButton;
    ToolButton38: TToolButton;
    ToolButton39: TToolButton;
    ToolButton40: TToolButton;
    ViewGrid: TAction;
    ToolButton42: TToolButton;
    ToolButton44: TToolButton;
    ToolButton45: TToolButton;
    ToolButton46: TToolButton;
    ToolButton47: TToolButton;
    ToolButton48: TToolButton;
    InsertTriangle1: TMenuItem;
    InsertRhomboid1: TMenuItem;
    InsertPentagon1: TMenuItem;
    EditLockLinks: TAction;
    EditLockLinks1: TMenuItem;
    InsertTriangle2: TMenuItem;
    InsertRhomboid2: TMenuItem;
    InsertPentagon2: TMenuItem;
    View1: TMenuItem;
    ShowGrid1: TMenuItem;
    N11: TMenuItem;
    ZoomIn1: TMenuItem;
    ZoomOut1: TMenuItem;
    ViewActualSize: TAction;
    ActualSize1: TMenuItem;
    ToolButton11: TToolButton;
    LinkRemovePoint: TAction;
    LinkAddPoint: TAction;
    LinkGrow: TAction;
    LinkShrink: TAction;
    LinkRotateCW: TAction;
    LinkRotateCCW: TAction;
    N13: TMenuItem;
    LinkReverse: TAction;
    AddPoint1: TMenuItem;
    RemovePoint1: TMenuItem;
    N17: TMenuItem;
    LinkGrow1: TMenuItem;
    Shrink1: TMenuItem;
    RotateClockwise1: TMenuItem;
    RotateCounterClockwise1: TMenuItem;
    ReverseDirection1: TMenuItem;
    HelpUsage: TAction;
    UsingKeyboardandMouse1: TMenuItem;
    N18: TMenuItem;
    EditInvertSelection: TAction;
    InvertSelection1: TMenuItem;
    OptionsConfirmHookLink: TAction;
    ToolButton23: TToolButton;
    ToolButton24: TToolButton;
    ToolButton41: TToolButton;
    ToolButton49: TToolButton;
    ObjectsHexagon: TAction;
    InsertHexagon1: TMenuItem;
    InsertHexagon2: TMenuItem;
    EditMakeAllSelectable: TAction;
    MakeAllSelectable1: TMenuItem;
    OptionsConfirmDeletion: TAction;
    N19: TMenuItem;
    Prefernces1: TMenuItem;
    ConfirmDeletion1: TMenuItem;
    ConfirmHookingLinking1: TMenuItem;
    ViewWholeGraph: TAction;
    FullGraph1: TMenuItem;
    ExportBitmap: TAction;
    Export1: TMenuItem;
    AsMetafile1: TMenuItem;
    AsBitmap1: TMenuItem;
    FileMerge: TAction;
    Merge1: TMenuItem;
    ViewPan: TAction;
    ToolButton18: TToolButton;
    N20: TMenuItem;
    PanMode1: TMenuItem;
    ClipboardNative: TAction;
    ClipboardBitmap: TAction;
    ClipboardMetafile: TAction;
    ClipboardFormats1: TMenuItem;
    Native1: TMenuItem;
    Bitmap1: TMenuItem;
    Metafile1: TMenuItem;
    EditAlign: TAction;
    ViewFixScrolls: TAction;
    FixScrollBars1: TMenuItem;
    Align1: TMenuItem;
    Align2: TMenuItem;
    BackgroundLabel: TLabel;
    ViewTransparent: TAction;
    ransparent1: TMenuItem;
    ToolButton26: TToolButton;
    EditSize: TAction;
    Size1: TMenuItem;
    Size2: TMenuItem;
    ToolButton31: TToolButton;
    procedure FileNewExecute(Sender: TObject);
    procedure FileOpenExecute(Sender: TObject);
    procedure FileSaveExecute(Sender: TObject);
    procedure FileSaveAsExecute(Sender: TObject);
    procedure ExportMetafileExecute(Sender: TObject);
    procedure FilePrintExecute(Sender: TObject);
    procedure FileExitExecute(Sender: TObject);
    procedure EditCutExecute(Sender: TObject);
    procedure EditCopyExecute(Sender: TObject);
    procedure EditPasteExecute(Sender: TObject);
    procedure EditDeleteExecute(Sender: TObject);
    procedure EditSelectAllExecute(Sender: TObject);
    procedure EditSendToBackExecute(Sender: TObject);
    procedure EditBringToFrontExecute(Sender: TObject);
    procedure EditLockNodesExecute(Sender: TObject);
    procedure EditPropertiesExecute(Sender: TObject);
    procedure FormatBoldExecute(Sender: TObject);
    procedure FormatItalicExecute(Sender: TObject);
    procedure FormatUnderlineExecute(Sender: TObject);
    procedure FormatAlignLeftExecute(Sender: TObject);
    procedure FormatCenterExecute(Sender: TObject);
    procedure FormatAlignRightExecute(Sender: TObject);
    procedure HelpAboutExecute(Sender: TObject);
    procedure ObjectsNoneExecute(Sender: TObject);
    procedure ObjectsRectangleExecute(Sender: TObject);
    procedure ObjectsRoundRectExecute(Sender: TObject);
    procedure ObjectsEllipseExecute(Sender: TObject);
    procedure ObjectsTriangleExecute(Sender: TObject);
    procedure ObjectsLinkExecute(Sender: TObject);
    procedure ObjectsRhomboidExecute(Sender: TObject);
    procedure ObjectsPentagonExecute(Sender: TObject);
    procedure ObjectsHexagonExecute(Sender: TObject);
    procedure ViewZoomInExecute(Sender: TObject);
    procedure ViewZoomOutExecute(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject;var CanClose: Boolean);
    procedure cbxFontSizeChange(Sender: TObject);
    procedure cbxFontNameChange(Sender: TObject);
    procedure SimpleGraphDblClick(Sender: TObject);
    procedure SimpleGraphNodeDblClick(Graph: TSimpleGraph;
      Node: TGraphNode);
    procedure SimpleGraphLinkDblClick(Graph: TSimpleGraph;
      Link: TGraphLink);
    procedure FormCreate(Sender: TObject);
    procedure SimpleGraphCommandModeChange(Sender: TObject);
    procedure SimpleGraphObjectSelect(Graph: TSimpleGraph;
      GraphObject: TGraphObject);
    procedure SimpleGraphObjectDblClick(Graph: TSimpleGraph;
      GraphObject: TGraphObject);
    procedure FormatAlignTopExecute(Sender: TObject);
    procedure FormatVCenterExecute(Sender: TObject);
    procedure FormatAlignBottomExecute(Sender: TObject);
    procedure ViewGridExecute(Sender: TObject);
    procedure SimpleGraphInfoTip(Graph: TSimpleGraph;
      GraphObject: TGraphObject; var InfoTip: String);
    procedure EditLockLinksExecute(Sender: TObject);
    procedure ViewActualSizeExecute(Sender: TObject);
    procedure LinkRemovePointExecute(Sender: TObject);
    procedure LinkAddPointExecute(Sender: TObject);
    procedure LinkGrowExecute(Sender: TObject);
    procedure LinkShrinkExecute(Sender: TObject);
    procedure LinkRotateCWExecute(Sender: TObject);
    procedure LinkRotateCCWExecute(Sender: TObject);
    procedure LinkReverseExecute(Sender: TObject);
    procedure ObjectsPopupPopup(Sender: TObject);
    procedure HelpUsageExecute(Sender: TObject);
    procedure EditInvertSelectionExecute(Sender: TObject);
    procedure SimpleGraphCanHookLink(Graph: TSimpleGraph;
      GraphObject: TGraphObject; Link: TGraphLink; Index: Integer;
      var CanHook: Boolean);
    procedure SimpleGraphCanLinkObjects(Graph: TSimpleGraph;
      Link: TGraphLink; Source, Target: TGraphObject;
      var CanLink: Boolean);
    procedure OptionsConfirmHookLinkExecute(Sender: TObject);
    procedure OptionsConfirmDeletionExecute(Sender: TObject);
    procedure EditMakeAllSelectableExecute(Sender: TObject);
    procedure SimpleGraphCanRemoveObject(Graph: TSimpleGraph;
      GraphObject: TGraphObject; var CanRemove: Boolean);
    procedure ViewWholeGraphExecute(Sender: TObject);
    procedure SimpleGraphObjectChange(Graph: TSimpleGraph;
      GraphObject: TGraphObject);
    procedure ExportBitmapExecute(Sender: TObject);
    procedure SimpleGraphObjectInitInstance(Graph: TSimpleGraph;
      GraphObject: TGraphObject);
    procedure SimpleGraphMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FileMergeExecute(Sender: TObject);
    procedure SimpleGraphMouseWheelDown(Sender: TObject;
      Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
    procedure SimpleGraphMouseWheelUp(Sender: TObject; Shift: TShiftState;
      MousePos: TPoint; var Handled: Boolean);
    procedure SimpleGraphObjectAfterDraw(Graph: TSimpleGraph;
      GraphObject: TGraphObject; Canvas: TCanvas);
    procedure ViewPanExecute(Sender: TObject);
    procedure SimpleGraphNodeMoveResize(Graph: TSimpleGraph;
      Node: TGraphNode);
    procedure ClipboardNativeExecute(Sender: TObject);
    procedure ClipboardBitmapExecute(Sender: TObject);
    procedure ClipboardMetafileExecute(Sender: TObject);
    procedure ViewFixScrollsExecute(Sender: TObject);
    procedure EditAlignExecute(Sender: TObject);
    procedure ClipboardBitmapUpdate(Sender: TObject);
    procedure ClipboardMetafileUpdate(Sender: TObject);
    procedure ClipboardNativeUpdate(Sender: TObject);
    procedure EditAlignUpdate(Sender: TObject);
    procedure EditBringToFrontUpdate(Sender: TObject);
    procedure EditCopyUpdate(Sender: TObject);
    procedure EditCutUpdate(Sender: TObject);
    procedure EditDeleteUpdate(Sender: TObject);
    procedure EditInvertSelectionUpdate(Sender: TObject);
    procedure EditLockLinksUpdate(Sender: TObject);
    procedure EditLockNodesUpdate(Sender: TObject);
    procedure EditMakeAllSelectableUpdate(Sender: TObject);
    procedure EditPasteUpdate(Sender: TObject);
    procedure EditSelectAllUpdate(Sender: TObject);
    procedure EditSendToBackUpdate(Sender: TObject);
    procedure ExportBitmapUpdate(Sender: TObject);
    procedure ExportMetafileUpdate(Sender: TObject);
    procedure FileMergeUpdate(Sender: TObject);
    procedure FilePrintUpdate(Sender: TObject);
    procedure FileSaveAsUpdate(Sender: TObject);
    procedure FileSaveUpdate(Sender: TObject);
    procedure ObjectsEllipseUpdate(Sender: TObject);
    procedure ObjectsHexagonUpdate(Sender: TObject);
    procedure ObjectsLinkUpdate(Sender: TObject);
    procedure ObjectsNoneUpdate(Sender: TObject);
    procedure ObjectsPentagonUpdate(Sender: TObject);
    procedure ObjectsRectangleUpdate(Sender: TObject);
    procedure ObjectsRhomboidUpdate(Sender: TObject);
    procedure ObjectsRoundRectUpdate(Sender: TObject);
    procedure ObjectsTriangleUpdate(Sender: TObject);
    procedure ViewActualSizeUpdate(Sender: TObject);
    procedure ViewFixScrollsUpdate(Sender: TObject);
    procedure ViewGridUpdate(Sender: TObject);
    procedure ViewPanUpdate(Sender: TObject);
    procedure ViewWholeGraphUpdate(Sender: TObject);
    procedure ViewZoomInUpdate(Sender: TObject);
    procedure ViewZoomOutUpdate(Sender: TObject);
    procedure SimpleGraphZoomChange(Sender: TObject);
    procedure SimpleGraphGraphChange(Sender: TObject);
    procedure ViewTransparentUpdate(Sender: TObject);
    procedure ViewTransparentExecute(Sender: TObject);
    procedure EditSizeUpdate(Sender: TObject);
    procedure EditSizeExecute(Sender: TObject);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -