📄 simplegraph.hpp
字号:
virtual void __fastcall DoObjectMouseLeave(TGraphObject* GraphObject);
virtual void __fastcall DoObjectBeforeDraw(Graphics::TCanvas* ACanvas, TGraphObject* GraphObject);
virtual void __fastcall DoObjectAfterDraw(Graphics::TCanvas* ACanvas, TGraphObject* GraphObject);
virtual void __fastcall DoObjectContextPopup(TGraphObject* GraphObject, const Types::TPoint &MousePos, bool &Handled);
virtual void __fastcall DoObjectBeginDrag(TGraphObject* GraphObject, unsigned HT);
virtual void __fastcall DoObjectEndDrag(TGraphObject* GraphObject, unsigned HT, bool Cancelled);
virtual void __fastcall DoObjectRead(TGraphObject* GraphObject, Classes::TStream* Stream);
virtual void __fastcall DoObjectWrite(TGraphObject* GraphObject, Classes::TStream* Stream);
virtual void __fastcall DoObjectUnhook(TGraphObject* GraphObject, TGraphLink* Link, int Index);
virtual void __fastcall DoObjectHook(TGraphObject* GraphObject, TGraphLink* Link, int Index);
virtual void __fastcall DoCanHookLink(TGraphObject* GraphObject, TGraphLink* Link, int Index, bool &CanHook);
virtual void __fastcall DoCanLinkObjects(TGraphLink* Link, TGraphObject* Source, TGraphObject* Target, bool &CanLink);
virtual void __fastcall DoCanMoveResizeNode(TGraphNode* Node, int &aLeft, int &aTop, int &aWidth, int &aHeight, bool &CanMove, bool &CanResize);
virtual void __fastcall DoCanRemoveObject(TGraphObject* GraphObject, bool &CanRemove);
virtual void __fastcall DoNodeMoveResize(TGraphNode* Node);
virtual void __fastcall ReadObjects(Classes::TStream* Stream);
virtual void __fastcall WriteObjects(Classes::TStream* Stream, TGraphObjectList* ObjectList);
virtual void __fastcall RestoreObjects(Classes::TStream* Stream);
virtual void __fastcall BackupObjects(Classes::TStream* Stream, TGraphObjectList* ObjectList);
virtual void __fastcall DrawGrid(Graphics::TCanvas* Canvas);
virtual void __fastcall DrawObjects(Graphics::TCanvas* Canvas, TGraphObjectList* ObjectList);
virtual void __fastcall DrawEditStates(Graphics::TCanvas* Canvas);
virtual unsigned __fastcall CreateUniqueID(TGraphObject* GraphObject);
virtual Graphics::TMetafile* __fastcall GetAsMetafile(HDC RefDC, TGraphObjectList* ObjectList);
virtual Graphics::TBitmap* __fastcall GetAsBitmap(TGraphObjectList* ObjectList);
virtual Types::TRect __fastcall GetObjectsBounds(TGraphObjectList* ObjectList);
virtual void __fastcall AdjustDC(HDC DC, Types::PPoint Org = (void *)(0x0));
void __fastcall GPToCP(void *Points, int Count);
void __fastcall CPToGP(void *Points, int Count);
virtual void __fastcall UpdateScrollBars(void);
virtual void __fastcall CalcAutoRange(void);
virtual bool __fastcall BeginDragObject(TGraphObject* GraphObject, const Types::TPoint &Pt, unsigned HT);
virtual void __fastcall PerformDragBy(int dX, int dY);
virtual void __fastcall EndDragObject(bool Accept);
void __fastcall PerformInvalidate(Types::PRect pRect);
virtual void __fastcall CheckObjectAtCursor(const Types::TPoint &Pt);
virtual void __fastcall RenewObjectAtCursor(TGraphObject* NewObjectAtCursor);
TGraphObject* __fastcall InsertObjectByMouse(Types::TPoint &Pt, TMetaClass* GraphObjectClass, bool GridSnap);
virtual bool __fastcall DefaultKeyHandler(Word &Key, Classes::TShiftState Shift);
__property TCanvasRecall* CanvasRecall = {read=fCanvasRecall};
__property Types::TPoint DragSourcePt = {read=fDragSourcePt, write=fDragSourcePt};
__property Types::TPoint DragTargetPt = {read=fDragTargetPt, write=fDragTargetPt};
__property unsigned DragHitTest = {read=fDragHitTest, write=fDragHitTest, nodefault};
__property bool DragModified = {read=fDragModified, nodefault};
__property bool ValidMarkedArea = {read=fValidMarkedArea, nodefault};
__property Types::TRect MarkedArea = {read=fMarkedArea, write=SetMarkedArea};
public:
/* class method */ static void __fastcall Register(TMetaClass* vmt, TMetaClass* ANodeClass)/* overload */;
/* class method */ static void __fastcall Unregister(TMetaClass* vmt, TMetaClass* ANodeClass)/* overload */;
/* class method */ static int __fastcall NodeClassCount(TMetaClass* vmt);
/* class method */ static TMetaClass* __fastcall NodeClasses(TMetaClass* vmt, int Index);
/* class method */ static void __fastcall Register(TMetaClass* vmt, TMetaClass* ALinkClass)/* overload */;
/* class method */ static void __fastcall Unregister(TMetaClass* vmt, TMetaClass* ALinkClass)/* overload */;
/* class method */ static int __fastcall LinkClassCount(TMetaClass* vmt);
/* class method */ static TMetaClass* __fastcall LinkClasses(TMetaClass* vmt, int Index);
__fastcall virtual TSimpleGraph(Classes::TComponent* AOwner);
__fastcall virtual ~TSimpleGraph(void);
void __fastcall BeginUpdate(void);
void __fastcall EndUpdate(void);
virtual void __fastcall Invalidate(void);
void __fastcall InvalidateRect(const Types::TRect &Rect);
void __fastcall Draw(Graphics::TCanvas* Canvas);
void __fastcall Print(Graphics::TCanvas* Canvas, const Types::TRect &Rect);
void __fastcall ToggleSelection(const Types::TRect &Rect, bool KeepOld, TMetaClass* GraphObjectClass = 0x0);
TGraphObject* __fastcall FindObjectAt(int X, int Y, TGraphObject* LookAfter = (TGraphObject*)(0x0));
TGraphObject* __fastcall FindObjectByID(unsigned ID);
TGraphNode* __fastcall InsertNode(const Types::TRect &Bounds, TMetaClass* ANodeClass = 0x0);
TGraphLink* __fastcall InsertLink(TGraphObject* Source, TGraphObject* Target, TMetaClass* ALinkClass = 0x0)/* overload */;
TGraphLink* __fastcall InsertLink(TGraphObject* Source, const Types::TPoint * Pts, const int Pts_Size, TMetaClass* ALinkClass = 0x0)/* overload */;
TGraphLink* __fastcall InsertLink(const Types::TPoint * Pts, const int Pts_Size, TGraphObject* Target, TMetaClass* ALinkClass = 0x0)/* overload */;
TGraphLink* __fastcall InsertLink(const Types::TPoint * Pts, const int Pts_Size, TMetaClass* ALinkClass = 0x0)/* overload */;
void __fastcall ScrollInView(TGraphObject* GraphObject)/* overload */;
void __fastcall ScrollInView(const Types::TRect &Rect)/* overload */;
void __fastcall ScrollInView(const Types::TPoint &Pt)/* overload */;
void __fastcall ScrollCenter(TGraphObject* GraphObject)/* overload */;
void __fastcall ScrollCenter(const Types::TRect &Rect)/* overload */;
void __fastcall ScrollCenter(const Types::TPoint &Pt)/* overload */;
HIDESBASE void __fastcall ScrollBy(int DeltaX, int DeltaY);
bool __fastcall ZoomRect(const Types::TRect &Rect);
bool __fastcall ZoomObject(TGraphObject* GraphObject);
bool __fastcall ZoomSelection(void);
bool __fastcall ZoomGraph(void);
bool __fastcall ChangeZoom(int NewZoom, TGraphZoomOrigin Origin);
bool __fastcall ChangeZoomBy(int Delta, TGraphZoomOrigin Origin);
bool __fastcall AlignSelection(THAlignOption Horz, TVAlignOption Vert);
bool __fastcall ResizeSelection(TResizeOption Horz, TResizeOption Vert);
int __fastcall ForEachObject(TGraphForEachMethod Callback, int UserData, bool Selection = false);
TGraphObject* __fastcall FindNextObject(int StartIndex, bool Inclusive, bool Backward, bool Wrap, TMetaClass* GraphObjectClass = 0x0);
bool __fastcall SelectNextObject(bool Backward, TMetaClass* GraphObjectClass = 0x0);
int __fastcall ObjectsCount(TMetaClass* GraphObjectClass = 0x0);
int __fastcall SelectedObjectsCount(TMetaClass* GraphObjectClass = 0x0);
void __fastcall ClearSelection(void);
void __fastcall Clear(void);
void __fastcall SaveAsMetafile(const AnsiString Filename);
void __fastcall SaveAsBitmap(const AnsiString Filename);
void __fastcall CopyToGraphic(Graphics::TGraphic* Graphic);
void __fastcall LoadFromStream(Classes::TStream* Stream);
void __fastcall SaveToStream(Classes::TStream* Stream);
void __fastcall LoadFromFile(const AnsiString Filename);
void __fastcall SaveToFile(const AnsiString Filename);
void __fastcall MergeFromStream(Classes::TStream* Stream, int OffsetX, int OffsetY);
void __fastcall MergeFromFile(const AnsiString Filename, int OffsetX, int OffsetY);
void __fastcall CopyToClipboard(bool Selection = true);
bool __fastcall PasteFromClipboard(void);
void __fastcall SnapOffset(const Types::TPoint &Pt, int &dX, int &dY);
Types::TPoint __fastcall SnapPoint(const Types::TPoint &Pt);
Types::TPoint __fastcall ClientToGraph(int X, int Y);
Types::TPoint __fastcall GraphToClient(int X, int Y);
Types::TPoint __fastcall ScreenToGraph(int X, int Y);
Types::TPoint __fastcall GraphToScreen(int X, int Y);
__property TGraphObject* DragSource = {read=fDragSource};
__property TGraphObject* ObjectAtCursor = {read=fObjectAtCursor};
__property Types::TPoint CursorPos = {read=GetCursorPos, write=SetCursorPos};
__property Types::TRect VisibleBounds = {read=GetVisibleBounds};
__property Types::TRect GraphBounds = {read=GetBoundingRect, index=0};
__property Types::TRect SelectionBounds = {read=GetBoundingRect, index=1};
__property Types::TRect DraggingBounds = {read=GetBoundingRect, index=2};
__property TGraphObjectList* Objects = {read=fObjects};
__property TGraphObjectList* SelectedObjects = {read=fSelectedObjects};
__property TGraphObjectList* DraggingObjects = {read=fDraggingObjects};
__property bool Modified = {read=fModified, write=fModified, nodefault};
__property TGraphCommandMode CommandMode = {read=fCommandMode, write=SetCommandMode, nodefault};
__property TMetaClass* DefaultNodeClass = {read=fDefaultNodeClass, write=fDefaultNodeClass};
__property TMetaClass* DefaultLinkClass = {read=fDefaultLinkClass, write=fDefaultLinkClass};
__published:
__property Align = {default=0};
__property Anchors = {default=3};
__property BiDiMode ;
__property TGraphClipboardFormats ClipboardFormats = {read=fClipboardFormats, write=fClipboardFormats, default=1};
__property Color = {default=-2147483643};
__property Constraints ;
__property bool DefaultKeyMap = {read=fDefaultKeyMap, write=fDefaultKeyMap, default=1};
__property DragCursor = {default=-12};
__property DragKind = {default=0};
__property DragMode = {default=0};
__property TGraphDrawOrder DrawOrder = {read=fDrawOrder, write=SetDrawOrder, default=0};
__property Enabled = {default=1};
__property bool FixedScrollBars = {read=fFixedScrollBars, write=SetFixedScrollBars, default=0};
__property Font ;
__property TGraphConstraints* GraphConstraints = {read=fGraphConstraints, write=SetGraphConstraints};
__property Graphics::TColor GridColor = {read=fGridColor, write=SetGridColor, default=8421504};
__property TGridSize GridSize = {read=fGridSize, write=SetGridSize, default=8};
__property Height ;
__property bool HideSelection = {read=fHideSelection, write=SetHideSelection, default=0};
__property TGraphScrollBar* HorzScrollBar = {read=fHorzScrollBar, write=SetHorzScrollBar};
__property bool LockLinks = {read=fLockLinks, write=SetLockLinks, default=0};
__property bool LockNodes = {read=fLockNodes, write=SetLockNodes, default=0};
__property Graphics::TColor MarkerColor = {read=fMarkerColor, write=SetMarkerColor, default=0};
__property TMarkerSize MarkerSize = {read=fMarkerSize, write=SetMarkerSize, default=3};
__property Word MinNodeSize = {read=fMinNodeSize, write=fMinNodeSize, default=16};
__property Menus::TPopupMenu* ObjectPopupMenu = {read=fObjectPopupMenu, write=fObjectPopupMenu};
__property ParentBiDiMode = {default=1};
__property ParentColor = {default=1};
__property ParentFont = {default=1};
__property ParentShowHint = {default=1};
__property PopupMenu ;
__property bool ShowGrid = {read=fShowGrid, write=SetShowGrid, default=1};
__property bool ShowHiddenObjects = {read=fShowHiddenObjects, write=SetShowHiddenObjects, default=0};
__property ShowHint ;
__property bool SnapToGrid = {read=fSnapToGrid, write=fSnapToGrid, default=1};
__property TabOrder = {default=-1};
__property TabStop = {default=0};
__property bool Transparent = {read=fTransparent, write=SetTransparent, default=0};
__property TGraphScrollBar* VertScrollBar = {read=fVertScrollBar, write=SetVertScrollBar};
__property Visible = {default=1};
__property Width ;
__property TZoom Zoom = {read=fZoom, write=SetZoom, default=100};
__property OnCanResize ;
__property OnClick ;
__property OnConstrainedResize ;
__property OnContextPopup ;
__property OnDblClick ;
__property OnDragDrop ;
__property OnDragOver ;
__property OnDockDrop ;
__property OnDockOver ;
__property OnEndDock ;
__property OnEndDrag ;
__property OnEnter ;
__property OnExit ;
__property OnGetSiteInfo ;
__property OnKeyDown ;
__property OnKeyPress ;
__property OnKeyUp ;
__property OnMouseDown ;
__property OnMouseMove ;
__property OnMouseUp ;
__property OnMouseWheelDown ;
__property OnMouseWheelUp ;
__property OnResize ;
__property OnStartDock ;
__property OnStartDrag ;
__property OnUnDock ;
__property TGraphNotifyEvent OnObjectInitInstance = {read=fOnObjectInitInstance, write=fOnObjectInitInstance};
__property TGraphNotifyEvent OnObjectInsert = {read=fOnObjectInsert, write=fOnObjectInsert};
__property TGraphNotifyEvent OnObjectRemove = {read=fOnObjectRemove, write=fOnObjectRemove};
__property TGraphNotifyEvent OnObjectChange = {read=fOnObjectChange, write=fOnObjectChange};
__property TGraphNotifyEvent OnObjectSelect = {read=fOnObjectSelect, write=fOnObjectSelect};
__property TGraphNotifyEvent OnObjectClick = {read=fOnObjectClick, write=fOnObjectClick};
__property TGraphNotifyEvent OnObjectDblClick = {read=fOnObjectDblClick, write=fOnObjectDblClick};
__property TGraphContextPopupEvent OnObjectContextPopup = {read=fOnObjectContextPopup, write=fOnObjectContextPopup};
__property TGraphObjectDrawEvent OnObjectBeforeDraw = {read=fOnObjectBeforeDraw, write=fOnObjectBeforeDraw};
__property TGraphObjectDrawEvent OnObjectAfterDraw = {read=fOnObjectAfterDraw, write=fOnObjectAfterDraw};
__property TGraphBeginDragEvent OnObjectBeginDrag = {read=fOnObjectBeginDrag, write=fOnObjectBeginDrag};
__property TGraphEndDragEvent OnObjectEndDrag = {read=fOnObjectEndDrag, write=fOnObjectEndDrag};
__property TGraphNotifyEvent OnObjectMouseEnter = {read=fOnObjectMouseEnter, write=fOnObjectMouseEnter};
__property TGraphNotifyEvent OnObjectMouseLeave = {read=fOnObjectMouseLeave, write=fOnObjectMouseLeave};
__property TGraphStreamEvent OnObjectRead = {read=fOnObjectRead, write=fOnObjectRead};
__property TGraphStreamEvent OnObjectWrite = {read=fOnObjectWrite, write=fOnObjectWrite};
__property TGraphHookEvent OnObjectHook = {read=fOnObjectHook, write=fOnObjectHook};
__property TGraphHookEvent OnObjectUnhook = {read=fOnObjectUnhook, write=fOnObjectUnhook};
__property TGraphCanHookEvent OnCanHookLink = {read=fOnCanHookLink, write=fOnCanHookLink};
__property TGraphCanLinkEvent OnCanLinkObjects = {read=fOnCanLinkObjects, write=fOnCanLinkObjects};
__property TCanMoveResizeNodeEvent OnCanMoveResizeNode = {read=fOnCanMoveResizeNode, write=fOnCanMoveResizeNode};
__property TGraphCanRemoveEvent OnCanRemoveObject = {read=fOnCanRemoveObject, write=fOnCanRemoveObject};
__property TGraphNodeResizeEvent OnNodeMoveResize = {read=fOnNodeMoveResize, write=fOnNodeMoveResize};
__property Classes::TNotifyEvent OnGraphChange = {read=fOnGraphChange, write=fOnGraphChange};
__property Classes::TNotifyEvent OnCommandModeChange = {read=fOnCommandModeChange, write=fOnCommandModeChange};
__property TGraphDrawEvent OnBeforeDraw = {read=fOnBeforeDraw, write=fOnBeforeDraw};
__property TGraphDrawEvent OnAfterDraw = {read=fOnAfterDraw, write=fOnAfterDraw};
__property TGraphInfoTipEvent OnInfoTip = {read=fOnInfoTip, write=fOnInfoTip};
__property Classes::TNotifyEvent OnZoomChange = {read=fOnZoomChange, write=fOnZoomChange};
public:
#pragma option push -w-inl
/* TWinControl.CreateParented */ inline __fastcall TSimpleGraph(HWND ParentWindow) : Controls::TCustomControl(ParentWindow) { }
#pragma option pop
};
class PASCALIMPLEMENTATION TGraphScrollBar : public Classes::TPersistent
{
typedef Classes::TPersistent inherited;
private:
TSimpleGraph* fOwner;
Forms::TScrollBarInc fIncrement;
Forms::TScrollBarInc fPageIncrement;
int fPosition;
int fRange;
int fCalcRange;
Forms::TScrollBarKind fKind;
Word fMargin;
bool fVisible;
bool fTracking;
bool fSmooth;
int fDelay;
int fButtonSize;
Graphics::TColor fColor;
bool fParentColor;
int fSize;
Forms::TScrollBarStyle fStyle;
int fThumbSize;
int fPageDiv;
int fLineDiv;
bool fUpdateNeeded;
void __fastcall DoSetRange(int Value);
int __fastcall GetScrollPos(void);
void __fastcall SetButtonSize(int Value);
void __fastcall SetColor(Graphics::TColor Value);
void __fastcall SetParentColor(bool Value);
void __fastcall SetPosition(int Value);
void __fastcall SetSize(int Value);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -