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

📄 cportctl.hpp

📁 TComPort 4.0 delphi中com免DLL控件
💻 HPP
📖 第 1 页 / 共 2 页
字号:
	__property OnMouseDown ;
	__property OnMouseMove ;
	__property OnMouseUp ;
	__property OnStartDrag ;
	__property OnEndDock ;
	__property OnResize ;
	__property OnStartDock ;
	__property OnContextPopup ;
};


#pragma pack(push,4)
struct TComTermChar
{
	
public:
	char Ch;
	Graphics::TColor FrontColor;
	Graphics::TColor BackColor;
	bool Underline;
} ;
#pragma pack(pop)

class DELPHICLASS TComTermBuffer;
class DELPHICLASS TCustomComTerminal;
#pragma option push -b-
enum TArrowKeys { akTerminal, akWindows };
#pragma option pop

#pragma option push -b-
enum TTermEmulation { teVT100orANSI, teVT52, teNone };
#pragma option pop

#pragma option push -b-
enum TTermCaret { tcBlock, tcUnderline, tcNone };
#pragma option pop

#pragma pack(push,4)
struct TTermAttributes
{
	
public:
	Graphics::TColor FrontColor;
	Graphics::TColor BackColor;
	bool Invert;
	bool AltIntensity;
	bool Underline;
} ;
#pragma pack(pop)

#pragma pack(push,1)
struct TTermMode
{
	
public:
	TArrowKeys Keys;
} ;
#pragma pack(pop)

typedef void __fastcall (__closure *TChScreenEvent)(System::TObject* Sender, char Ch);

typedef void __fastcall (__closure *TEscapeEvent)(System::TObject* Sender, Cportesc::TEscapeCodes* &EscapeCodes);

typedef void __fastcall (__closure *TUnhandledEvent)(System::TObject* Sender, Cportesc::TEscapeCode Code, AnsiString Data);

typedef void __fastcall (__closure *TStrRecvEvent)(System::TObject* Sender, AnsiString &Str);

#pragma option push -b-
enum TAdvanceCaret { acChar, acReturn, acLineFeed, acReverseLineFeed, acTab, acBackspace };
#pragma option pop

class PASCALIMPLEMENTATION TCustomComTerminal : public Controls::TCustomControl 
{
	typedef Controls::TCustomControl inherited;
	
private:
	Cport::TComLink* FComLink;
	Cport::TCustomComPort* FComPort;
	Forms::TFormBorderStyle FBorderStyle;
	Stdctrls::TScrollStyle FScrollBars;
	TArrowKeys FArrowKeys;
	bool FWantTab;
	int FColumns;
	int FRows;
	Graphics::TColor FAltColor;
	bool FLocalEcho;
	bool FSendLF;
	bool FAppendLF;
	bool FForce7Bit;
	bool FWrapLines;
	bool FSmoothScroll;
	int FFontHeight;
	int FFontWidth;
	TTermEmulation FEmulation;
	TTermCaret FCaret;
	Types::TPoint FCaretPos;
	Types::TPoint FSaveCaret;
	bool FCaretCreated;
	Types::TPoint FTopLeft;
	int FCaretHeight;
	TTermAttributes FSaveAttr;
	TComTermBuffer* FBuffer;
	Cportesc::TEscapeCodes* FEscapeCodes;
	TTermAttributes FTermAttr;
	TTermMode FTermMode;
	TChScreenEvent FOnChar;
	TEscapeEvent FOnGetEscapeCodes;
	TUnhandledEvent FOnUnhandledCode;
	TStrRecvEvent FOnStrRecieved;
	void __fastcall AdvanceCaret(TAdvanceCaret Kind);
	bool __fastcall CalculateMetrics(void);
	void __fastcall CreateEscapeCodes(void);
	void __fastcall CreateTerminalCaret(void);
	void __fastcall DrawChar(int AColumn, int ARow, const TComTermChar &Ch);
	TComTermChar __fastcall GetCharAttr();
	bool __fastcall GetConnected(void);
	void __fastcall HideCaret(void);
	void __fastcall InitCaret(void);
	void __fastcall InvalidatePortion(const Types::TRect &ARect);
	void __fastcall ModifyScrollBar(int ScrollBar, int ScrollCode, int Pos);
	void __fastcall SetAltColor(const Graphics::TColor Value);
	void __fastcall SetBorderStyle(const Forms::TBorderStyle Value);
	void __fastcall SetColumns(const int Value);
	void __fastcall SetComPort(const Cport::TCustomComPort* Value);
	void __fastcall SetConnected(const bool Value);
	void __fastcall SetEmulation(const TTermEmulation Value);
	void __fastcall SetRows(const int Value);
	void __fastcall SetScrollBars(const Stdctrls::TScrollStyle Value);
	void __fastcall SetCaret(const TTermCaret Value);
	void __fastcall SetAttributes(Classes::TStrings* AParams);
	void __fastcall SetMode(Classes::TStrings* AParams, bool OnOff);
	void __fastcall ShowCaret(void);
	void __fastcall StringReceived(AnsiString Str);
	void __fastcall PaintTerminal(const Types::TRect &Rect);
	void __fastcall PaintDesign(void);
	void __fastcall PutChar(char Ch);
	bool __fastcall PutEscapeCode(Cportesc::TEscapeCode ACode, Classes::TStrings* AParams);
	void __fastcall RestoreAttr(void);
	void __fastcall RestoreCaretPos(void);
	void __fastcall RxBuf(System::TObject* Sender, const char * Buffer, int Count);
	void __fastcall SaveAttr(void);
	void __fastcall SaveCaretPos(void);
	void __fastcall SendChar(char Ch);
	void __fastcall SendCode(Cportesc::TEscapeCode Code, Classes::TStrings* AParams);
	void __fastcall SendCodeNoEcho(Cportesc::TEscapeCode Code, Classes::TStrings* AParams);
	void __fastcall PerformTest(char ACh);
	void __fastcall UpdateScrollPos(void);
	void __fastcall UpdateScrollRange(void);
	
protected:
	HIDESBASE MESSAGE void __fastcall CMCtl3DChanged(Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall CMFontChanged(Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall CMColorChanged(Messages::TMessage &Message);
	MESSAGE void __fastcall WMGetDlgCode(Messages::TWMNoParams &Message);
	HIDESBASE MESSAGE void __fastcall WMHScroll(Messages::TWMScroll &Message);
	HIDESBASE MESSAGE void __fastcall WMKillFocus(Messages::TWMSetFocus &Message);
	HIDESBASE MESSAGE void __fastcall WMLButtonDown(Messages::TWMMouse &Message);
	HIDESBASE MESSAGE void __fastcall WMSetFocus(Messages::TWMSetFocus &Message);
	HIDESBASE MESSAGE void __fastcall WMSize(Messages::TWMSize &Msg);
	HIDESBASE MESSAGE void __fastcall WMVScroll(Messages::TWMScroll &Message);
	virtual bool __fastcall CanAutoSize(int &NewWidth, int &NewHeight);
	virtual void __fastcall CreateParams(Controls::TCreateParams &Params);
	DYNAMIC void __fastcall KeyDown(Word &Key, Classes::TShiftState Shift);
	DYNAMIC void __fastcall KeyPress(char &Key);
	virtual void __fastcall Loaded(void);
	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation);
	virtual void __fastcall Paint(void);
	DYNAMIC void __fastcall DoChar(char Ch);
	DYNAMIC void __fastcall DoGetEscapeCodes(Cportesc::TEscapeCodes* &EscapeCodes);
	DYNAMIC void __fastcall DoStrRecieved(AnsiString &Str);
	DYNAMIC void __fastcall DoUnhandledCode(Cportesc::TEscapeCode Code, AnsiString Data);
	
public:
	void __fastcall SetTermAttrColors(Graphics::TColor FrontColor, Graphics::TColor BackColor, bool AltIntensity, bool Invert);
	__fastcall virtual TCustomComTerminal(Classes::TComponent* AOwner);
	__fastcall virtual ~TCustomComTerminal(void);
	void __fastcall ClearScreen(void);
	void __fastcall MoveCaret(int AColumn, int ARow);
	void __fastcall Write(const char * Buffer, int Size);
	void __fastcall WriteStr(const AnsiString Str);
	void __fastcall WriteEscCode(Cportesc::TEscapeCode ACode, Classes::TStrings* AParams);
	void __fastcall LoadFromStream(Classes::TStream* Stream);
	void __fastcall SaveToStream(Classes::TStream* Stream);
	void __fastcall SelectFont(void);
	void __fastcall ShowSetupDialog(void);
	__property Types::TPoint CaretPos = {read=FCaretPos};
	__property Graphics::TColor AltColor = {read=FAltColor, write=SetAltColor, default=10921638};
	__property bool AppendLF = {read=FAppendLF, write=FAppendLF, default=0};
	__property TArrowKeys ArrowKeys = {read=FArrowKeys, write=FArrowKeys, default=0};
	__property Forms::TBorderStyle BorderStyle = {read=FBorderStyle, write=SetBorderStyle, default=1};
	__property TTermCaret Caret = {read=FCaret, write=SetCaret, default=0};
	__property bool Connected = {read=GetConnected, write=SetConnected, stored=false, nodefault};
	__property Cport::TCustomComPort* ComPort = {read=FComPort, write=SetComPort};
	__property int Columns = {read=FColumns, write=SetColumns, default=80};
	__property TTermEmulation Emulation = {read=FEmulation, write=SetEmulation, nodefault};
	__property Cportesc::TEscapeCodes* EscapeCodes = {read=FEscapeCodes};
	__property bool Force7Bit = {read=FForce7Bit, write=FForce7Bit, default=0};
	__property bool LocalEcho = {read=FLocalEcho, write=FLocalEcho, default=0};
	__property bool SendLF = {read=FSendLF, write=FSendLF, default=0};
	__property Stdctrls::TScrollStyle ScrollBars = {read=FScrollBars, write=SetScrollBars, nodefault};
	__property bool SmoothScroll = {read=FSmoothScroll, write=FSmoothScroll, default=0};
	__property int Rows = {read=FRows, write=SetRows, default=24};
	__property bool WantTab = {read=FWantTab, write=FWantTab, default=0};
	__property bool WrapLines = {read=FWrapLines, write=FWrapLines, default=0};
	__property TChScreenEvent OnChar = {read=FOnChar, write=FOnChar};
	__property TEscapeEvent OnGetEscapeCodes = {read=FOnGetEscapeCodes, write=FOnGetEscapeCodes};
	__property TStrRecvEvent OnStrRecieved = {read=FOnStrRecieved, write=FOnStrRecieved};
	__property TUnhandledEvent OnUnhandledCode = {read=FOnUnhandledCode, write=FOnUnhandledCode};
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TCustomComTerminal(HWND ParentWindow) : Controls::TCustomControl(ParentWindow) { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION TComTermBuffer : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	void *FBuffer;
	void *FTabs;
	TCustomComTerminal* FOwner;
	
public:
	__fastcall TComTermBuffer(TCustomComTerminal* AOwner);
	__fastcall virtual ~TComTermBuffer(void);
	void __fastcall Init(void);
	void __fastcall SetChar(int Column, int Row, const TComTermChar &TermChar);
	TComTermChar __fastcall GetChar(int Column, int Row);
	void __fastcall SetTab(int Column, bool Put);
	bool __fastcall GetTab(int Column);
	int __fastcall NextTab(int Column);
	void __fastcall ClearAllTabs(void);
	void __fastcall ScrollDown(void);
	void __fastcall ScrollUp(void);
	void __fastcall EraseScreen(int Column, int Row);
	void __fastcall EraseLine(int Column, int Row);
	int __fastcall GetLineLength(int Line);
	int __fastcall GetLastLine(void);
};


class DELPHICLASS TComTerminal;
class PASCALIMPLEMENTATION TComTerminal : public TCustomComTerminal 
{
	typedef TCustomComTerminal inherited;
	
__published:
	__property Align  = {default=0};
	__property AltColor  = {default=10921638};
	__property AppendLF  = {default=0};
	__property ArrowKeys  = {default=0};
	__property BorderStyle  = {default=1};
	__property Color  = {default=-16777211};
	__property Columns  = {default=80};
	__property ComPort ;
	__property Connected ;
	__property Ctl3D ;
	__property DragCursor  = {default=-12};
	__property DragMode  = {default=0};
	__property Emulation ;
	__property Enabled  = {default=1};
	__property Font ;
	__property Force7Bit  = {default=0};
	__property Hint ;
	__property ImeMode  = {default=3};
	__property ImeName ;
	__property LocalEcho  = {default=0};
	__property ParentCtl3D  = {default=1};
	__property ParentShowHint  = {default=1};
	__property PopupMenu ;
	__property Rows  = {default=24};
	__property ScrollBars ;
	__property SendLF  = {default=0};
	__property ShowHint ;
	__property SmoothScroll  = {default=0};
	__property TabOrder  = {default=-1};
	__property TabStop  = {default=1};
	__property Caret  = {default=0};
	__property Visible  = {default=1};
	__property WantTab  = {default=0};
	__property WrapLines  = {default=0};
	__property Anchors  = {default=3};
	__property AutoSize  = {default=0};
	__property Constraints ;
	__property DragKind  = {default=0};
	__property OnChar ;
	__property OnClick ;
	__property OnDblClick ;
	__property OnDragDrop ;
	__property OnDragOver ;
	__property OnEndDrag ;
	__property OnEnter ;
	__property OnExit ;
	__property OnGetEscapeCodes ;
	__property OnKeyDown ;
	__property OnKeyPress ;
	__property OnKeyUp ;
	__property OnMouseDown ;
	__property OnMouseMove ;
	__property OnMouseUp ;
	__property OnStartDrag ;
	__property OnStrRecieved ;
	__property OnUnhandledCode ;
	__property OnCanResize ;
	__property OnConstrainedResize ;
	__property OnDockDrop ;
	__property OnEndDock ;
	__property OnMouseWheel ;
	__property OnMouseWheelDown ;
	__property OnMouseWheelUp ;
	__property OnResize ;
	__property OnStartDock ;
	__property OnUnDock ;
	__property OnContextPopup ;
public:
	#pragma option push -w-inl
	/* TCustomComTerminal.Create */ inline __fastcall virtual TComTerminal(Classes::TComponent* AOwner) : TCustomComTerminal(AOwner) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TCustomComTerminal.Destroy */ inline __fastcall virtual ~TComTerminal(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TComTerminal(HWND ParentWindow) : TCustomComTerminal(ParentWindow) { }
	#pragma option pop
	
};


//-- var, const, procedure ---------------------------------------------------
static const Word RxSanityLimit = 0x400;
extern PACKAGE Graphics::TFont* ComTerminalFont;

}	/* namespace Cportctl */
using namespace Cportctl;
#pragma pack(pop)
#pragma option pop

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

⌨️ 快捷键说明

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