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

📄 simplegraph.hpp

📁 矢量绘图组件(开源版)
💻 HPP
📖 第 1 页 / 共 5 页
字号:
// Borland C++ Builder
// Copyright (c) 1995, 2002 by Borland Software Corporation
// All rights reserved

// (DO NOT EDIT: machine generated header) 'SimpleGraph.pas' rev: 6.00

#ifndef SimpleGraphHPP
#define SimpleGraphHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <Menus.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <StdCtrls.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Simplegraph
{
//-- type declarations -------------------------------------------------------
typedef DynamicArray<Types::TPoint >  TPoints;

class DELPHICLASS EGraphStreamError;
class PASCALIMPLEMENTATION EGraphStreamError : public Classes::EStreamError 
{
	typedef Classes::EStreamError inherited;
	
public:
	#pragma option push -w-inl
	/* Exception.Create */ inline __fastcall EGraphStreamError(const AnsiString Msg) : Classes::EStreamError(Msg) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall EGraphStreamError(const AnsiString Msg, const System::TVarRec * Args, const int Args_Size) : Classes::EStreamError(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall EGraphStreamError(int Ident)/* overload */ : Classes::EStreamError(Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall EGraphStreamError(int Ident, const System::TVarRec * Args, const int Args_Size)/* overload */ : Classes::EStreamError(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall EGraphStreamError(const AnsiString Msg, int AHelpContext) : Classes::EStreamError(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall EGraphStreamError(const AnsiString Msg, const System::TVarRec * Args, const int Args_Size, int AHelpContext) : Classes::EStreamError(Msg, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall EGraphStreamError(int Ident, int AHelpContext)/* overload */ : Classes::EStreamError(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall EGraphStreamError(System::PResStringRec ResStringRec, const System::TVarRec * Args, const int Args_Size, int AHelpContext)/* overload */ : Classes::EStreamError(ResStringRec, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~EGraphStreamError(void) { }
	#pragma option pop
	
};


class DELPHICLASS EGraphInvalidOperation;
class PASCALIMPLEMENTATION EGraphInvalidOperation : public Classes::EInvalidOperation 
{
	typedef Classes::EInvalidOperation inherited;
	
public:
	#pragma option push -w-inl
	/* Exception.Create */ inline __fastcall EGraphInvalidOperation(const AnsiString Msg) : Classes::EInvalidOperation(Msg) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall EGraphInvalidOperation(const AnsiString Msg, const System::TVarRec * Args, const int Args_Size) : Classes::EInvalidOperation(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall EGraphInvalidOperation(int Ident)/* overload */ : Classes::EInvalidOperation(Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall EGraphInvalidOperation(int Ident, const System::TVarRec * Args, const int Args_Size)/* overload */ : Classes::EInvalidOperation(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall EGraphInvalidOperation(const AnsiString Msg, int AHelpContext) : Classes::EInvalidOperation(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall EGraphInvalidOperation(const AnsiString Msg, const System::TVarRec * Args, const int Args_Size, int AHelpContext) : Classes::EInvalidOperation(Msg, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall EGraphInvalidOperation(int Ident, int AHelpContext)/* overload */ : Classes::EInvalidOperation(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall EGraphInvalidOperation(System::PResStringRec ResStringRec, const System::TVarRec * Args, const int Args_Size, int AHelpContext)/* overload */ : Classes::EInvalidOperation(ResStringRec, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~EGraphInvalidOperation(void) { }
	#pragma option pop
	
};


class DELPHICLASS EPointListError;
class PASCALIMPLEMENTATION EPointListError : public Classes::EListError 
{
	typedef Classes::EListError inherited;
	
public:
	#pragma option push -w-inl
	/* Exception.Create */ inline __fastcall EPointListError(const AnsiString Msg) : Classes::EListError(Msg) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall EPointListError(const AnsiString Msg, const System::TVarRec * Args, const int Args_Size) : Classes::EListError(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall EPointListError(int Ident)/* overload */ : Classes::EListError(Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall EPointListError(int Ident, const System::TVarRec * Args, const int Args_Size)/* overload */ : Classes::EListError(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall EPointListError(const AnsiString Msg, int AHelpContext) : Classes::EListError(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall EPointListError(const AnsiString Msg, const System::TVarRec * Args, const int Args_Size, int AHelpContext) : Classes::EListError(Msg, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall EPointListError(int Ident, int AHelpContext)/* overload */ : Classes::EListError(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall EPointListError(System::PResStringRec ResStringRec, const System::TVarRec * Args, const int Args_Size, int AHelpContext)/* overload */ : Classes::EListError(ResStringRec, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~EPointListError(void) { }
	#pragma option pop
	
};


class DELPHICLASS TGraphScrollBar;
class DELPHICLASS TSimpleGraph;
typedef Byte TGridSize;

typedef Shortint TMarkerSize;

typedef Word TZoom;

class DELPHICLASS TGraphObjectList;
typedef DynamicArray<TGraphObject* >  SimpleGraph__01;

class DELPHICLASS TGraphObject;
#pragma option push -b-
enum TGraphObjectListAction { glAdded, glRemoved, glReordered };
#pragma option pop

typedef void __fastcall (__closure *TGraphObjectListEvent)(System::TObject* Sender, TGraphObject* GraphObject, TGraphObjectListAction Action);

class PASCALIMPLEMENTATION TGraphObjectList : public Classes::TPersistent 
{
	typedef Classes::TPersistent inherited;
	
public:
	TGraphObject* operator[](int Index) { return Items[Index]; }
	
private:
	DynamicArray<TGraphObject* >  fItems;
	int fCount;
	int fCapacity;
	TGraphObjectListEvent fOnChange;
	int EnumIndex;
	int EnumDir;
	void __fastcall SetCapacity(int Value);
	TGraphObject* __fastcall GetItems(int Index);
	
protected:
	void __fastcall Grow(void);
	int __fastcall Replace(TGraphObject* OldItem, TGraphObject* NewItem);
	virtual void __fastcall NotifyAction(TGraphObject* Item, TGraphObjectListAction Action);
	
public:
	__fastcall virtual ~TGraphObjectList(void);
	void __fastcall Clear(void);
	virtual void __fastcall Assign(Classes::TPersistent* Source);
	int __fastcall Add(TGraphObject* Item);
	void __fastcall Insert(int Index, TGraphObject* Item);
	void __fastcall Delete(int Index);
	int __fastcall Remove(TGraphObject* Item);
	void __fastcall Move(int CurIndex, int NewIndex);
	int __fastcall IndexOf(TGraphObject* Item);
	TGraphObject* __fastcall First(void);
	TGraphObject* __fastcall Prior(void);
	TGraphObject* __fastcall Next(void);
	TGraphObject* __fastcall Last(void);
	__property int Count = {read=fCount, nodefault};
	__property int Capacity = {read=fCapacity, write=SetCapacity, nodefault};
	__property TGraphObject* Items[int Index] = {read=GetItems/*, default*/};
	__property TGraphObjectListEvent OnChange = {read=fOnChange, write=fOnChange};
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TGraphObjectList(void) : Classes::TPersistent() { }
	#pragma option pop
	
};


typedef TMetaClass*TGraphNodeClass;

typedef TMetaClass*TGraphLinkClass;

#pragma option push -b-
enum TGraphCommandMode { cmViewOnly, cmPan, cmEdit, cmInsertNode, cmInsertLink };
#pragma option pop

class DELPHICLASS TGraphConstraints;
#pragma option push -b-
enum TObjectSide { osLeft, osTop, osRight, osBottom };
#pragma option pop

typedef Set<TObjectSide, osLeft, osBottom>  TObjectSides;

class PASCALIMPLEMENTATION TGraphConstraints : public Classes::TPersistent 
{
	typedef Classes::TPersistent inherited;
	
private:
	TSimpleGraph* fOwner;
	#pragma pack(push, 1)
	Types::TRect fBoundsRect;
	#pragma pack(pop)
	
	#pragma pack(push, 1)
	Types::TRect fSourceRect;
	#pragma pack(pop)
	
	Classes::TNotifyEvent fOnChange;
	void __fastcall SetBoundsRect(const Types::TRect &Rect);
	int __fastcall GetField(int Index);
	void __fastcall SetField(int Index, int Value);
	
protected:
	DYNAMIC Classes::TPersistent* __fastcall GetOwner(void);
	virtual void __fastcall DoChange(void);
	
public:
	__fastcall TGraphConstraints(TSimpleGraph* AOwner);
	virtual void __fastcall Assign(Classes::TPersistent* Source);
	void __fastcall SetBounds(int aLeft, int aTop, int aWidth, int aHeight);
	bool __fastcall WithinBounds(const Types::TPoint * Pts, const int Pts_Size);
	bool __fastcall ConfinePt(Types::TPoint &Pt);
	bool __fastcall ConfineRect(Types::TRect &Rect);
	bool __fastcall ConfineOffset(int &dX, int &dY, TObjectSides Mobility);
	__property TSimpleGraph* Owner = {read=fOwner};
	__property Types::TRect BoundsRect = {read=fBoundsRect, write=SetBoundsRect};
	__property Types::TRect SourceRect = {read=fSourceRect, write=fSourceRect};
	__property Classes::TNotifyEvent OnChange = {read=fOnChange, write=fOnChange};
	
__published:

⌨️ 快捷键说明

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