📄 simplegraph.hpp
字号:
__property int MinLeft = {read=GetField, write=SetField, index=0, default=0};
__property int MinTop = {read=GetField, write=SetField, index=1, default=0};
__property int MaxRight = {read=GetField, write=SetField, index=2, default=65535};
__property int MaxBottom = {read=GetField, write=SetField, index=3, default=65535};
public:
#pragma option push -w-inl
/* TPersistent.Destroy */ inline __fastcall virtual ~TGraphConstraints(void) { }
#pragma option pop
};
#pragma option push -b-
enum TGraphDrawOrder { doDefault, doNodesOnTop, doLinksOnTop };
#pragma option pop
class DELPHICLASS TCanvasRecall;
class PASCALIMPLEMENTATION TCanvasRecall : public System::TObject
{
typedef System::TObject inherited;
private:
Graphics::TPen* fPen;
Graphics::TFont* fFont;
Graphics::TBrush* fBrush;
int fCopyMode;
int fTextFlags;
Graphics::TCanvas* fReference;
void __fastcall SetReference(Graphics::TCanvas* Value);
public:
__fastcall TCanvasRecall(Graphics::TCanvas* AReference);
__fastcall virtual ~TCanvasRecall(void);
void __fastcall Store(void);
void __fastcall Retrieve(void);
__property Graphics::TCanvas* Reference = {read=fReference, write=SetReference};
};
#pragma option push -b-
enum TGraphClipboardFormat { cfNative, cfMetafile, cfBitmap };
#pragma option pop
typedef Set<TGraphClipboardFormat, cfNative, cfBitmap> TGraphClipboardFormats;
typedef void __fastcall (__closure *TGraphNotifyEvent)(TSimpleGraph* Graph, TGraphObject* GraphObject);
typedef void __fastcall (__closure *TGraphContextPopupEvent)(TSimpleGraph* Graph, TGraphObject* GraphObject, const Types::TPoint &MousePos, bool &Handled);
typedef void __fastcall (__closure *TGraphObjectDrawEvent)(TSimpleGraph* Graph, TGraphObject* GraphObject, Graphics::TCanvas* Canvas);
typedef void __fastcall (__closure *TGraphBeginDragEvent)(TSimpleGraph* Graph, TGraphObject* GraphObject, unsigned HT);
typedef void __fastcall (__closure *TGraphEndDragEvent)(TSimpleGraph* Graph, TGraphObject* GraphObject, unsigned HT, bool Cancelled);
typedef void __fastcall (__closure *TGraphStreamEvent)(TSimpleGraph* Graph, TGraphObject* GraphObject, Classes::TStream* Stream);
class DELPHICLASS TGraphLink;
typedef void __fastcall (__closure *TGraphHookEvent)(TSimpleGraph* Graph, TGraphObject* GraphObject, TGraphLink* Link, int Index);
typedef void __fastcall (__closure *TGraphCanHookEvent)(TSimpleGraph* Graph, TGraphObject* GraphObject, TGraphLink* Link, int Index, bool &CanHook);
typedef void __fastcall (__closure *TGraphCanRemoveEvent)(TSimpleGraph* Graph, TGraphObject* GraphObject, bool &CanRemove);
typedef void __fastcall (__closure *TGraphCanLinkEvent)(TSimpleGraph* Graph, TGraphLink* Link, TGraphObject* Source, TGraphObject* Target, bool &CanLink);
class DELPHICLASS TGraphNode;
typedef void __fastcall (__closure *TCanMoveResizeNodeEvent)(TSimpleGraph* Graph, TGraphNode* Node, int &NewLeft, int &NewTop, int &NewWidth, int &NewHeight, bool &CanMove, bool &CanResize);
typedef void __fastcall (__closure *TGraphNodeResizeEvent)(TSimpleGraph* Graph, TGraphNode* Node);
typedef void __fastcall (__closure *TGraphDrawEvent)(TSimpleGraph* Graph, Graphics::TCanvas* Canvas);
typedef void __fastcall (__closure *TGraphInfoTipEvent)(TSimpleGraph* Graph, TGraphObject* GraphObject, AnsiString &InfoTip);
#pragma option push -b-
enum TGraphBoundsKind { bkGraph, bkSelected, bkDragging };
#pragma option pop
struct TWMPrint;
#pragma option push -b-
enum TGraphChangeFlag { gcView, gcData, gcText, gcPlacement, gcDependency };
#pragma option pop
typedef Set<TGraphChangeFlag, gcView, gcDependency> TGraphChangeFlags;
typedef TMetaClass*TGraphObjectClass;
#pragma option push -b-
enum TGraphZoomOrigin { zoTopLeft, zoCenter, zoCursor, zoCursorCenter };
#pragma option pop
#pragma option push -b-
enum THAlignOption { haNoChange, haLeft, haCenter, haRight, haSpaceEqually };
#pragma option pop
#pragma option push -b-
enum TVAlignOption { vaNoChange, vaTop, vaCenter, vaBottom, vaSpaceEqually };
#pragma option pop
#pragma option push -b-
enum TResizeOption { roNoChange, roSmallest, roLargest };
#pragma option pop
typedef bool __fastcall (__closure *TGraphForEachMethod)(TGraphObject* GraphObject, int UserData);
class PASCALIMPLEMENTATION TSimpleGraph : public Controls::TCustomControl
{
typedef Controls::TCustomControl inherited;
private:
TGridSize fGridSize;
Graphics::TColor fGridColor;
bool fShowGrid;
bool fSnapToGrid;
bool fShowHiddenObjects;
bool fHideSelection;
bool fLockNodes;
bool fLockLinks;
Graphics::TColor fMarkerColor;
TMarkerSize fMarkerSize;
TZoom fZoom;
TGraphObjectList* fObjects;
TGraphObjectList* fSelectedObjects;
TGraphObjectList* fDraggingObjects;
bool fDefaultKeyMap;
Menus::TPopupMenu* fObjectPopupMenu;
TMetaClass*fDefaultNodeClass;
TMetaClass*fDefaultLinkClass;
bool fModified;
TGraphCommandMode fCommandMode;
TGraphScrollBar* fHorzScrollBar;
TGraphScrollBar* fVertScrollBar;
TGraphConstraints* fGraphConstraints;
Word fMinNodeSize;
TGraphDrawOrder fDrawOrder;
bool fFixedScrollBars;
bool fValidMarkedArea;
#pragma pack(push, 1)
Types::TRect fMarkedArea;
#pragma pack(pop)
bool fTransparent;
TGraphObject* fDragSource;
unsigned fDragHitTest;
#pragma pack(push, 1)
Types::TPoint fDragSourcePt;
#pragma pack(pop)
#pragma pack(push, 1)
Types::TPoint fDragTargetPt;
#pragma pack(pop)
bool fDragModified;
TCanvasRecall* fCanvasRecall;
TGraphClipboardFormats fClipboardFormats;
TGraphObject* fObjectAtCursor;
TGraphNotifyEvent fOnObjectInitInstance;
TGraphNotifyEvent fOnObjectInsert;
TGraphNotifyEvent fOnObjectRemove;
TGraphNotifyEvent fOnObjectChange;
TGraphNotifyEvent fOnObjectSelect;
TGraphNotifyEvent fOnObjectClick;
TGraphNotifyEvent fOnObjectDblClick;
TGraphContextPopupEvent fOnObjectContextPopup;
TGraphObjectDrawEvent fOnObjectBeforeDraw;
TGraphObjectDrawEvent fOnObjectAfterDraw;
TGraphBeginDragEvent fOnObjectBeginDrag;
TGraphEndDragEvent fOnObjectEndDrag;
TGraphNotifyEvent fOnObjectMouseEnter;
TGraphNotifyEvent fOnObjectMouseLeave;
TGraphStreamEvent fOnObjectRead;
TGraphStreamEvent fOnObjectWrite;
TGraphHookEvent fOnObjectHook;
TGraphHookEvent fOnObjectUnhook;
TGraphCanHookEvent fOnCanHookLink;
TGraphCanRemoveEvent fOnCanRemoveObject;
TGraphCanLinkEvent fOnCanLinkObjects;
TCanMoveResizeNodeEvent fOnCanMoveResizeNode;
TGraphNodeResizeEvent fOnNodeMoveResize;
Classes::TNotifyEvent fOnGraphChange;
TGraphDrawEvent fOnBeforeDraw;
TGraphDrawEvent fOnAfterDraw;
Classes::TNotifyEvent fOnCommandModeChange;
TGraphInfoTipEvent fOnInfoTip;
Classes::TNotifyEvent fOnZoomChange;
bool UpdatingScrollBars;
int UpdateCount;
int SaveModified;
bool SaveRangeChange;
#pragma pack(push, 1)
Types::TRect SaveInvalidateRect;
#pragma pack(pop)
System::Set<TGraphBoundsKind, bkGraph, bkDragging> SaveBoundsChange;
Types::TRect SaveBounds[3];
int SuspendQueryEvents;
Classes::TMemoryStream* UndoStorage;
void __fastcall SetGridSize(TGridSize Value);
void __fastcall SetGridColor(Graphics::TColor Value);
void __fastcall SetShowGrid(bool Value);
void __fastcall SetTransparent(bool Value);
void __fastcall SetShowHiddenObjects(bool Value);
void __fastcall SetHideSelection(bool Value);
void __fastcall SetLockNodes(bool Value);
void __fastcall SetLockLinks(bool Value);
void __fastcall SetMarkerColor(Graphics::TColor Value);
void __fastcall SetMarkerSize(TMarkerSize Value);
void __fastcall SetZoom(TZoom Value);
void __fastcall SetDrawOrder(TGraphDrawOrder Value);
void __fastcall SetFixedScrollBars(bool Value);
void __fastcall SetCommandMode(TGraphCommandMode Value);
void __fastcall SetHorzScrollBar(TGraphScrollBar* Value);
void __fastcall SetVertScrollBar(TGraphScrollBar* Value);
void __fastcall SetGraphConstraints(TGraphConstraints* Value);
Types::TRect __fastcall GetBoundingRect(TGraphBoundsKind Kind);
Types::TRect __fastcall GetVisibleBounds();
Types::TPoint __fastcall GetCursorPos();
void __fastcall SetCursorPos(const Types::TPoint &Pt);
void __fastcall SetMarkedArea(const Types::TRect &Value);
HIDESBASE MESSAGE void __fastcall WMPaint(Messages::TWMPaint &Msg);
MESSAGE void __fastcall WMPrint(TWMPrint &Msg);
HIDESBASE MESSAGE void __fastcall WMEraseBkgnd(Messages::TWMEraseBkgnd &Msg);
HIDESBASE MESSAGE void __fastcall WMWindowPosChanging(Messages::TWMWindowPosMsg &Msg);
HIDESBASE MESSAGE void __fastcall WMSize(Messages::TWMSize &Msg);
HIDESBASE MESSAGE void __fastcall WMHScroll(Messages::TWMScroll &Msg);
HIDESBASE MESSAGE void __fastcall WMVScroll(Messages::TWMScroll &Msg);
HIDESBASE MESSAGE void __fastcall CNKeyDown(Messages::TWMKey &Msg);
HIDESBASE MESSAGE void __fastcall CNKeyUp(Messages::TWMKey &Msg);
HIDESBASE MESSAGE void __fastcall CMFontChanged(Messages::TMessage &Msg);
HIDESBASE MESSAGE void __fastcall CMBiDiModeChanged(Messages::TMessage &Msg);
HIDESBASE MESSAGE void __fastcall CMMouseLeave(Messages::TMessage &Msg);
HIDESBASE MESSAGE void __fastcall CMHintShow(Forms::TCMHintShow &Msg);
void __fastcall ObjectListChanged(System::TObject* Sender, TGraphObject* GraphObject, TGraphObjectListAction Action);
void __fastcall SelectedListChanged(System::TObject* Sender, TGraphObject* GraphObject, TGraphObjectListAction Action);
void __fastcall DraggingListChanged(System::TObject* Sender, TGraphObject* GraphObject, TGraphObjectListAction Action);
void __fastcall ObjectChanged(TGraphObject* GraphObject, TGraphChangeFlags Flags);
TGraphObject* __fastcall ReadGraphObject(Classes::TStream* Stream);
void __fastcall WriteGraphObject(Classes::TStream* Stream, TGraphObject* GraphObject);
protected:
virtual void __fastcall CreateParams(Controls::TCreateParams &Params);
virtual void __fastcall CreateWnd(void);
virtual void __fastcall Paint(void);
DYNAMIC void __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
DYNAMIC void __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y);
DYNAMIC void __fastcall MouseUp(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
DYNAMIC void __fastcall DoContextPopup(const Types::TPoint &MousePos, bool &Handled);
DYNAMIC void __fastcall Click(void);
DYNAMIC void __fastcall DblClick(void);
DYNAMIC void __fastcall DoEnter(void);
DYNAMIC void __fastcall DoExit(void);
virtual void __fastcall DoZoomChange(void);
virtual void __fastcall DoGraphChange(void);
virtual void __fastcall DoCommandModeChange(void);
virtual void __fastcall DoBeforeDraw(Graphics::TCanvas* ACanvas);
virtual void __fastcall DoAfterDraw(Graphics::TCanvas* ACanvas);
virtual void __fastcall DoObjectClick(TGraphObject* GraphObject);
virtual void __fastcall DoObjectDblClick(TGraphObject* GraphObject);
virtual void __fastcall DoObjectInitInstance(TGraphObject* GraphObject);
virtual void __fastcall DoObjectInsert(TGraphObject* GraphObject);
virtual void __fastcall DoObjectRemove(TGraphObject* GraphObject);
virtual void __fastcall DoObjectSelect(TGraphObject* GraphObject);
virtual void __fastcall DoObjectChange(TGraphObject* GraphObject);
virtual void __fastcall DoObjectMouseEnter(TGraphObject* GraphObject);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -