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

📄 syntextdrawer.hpp

📁 嵌入式IDE
💻 HPP
字号:
// Borland C++ Builder
// Copyright (c) 1995, 2002 by Borland Software Corporation
// All rights reserved

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

#ifndef SynTextDrawerHPP
#define SynTextDrawerHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <Graphics.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Syntextdrawer
{
//-- type declarations -------------------------------------------------------
typedef Shortint TheStockFontPatterns;

struct TheFontData;
typedef TheFontData *PheFontData;

#pragma pack(push, 4)
struct TheFontData
{
	Graphics::TFontStyles Style;
	HFONT Handle;
	int CharAdv;
	int DBCharAdv;
	int CharHeight;
} ;
#pragma pack(pop)

typedef TheFontData TheFontsData[16];

typedef TheFontData *PheFontsData;

struct TheSharedFontsInfo;
typedef TheSharedFontsInfo *PheSharedFontsInfo;

#pragma pack(push, 4)
struct TheSharedFontsInfo
{
	int RefCount;
	int LockCount;
	Graphics::TFont* BaseFont;
	tagLOGFONTA BaseLF;
	bool IsDBCSFont;
	bool IsTrueType;
	TheFontData FontsData[16];
} ;
#pragma pack(pop)

class DELPHICLASS TheFontsInfoManager;
class PASCALIMPLEMENTATION TheFontsInfoManager : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Classes::TList* FFontsInfo;
	PheSharedFontsInfo __fastcall FindFontsInfo(const tagLOGFONTA &LF);
	PheSharedFontsInfo __fastcall CreateFontsInfo(Graphics::TFont* ABaseFont, const tagLOGFONTA &LF);
	void __fastcall DestroyFontHandles(PheSharedFontsInfo pFontsInfo);
	void __fastcall RetrieveLogFontForComparison(Graphics::TFont* ABaseFont, tagLOGFONTA &LF);
	
public:
	__fastcall TheFontsInfoManager(void);
	__fastcall virtual ~TheFontsInfoManager(void);
	void __fastcall LockFontsInfo(PheSharedFontsInfo pFontsInfo);
	void __fastcall UnLockFontsInfo(PheSharedFontsInfo pFontsInfo);
	PheSharedFontsInfo __fastcall GetFontsInfo(Graphics::TFont* ABaseFont);
	void __fastcall ReleaseFontsInfo(PheSharedFontsInfo pFontsInfo);
};


typedef void __fastcall (__closure *TheExtTextOutProc)(int X, int Y, unsigned fuOptions, const Types::TRect &ARect, char * Text, int Length);

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


class DELPHICLASS TheFontStock;
class PASCALIMPLEMENTATION TheFontStock : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	HDC FDC;
	int FDCRefCount;
	TheSharedFontsInfo *FpInfo;
	bool FUsingFontHandles;
	HFONT FCrntFont;
	Graphics::TFontStyles FCrntStyle;
	TheFontData *FpCrntFontData;
	#pragma pack(push, 1)
	tagLOGFONTA FBaseLF;
	#pragma pack(pop)
	
	Graphics::TFont* __fastcall GetBaseFont(void);
	bool __fastcall GetIsDBCSFont(void);
	bool __fastcall GetIsTrueType(void);
	
protected:
	virtual HDC __fastcall InternalGetDC(void);
	virtual void __fastcall InternalReleaseDC(HDC Value);
	virtual HFONT __fastcall InternalCreateFont(Graphics::TFontStyles Style);
	virtual int __fastcall CalcFontAdvance(HDC DC, System::PInteger pCharHeight, System::PInteger pDBCharAdvance);
	virtual int __fastcall GetCharAdvance(void);
	virtual int __fastcall GetCharHeight(void);
	virtual int __fastcall GetDBCharAdvance(void);
	virtual PheFontData __fastcall GetFontData(int idx);
	void __fastcall UseFontHandles(void);
	void __fastcall ReleaseFontsInfo(void);
	virtual void __fastcall SetBaseFont(Graphics::TFont* Value);
	virtual void __fastcall SetStyle(Graphics::TFontStyles Value);
	__property PheFontData FontData[int idx] = {read=GetFontData};
	__property PheSharedFontsInfo FontsInfo = {read=FpInfo};
	
public:
	__fastcall virtual TheFontStock(Graphics::TFont* InitialFont);
	__fastcall virtual ~TheFontStock(void);
	virtual void __fastcall ReleaseFontHandles(void);
	__property Graphics::TFont* BaseFont = {read=GetBaseFont};
	__property Graphics::TFontStyles Style = {read=FCrntStyle, write=SetStyle, nodefault};
	__property HFONT FontHandle = {read=FCrntFont, nodefault};
	__property int CharAdvance = {read=GetCharAdvance, nodefault};
	__property int CharHeight = {read=GetCharHeight, nodefault};
	__property int DBCharAdvance = {read=GetDBCharAdvance, nodefault};
	__property bool IsDBCSFont = {read=GetIsDBCSFont, nodefault};
	__property bool IsTrueType = {read=GetIsTrueType, nodefault};
};


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


class DELPHICLASS TheTextDrawer;
class PASCALIMPLEMENTATION TheTextDrawer : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	HDC FDC;
	int FSaveDC;
	TheFontStock* FFontStock;
	Graphics::TFontStyles FCalcExtentBaseStyle;
	int FBaseCharWidth;
	int FBaseCharHeight;
	HFONT FCrntFont;
	void *FETODist;
	int FETOSizeInChar;
	Graphics::TColor FColor;
	Graphics::TColor FBkColor;
	int FCharExtra;
	int FDrawingCount;
	
protected:
	virtual void __fastcall ReleaseETODist(void);
	virtual void __fastcall AfterStyleSet(void);
	virtual void __fastcall DoSetCharExtra(int Value);
	__property HDC StockDC = {read=FDC, nodefault};
	__property int DrawingCount = {read=FDrawingCount, nodefault};
	__property TheFontStock* FontStock = {read=FFontStock};
	__property int BaseCharWidth = {read=FBaseCharWidth, nodefault};
	__property int BaseCharHeight = {read=FBaseCharHeight, nodefault};
	
public:
	__fastcall virtual TheTextDrawer(Graphics::TFontStyles CalcExtentBaseStyle, Graphics::TFont* BaseFont);
	__fastcall virtual ~TheTextDrawer(void);
	virtual int __fastcall GetCharWidth(void);
	virtual int __fastcall GetCharHeight(void);
	virtual void __fastcall BeginDrawing(HDC DC);
	virtual void __fastcall EndDrawing(void);
	virtual void __fastcall TextOut(int X, int Y, char * Text, int Length);
	virtual void __fastcall ExtTextOut(int X, int Y, unsigned fuOptions, const Types::TRect &ARect, char * Text, int Length);
	virtual void __fastcall SetBaseFont(Graphics::TFont* Value);
	virtual void __fastcall SetBaseStyle(const Graphics::TFontStyles Value);
	virtual void __fastcall SetStyle(Graphics::TFontStyles Value);
	virtual void __fastcall SetForeColor(Graphics::TColor Value);
	virtual void __fastcall SetBackColor(Graphics::TColor Value);
	virtual void __fastcall SetCharExtra(int Value);
	virtual void __fastcall ReleaseTemporaryResources(void);
	__property int CharWidth = {read=GetCharWidth, nodefault};
	__property int CharHeight = {read=GetCharHeight, nodefault};
	__property Graphics::TFont* BaseFont = {write=SetBaseFont};
	__property Graphics::TFontStyles BaseStyle = {write=SetBaseStyle, nodefault};
	__property Graphics::TColor ForeColor = {write=SetForeColor, nodefault};
	__property Graphics::TColor BackColor = {write=SetBackColor, nodefault};
	__property Graphics::TFontStyles Style = {write=SetStyle, nodefault};
	__property int CharExtra = {read=FCharExtra, write=SetCharExtra, nodefault};
};


class DELPHICLASS TheTextDrawer2;
class PASCALIMPLEMENTATION TheTextDrawer2 : public TheTextDrawer 
{
	typedef TheTextDrawer inherited;
	
private:
	HFONT FFonts[16];
	
public:
	virtual void __fastcall SetStyle(Graphics::TFontStyles Value);
	virtual void __fastcall SetBaseFont(Graphics::TFont* Value);
public:
	#pragma option push -w-inl
	/* TheTextDrawer.Create */ inline __fastcall virtual TheTextDrawer2(Graphics::TFontStyles CalcExtentBaseStyle, Graphics::TFont* BaseFont) : TheTextDrawer(CalcExtentBaseStyle, BaseFont) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TheTextDrawer.Destroy */ inline __fastcall virtual ~TheTextDrawer2(void) { }
	#pragma option pop
	
};


class DELPHICLASS TheTextDrawerEx;
class PASCALIMPLEMENTATION TheTextDrawerEx : public TheTextDrawer 
{
	typedef TheTextDrawer inherited;
	
private:
	int FCrntDx;
	int FCrntDBDx;
	TheExtTextOutProc FExtTextOutProc;
	
protected:
	virtual void __fastcall AfterStyleSet(void);
	virtual void __fastcall DoSetCharExtra(int Value);
	virtual void __fastcall TextOutOrExtTextOut(int X, int Y, unsigned fuOptions, const Types::TRect &ARect, char * Text, int Length);
	virtual void __fastcall ExtTextOutFixed(int X, int Y, unsigned fuOptions, const Types::TRect &ARect, char * Text, int Length);
	virtual void __fastcall ExtTextOutWithETO(int X, int Y, unsigned fuOptions, const Types::TRect &ARect, char * Text, int Length);
	virtual void __fastcall ExtTextOutForDBCS(int X, int Y, unsigned fuOptions, const Types::TRect &ARect, char * Text, int Length);
	
public:
	virtual void __fastcall ExtTextOut(int X, int Y, unsigned fuOptions, const Types::TRect &ARect, char * Text, int Length);
public:
	#pragma option push -w-inl
	/* TheTextDrawer.Create */ inline __fastcall virtual TheTextDrawerEx(Graphics::TFontStyles CalcExtentBaseStyle, Graphics::TFont* BaseFont) : TheTextDrawer(CalcExtentBaseStyle, BaseFont) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TheTextDrawer.Destroy */ inline __fastcall virtual ~TheTextDrawerEx(void) { }
	#pragma option pop
	
};


//-- var, const, procedure ---------------------------------------------------
static const Shortint FontStyleCount = 0x4;
static const Shortint FontStyleCombineCount = 0x10;
extern PACKAGE TheFontsInfoManager* __fastcall GetFontsInfoManager(void);

}	/* namespace Syntextdrawer */
using namespace Syntextdrawer;
#pragma option pop	// -w-
#pragma option pop	// -Vx

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// SynTextDrawer

⌨️ 快捷键说明

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