flexprops.hpp

来自「FlexGraphics是一套创建矢量图形的VCL组件」· HPP 代码 · 共 966 行 · 第 1/3 页

HPP
966
字号

class DELPHICLASS TStrProp;
class PASCALIMPLEMENTATION TStrProp : public TCustomProp
{
	typedef TCustomProp inherited;
	
protected:
	System::UnicodeString FValue;
	TGetStringEvent FOnGetString;
	virtual System::UnicodeString __fastcall GetDisplayValue();
	virtual void __fastcall SetValue(const System::UnicodeString Value);
	virtual System::UnicodeString __fastcall GetValue();
	virtual void __fastcall SetPropValue(const System::UnicodeString PropName, const System::Variant &Value);
	virtual System::Variant __fastcall GetPropValue(const System::UnicodeString PropName);
	
public:
	__fastcall TStrProp(TPropList* AOwner, const System::UnicodeString AName);
	__property System::UnicodeString Value = {read=GetValue, write=SetValue};
	__property System::UnicodeString SavedValue = {read=FValue, write=FValue};
	__property TGetStringEvent OnGetString = {read=FOnGetString, write=FOnGetString};
public:
	/* TCustomProp.Destroy */ inline __fastcall virtual ~TStrProp(void) { }
	
};


class DELPHICLASS TStrListProp;
class PASCALIMPLEMENTATION TStrListProp : public TCustomProp
{
	typedef TCustomProp inherited;
	
public:
	System::UnicodeString operator[](int Index) { return Lines[Index]; }
	
private:
	Classes::TStringList* FStrList;
	void __fastcall SetText(const Controls::TCaption Value);
	System::UnicodeString __fastcall GetLine(int Index);
	int __fastcall GetLinesCount(void);
	Controls::TCaption __fastcall GetText();
	void __fastcall SetLine(int Index, const System::UnicodeString Value);
	HIDESBASE System::UnicodeString __fastcall GetName(int Index);
	System::UnicodeString __fastcall GetValue(const System::UnicodeString Name);
	System::UnicodeString __fastcall GetValueByIndex(int Index);
	void __fastcall SetValue(const System::UnicodeString Name, const System::UnicodeString Value);
	void __fastcall SetValueByIndex(int Index, const System::UnicodeString Value);
	void __fastcall SetName(int Index, const System::UnicodeString Value);
	
protected:
	virtual System::UnicodeString __fastcall GetDisplayValue();
	virtual void __fastcall SetPropValue(const System::UnicodeString PropName, const System::Variant &Value);
	virtual System::Variant __fastcall GetPropValue(const System::UnicodeString PropName);
	
public:
	__fastcall TStrListProp(TPropList* AOwner, const System::UnicodeString AName);
	__fastcall virtual ~TStrListProp(void);
	HIDESBASE void __fastcall Assign(Classes::TStrings* Source);
	void __fastcall AssignTo(Classes::TStrings* Dest);
	void __fastcall Clear(void);
	int __fastcall Add(const System::UnicodeString s);
	bool __fastcall Insert(int Index, const System::UnicodeString S);
	void __fastcall Delete(int Index);
	void __fastcall RemoveByName(const System::UnicodeString Name);
	int __fastcall IndexOf(const System::UnicodeString s);
	int __fastcall IndexOfName(const System::UnicodeString s);
	__property int LinesCount = {read=GetLinesCount, nodefault};
	__property System::UnicodeString Lines[int Index] = {read=GetLine, write=SetLine/*, default*/};
	__property System::UnicodeString Names[int Index] = {read=GetName, write=SetName};
	__property System::UnicodeString Values[const System::UnicodeString Name] = {read=GetValue, write=SetValue};
	__property System::UnicodeString ValuesByIndex[int Index] = {read=GetValueByIndex, write=SetValueByIndex};
	__property Controls::TCaption Text = {read=GetText, write=SetText};
};


class DELPHICLASS TUserDataProp;
class PASCALIMPLEMENTATION TUserDataProp : public TStrListProp
{
	typedef TStrListProp inherited;
	
public:
	/* TStrListProp.Create */ inline __fastcall TUserDataProp(TPropList* AOwner, const System::UnicodeString AName) : TStrListProp(AOwner, AName) { }
	/* TStrListProp.Destroy */ inline __fastcall virtual ~TUserDataProp(void) { }
	
};


typedef void __fastcall (__closure *TPropDataEvent)(System::TObject* Sender, System::Variant &Value);

class DELPHICLASS TDataProp;
class PASCALIMPLEMENTATION TDataProp : public TCustomProp
{
	typedef TCustomProp inherited;
	
private:
	TPropDataEvent FOnGetPropData;
	TPropDataEvent FOnSetPropData;
	
protected:
	virtual System::UnicodeString __fastcall GetDisplayValue();
	virtual void __fastcall SetPropValue(const System::UnicodeString PropName, const System::Variant &Value);
	virtual System::Variant __fastcall GetPropValue(const System::UnicodeString PropName);
	
public:
	__fastcall TDataProp(TPropList* AOwner, const System::UnicodeString AName);
	__property TPropDataEvent OnGetPropData = {read=FOnGetPropData, write=FOnGetPropData};
	__property TPropDataEvent OnSetPropData = {read=FOnSetPropData, write=FOnSetPropData};
public:
	/* TCustomProp.Destroy */ inline __fastcall virtual ~TDataProp(void) { }
	
};


#pragma option push -b-
enum TBrushMethod { bmHatch, bmGradient, bmBitmap };
#pragma option pop

class DELPHICLASS TBrushProp;
class PASCALIMPLEMENTATION TBrushProp : public TCustomProp
{
	typedef TCustomProp inherited;
	
private:
	Graphics::TBrush* FBrush;
	TBrushMethod FMethod;
	Flexutils::TGradientStyle FGradStyle;
	Graphics::TColor FGradBeginColor;
	Graphics::TColor FGradEndColor;
	Graphics::TBitmap* FBitmap;
	Flexutils::TTiledBitmapCache FCache;
	System::UnicodeString FBitmapLinkName;
	bool FBitmapMasked;
	Graphics::TColor FBitmapMaskColor;
	bool FBitmapCache;
	Flexutils::TBitmapDisplay FBitmapDisplay;
	Graphics::TColor __fastcall GetColor(void);
	Graphics::TBrushStyle __fastcall GetStyle(void);
	void __fastcall SetColor(const Graphics::TColor Value);
	HIDESBASE void __fastcall SetStyle(const Graphics::TBrushStyle Value);
	void __fastcall SetGradBeginColor(const Graphics::TColor Value);
	void __fastcall SetGradEndColor(const Graphics::TColor Value);
	void __fastcall SetGradStyle(const Flexutils::TGradientStyle Value);
	bool __fastcall GetIsPaintAlternate(void);
	void __fastcall SetBitmap(const Graphics::TBitmap* Value);
	void __fastcall SetBitmapMaskColor(const Graphics::TColor Value);
	void __fastcall SetBitmapMasked(const bool Value);
	void __fastcall SetBitmapCache(const bool Value);
	void __fastcall SetBitmapDisplay(const Flexutils::TBitmapDisplay Value);
	void __fastcall SetBitmapLinkName(const System::UnicodeString Value);
	void __fastcall SetMethod(const TBrushMethod Value);
	bool __fastcall GetIsClear(void);
	bool __fastcall StoreBitmap(void);
	bool __fastcall StoreBitmapLinkName(void);
	
protected:
	virtual TPropType __fastcall GetPropType(const System::UnicodeString PropName);
	virtual System::Variant __fastcall GetPropValue(const System::UnicodeString PropName);
	virtual void __fastcall SetPropValue(const System::UnicodeString PropName, const System::Variant &Value);
	virtual System::UnicodeString __fastcall GetDisplayValue();
	virtual void __fastcall BitmapChange(System::TObject* Sender);
	void __fastcall ResetCache(void);
	
public:
	__fastcall TBrushProp(TPropList* AOwner, const System::UnicodeString AName);
	__fastcall virtual ~TBrushProp(void);
	void __fastcall InitBitmap(int Width = 0x0, int Height = 0x0);
	void __fastcall FreeBitmap(void);
	bool __fastcall UpdateBitmapLink(void);
	virtual void __fastcall Setup(Graphics::TCanvas* Canvas, int Scale = 0x64);
	virtual void __fastcall Translate(const Flexutils::TTranslateInfo &TranslateInfo);
	void __fastcall PaintAlternate(Graphics::TCanvas* Canvas, Types::TRect &PaintRect, const Types::TRect &RefreshRect, int Scale = 0x64, bool ClipTransparent = false);
	__property bool IsPaintAlternate = {read=GetIsPaintAlternate, nodefault};
	__property bool IsClear = {read=GetIsClear, nodefault};
	
__published:
	__property TBrushMethod Method = {read=FMethod, write=SetMethod, default=0};
	__property Graphics::TColor Color = {read=GetColor, write=SetColor, default=536870911};
	__property Graphics::TBrushStyle Style = {read=GetStyle, write=SetStyle, default=0};
	__property Graphics::TBitmap* Bitmap = {read=FBitmap, write=SetBitmap, stored=StoreBitmap};
	__property System::UnicodeString BitmapLinkName = {read=FBitmapLinkName, write=SetBitmapLinkName, stored=StoreBitmapLinkName};
	__property bool BitmapMasked = {read=FBitmapMasked, write=SetBitmapMasked, default=0};
	__property Graphics::TColor BitmapMaskColor = {read=FBitmapMaskColor, write=SetBitmapMaskColor, default=0};
	__property bool BitmapCache = {read=FBitmapCache, write=SetBitmapCache, default=0};
	__property Flexutils::TBitmapDisplay BitmapDisplay = {read=FBitmapDisplay, write=SetBitmapDisplay, default=1};
	__property Flexutils::TGradientStyle GradStyle = {read=FGradStyle, write=SetGradStyle, default=0};
	__property Graphics::TColor GradBeginColor = {read=FGradBeginColor, write=SetGradBeginColor, default=0};
	__property Graphics::TColor GradEndColor = {read=FGradEndColor, write=SetGradEndColor, default=0};
};


class DELPHICLASS TLineCapProp;
class PASCALIMPLEMENTATION TLineCapProp : public TCustomProp
{
	typedef TCustomProp inherited;
	
private:
	int FCapStyle;
	bool FFixedSize;
	int FSize;
	bool FFixedOutlineColor;
	Graphics::TColor FOutlineColor;
	bool FFixedFillColor;
	Graphics::TColor FFillColor;
	void __fastcall SetCapStyle(const int Value);
	void __fastcall SetFillColor(const Graphics::TColor Value);
	void __fastcall SetFixedFillColor(const bool Value);
	void __fastcall SetFixedOutlineColor(const bool Value);
	void __fastcall SetFixedSize(const bool Value);
	void __fastcall SetOutlineColor(const Graphics::TColor Value);
	void __fastcall SetSize(const int Value);
	
protected:
	virtual System::UnicodeString __fastcall GetDisplayValue();
	
public:
	__fastcall TLineCapProp(TPropList* AOwner, const System::UnicodeString AName);
	__fastcall virtual ~TLineCapProp(void);
	int __fastcall GetActiveSize(int PenWidth, int PixelSize = 0x3e8);
	
__published:
	__property int CapStyle = {read=FCapStyle, write=SetCapStyle, default=0};
	__property bool FixedSize = {read=FFixedSize, write=SetFixedSize, default=0};
	__property int Size = {read=FSize, write=SetSize, default=8000};
	__property bool FixedOutlineColor = {read=FFixedOutlineColor, write=SetFixedOutlineColor, default=0};
	__property Graphics::TColor OutlineColor = {read=FOutlineColor, write=SetOutlineColor, default=0};
	__property bool FixedFillColor = {read=FFixedFillColor, write=SetFixedFillColor, default=0};
	__property Graphics::TColor FillColor = {read=FFillColor, write=SetFillColor, default=16777215};
};


#pragma option push -b-
enum TPenEndCap { pecFlat, pecSquare, pecRound };
#pragma option pop

#pragma option push -b-
enum TPenJoin { pjBevel, pjMiter, pjRound };
#pragma option pop

class DELPHICLASS TPenProp;
class PASCALIMPLEMENTATION TPenProp : public TCustomProp
{
	typedef TCustomProp inherited;
	
private:
	int __fastcall GetActiveWidth(void);
	void __fastcall SetColor(const Graphics::TColor Value);
	HIDESBASE void __fastcall SetStyle(const Graphics::TPenStyle Value);
	void __fastcall SetWidth(const int Value);
	void __fastcall SetMode(const Graphics::TPenMode Value);
	void __fastcall SetEndCap(const TPenEndCap Value);
	void __fastcall SetJoin(const TPenJoin Value);
	void __fastcall SetSolidAsInside(const bool Value);
	
protected:
	Graphics::TPenStyle FStyle;
	Graphics::TColor FColor;
	Graphics::TPenMode FMode;
	int FWidth;
	TPenEndCap FEndCap;
	TPenJoin FJoin;
	bool FSolidAsInside;
	virtual System::UnicodeString __fastcall GetDisplayValue();
	
public:
	__fastcall TPenProp(TPropList* AOwner, const System::UnicodeString AName);
	virtual void __fastcall Setup(Graphics::TCanvas* Canvas, int Scale = 0x64);
	void __fastcall GetPaintData(int &AWidth, Graphics::TPenStyle &AStyle, bool &IsGeometricPen, int Scale = 0x64);
	__property int ActiveWidth = {read=GetActiveWidth, nodefault};
	
__published:
	__property Graphics::TColor Color = {read=FColor, write=SetColor, default=0};
	__property Graphics::TPenStyle Style = {read=FStyle, write=SetStyle, default=0};
	__property Graphics::TPenMode Mode = {read=FMode, write=SetMode, default=4};
	__property int Width = {read=FWidth, write=SetWidth, default=1000};
	__property TPenEndCap EndCap = {read=FEndCap, write=SetEndCap, default=2};
	__property TPenJoin Join = {read=FJoin, write=SetJoin, default=2};
	__property bool SolidAsInside = {read=FSolidAsInside, write=SetSolidAsInside, default=1};
public:
	/* TCustomProp.Destroy */ inline __fastcall virtual ~TPenProp(void) { }
	
};


class DELPHICLASS TFontProp;
class PASCALIMPLEMENTATION TFontProp : public TCustomProp
{
	typedef TCustomProp inherited;
	
private:
	Graphics::TFont* FFont;
	int FFontHeight;
	Graphics::TFontCharset __fastcall GetCharset(void);
	HFONT __fastcall GetHandle(void);
	int __fastcall GetSize(void);
	HIDESBASE Graphics::TFontName __fastcall GetName();
	Graphics::TFontPitch __fastcall GetPitch(void);
	Graphics::TFontStyles __fastcall GetStyle(void);
	Graphics::TColor __fastcall GetColor(void);
	int __fastcall GetPixelsPerInch(void);
	void __fastcall SetCharset(const Graphics::TFontCharset Value);
	void __fastcall SetColor(const Graphics::TColor Value);
	void __fastcall SetHandle(const HFONT Value);
	void __fastcall SetHeight(const int Value);
	void __fastcall SetName(const Graphics::TFontName Value);
	void __fastcall SetPitch(const Graphics::TFontPitch Value);
	void __fastcall SetSize(const int Value);
	HIDESBASE void __fastcall SetStyle(const Graphics::TFontStyles Value);
	void __fastcall SetPixelsPerInch(const int Value);
	
protected:
	virtual System::UnicodeString __fastcall GetDisplayValue();
	
public:
	__fastcall TFontProp(TPropList* AOwner, const System::UnicodeString AName);
	__fastcall virtual ~TFontProp(void);
	virtual void __fastcall Setup(Graphics::TCanvas* Canvas, int Scale = 0x64);
	virtual bool __fastcall Edit(void);
	void __fastcall GetFont(Graphics::TFont* &AFont);
	void __fastcall SetFont(const Graphics::TFont* AFont);
	__property HFONT Handle = {read=GetHandle, write=SetHandle, nodefault};
	
__published:
	__property int PixelsPerInch = {read=GetPixelsPerInch, write=SetPixelsPerInch, stored=false, nodefault};

⌨️ 快捷键说明

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