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

📄 simplegraph.hpp

📁 矢量绘图组件(开源版)
💻 HPP
📖 第 1 页 / 共 5 页
字号:
	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 + -