Initial commit

This commit is contained in:
2026-06-13 00:05:19 +08:00
commit 754cd7ccdb
402 changed files with 123771 additions and 0 deletions
+784
View File
@@ -0,0 +1,784 @@
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "LineEdit.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
// ValidCtrCheck is used to assure that the components created do not have
// any pure virtual functions.
//
static inline void ValidCtrCheck(TLineEdit *)
{
new TLineEdit(NULL);
}
//---------------------------------------------------------------------------
__fastcall TLineEdit::TLineEdit(TComponent* Owner)
: TWinControl(Owner)
{
m_Canvas = new TControlCanvas();
m_Canvas->Control = this;
m_HintLabel = new TLabel(this);
m_HintLabel->Font->Color = TColor(0x594D43);
m_HintLabel->OnMouseDown = DoHintLabelMouseDown;
Height = 24;
Width = 124;
FBorderColor = TColor(0x5F5954);
FShadowColor = TColor(0x4C463F);
Color = TColor(0xC4B4A8);
FHintColor = TColor(0x594D43);
FMaxLength = 500;
FOnChange = NULL;
TabStop = true;
FNumberMax = -1;
FNumberMin = -1;
m_IsCreated = false;
}
//---------------------------------------------------------------------------
namespace Lineedit
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(TLineEdit)};
RegisterComponents(L"Samples", classes, 0);
}
}
//---------------------------------------------------------------------------
__fastcall TLineEdit::~TLineEdit()
{
if(m_Canvas)
{
delete m_Canvas;
m_Canvas = NULL;
}
if(m_HintLabel)
{
delete m_HintLabel;
m_HintLabel = NULL;
}
}
//---------------------------------------------------------------------------
void __fastcall TLineEdit::SetTextFont(String name, int size)
{
Font->Name = name;
Font->Size = size;
m_HintLabel->Font->Name = Font->Name;
m_HintLabel->Font->Size = Font->Size;
}
//---------------------------------------------------------------------------
void __fastcall TLineEdit::AdjustThisSize()
{
// 设置创建圆角窗口
HRGN var_Hrgn;
var_Hrgn = CreateRoundRectRgn(0, 0, Width + 1, Height + 1, 3, 3);
SetWindowRgn(Handle, var_Hrgn, true);
DeleteObject(var_Hrgn);
// 获取字体高度
m_FontHeight = CalcFontHeight();
int var_EditTop = (Height - m_FontHeight) / 2;
// 计算编辑区位置
m_TextRect = GetClientRect();
m_TextRect.Left += 4;
m_TextRect.Right -= 4;
m_TextRect.Top = var_EditTop;
// 设置HintText位置
m_HintLabel->Top = m_TextRect.Top;
m_HintLabel->Left = m_TextRect.Left;
m_HintLabel->Width = m_TextRect.Width();
// 设置编辑区左右边距
SendMessage(Handle, EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, 0);
// 设置编辑区域(多行编辑有效)
SendMessage(Handle, EM_SETRECT, 0, (LPARAM)(&m_TextRect));
}
int __fastcall TLineEdit::CalcColorValue(TColor Bg, TColor Fr, int Level, int Alpha)
{
return ((Bg * (Level - Alpha) + Fr * Alpha) / Level);
}
int __fastcall TLineEdit::CalcFontHeight()
{
// 计算字体高度
TTextMetric var_Metric;
HDC var_DC = GetDC(0);
SelectObject(var_DC, Font->Handle);
GetTextMetricsW(var_DC, &var_Metric);
ReleaseDC(0, var_DC);
return var_Metric.tmHeight;
}
void __fastcall TLineEdit::CreateShadowColor()
{
int var_R, var_G, var_B, var_Alpha;
int Level = (int)(atan(3.14 / 2) * 500);
// 计算阴影颜色
for(int var_Index = 0; var_Index < 4; var_Index++)
{
var_Alpha = (int)(atan(3.14 / (2 * 3) * var_Index) * 500);
var_R = CalcColorValue(GetRValue(FShadowColor), GetRValue(Color), Level, var_Alpha);
var_G = CalcColorValue(GetGValue(FShadowColor), GetGValue(Color), Level, var_Alpha);
var_B = CalcColorValue(GetBValue(FShadowColor), GetBValue(Color), Level, var_Alpha);
m_ShadowColorArray[var_Index] = RGB(var_R, var_G, var_B);
}
m_ShadowColorArray[4] = Color;
}
void __fastcall TLineEdit::CreateParams(TCreateParams &Params)
{
TWinControl::CreateParams(Params);
CreateSubClass(Params, L"EDIT");
DWORD var_Alignments[] = {ES_LEFT, ES_RIGHT, ES_CENTER};
DWORD var_CharCase[] = {0, ES_UPPERCASE, ES_LOWERCASE};
DWORD var_HideSelection[] = {ES_NOHIDESEL, 0};
DWORD var_NumbersOnly[] = {0, ES_NUMBER};
DWORD var_OEMConvert[] = {0, ES_OEMCONVERT};
DWORD var_PasswordChar[] = {0, ES_PASSWORD};
DWORD var_ReadOnly[] = {0, ES_READONLY};
Params.Style |= var_Alignments[FAlignment];
Params.Style |= var_CharCase[FCharCase];
Params.Style |= var_HideSelection[FHideSelection];
Params.Style |= var_NumbersOnly[FNumbersOnly];
Params.Style |= var_OEMConvert[FOEMConvert];
Params.Style |= var_PasswordChar[FPasswordChar != 0];
Params.Style |= var_ReadOnly[FReadOnly];
Params.Style |= ES_AUTOHSCROLL;
Params.Style |= ES_MULTILINE;
//Params.Style |= WS_TABSTOP;
//Params.ExStyle |= WS_EX_CONTROLPARENT;
}
void __fastcall TLineEdit::CreateWindowHandle(const TCreateParams &Params)
{
TWinControl::CreateWindowHandle(Params);
}
void __fastcall TLineEdit::CreateWnd()
{
TWinControl::CreateWnd();
m_HintLabel->Parent = this;
if(FPasswordChar != 0)
{
if(FPasswordChar == '*')
{
SendMessageW(Handle, EM_SETPASSWORDCHAR, L'', 0);
}
else
{
SendMessageW(Handle, EM_SETPASSWORDCHAR, FPasswordChar, 0);
}
}
if(FReadOnly)
{
SendMessage(WindowHandle, EM_SETREADONLY, 1, 0);
}
if(!m_IsCreated)
{
SetText(FText);
m_IsCreated = true;
}
SetMaxLength(FMaxLength);
AdjustThisSize();
}
void __fastcall TLineEdit::CMColorChanged(TMessage &Message)
{
CreateShadowColor();
Invalidate();
}
void __fastcall TLineEdit::CMFontChanged(TWMFontChange &Message)
{
TColor var_FontColor = Font->Color;
if(var_FontColor != m_FontColor) {
m_FontColor = var_FontColor; // 保存字体颜色
Invalidate();
}
else {
m_HintLabel->Font->Name = Font->Name;
m_HintLabel->Font->Size = Font->Size;
RecreateWnd();
}
}
void __fastcall TLineEdit::SetBorderColor(TColor Color)
{
if(FBorderColor != Color)
{
FBorderColor = Color;
SendMessage(Handle, CM_COLORCHANGED, 0, 0);
}
}
void __fastcall TLineEdit::SetCursorPos(int Pos)
{
//SendMessage(Handle, EM_SETSEL, Pos, Pos);
SendMessage(Handle, EM_SCROLL, SB_PAGEUP, 0);
}
void __fastcall TLineEdit::SetFocus()
{
m_HintLabel->Visible = false;
TWinControl::SetFocus();
}
void __fastcall TLineEdit::SetOnChange(TNotifyEvent OnChange)
{
FOnChange = OnChange;
}
void __fastcall TLineEdit::SetShadowColor(TColor Color)
{
if(FShadowColor != Color)
{
FShadowColor = Color;
SendMessage(Handle, CM_COLORCHANGED, 0, 0);
}
}
void __fastcall TLineEdit::ShowHintText()
{
if(Text.IsEmpty() && !Focused())
m_HintLabel->Visible = true;
else
m_HintLabel->Visible = false;
//if(Text.Length() == 0) m_HintLabel->Visible = true;
//else m_HintLabel->Visible = false;
}
void __fastcall TLineEdit::WMChar(TWMChar &Message)
{
if(Message.CharCode < 32)
{
switch(Message.CharCode)
{
case 1: // Ctrl + A
case 3: // 双击鼠标左键
SelectAll();
break;
default:
TWinControl::Dispatch(&Message);
}
}
else if(Message.CharCode == 32)
{
if(!FNumbersOnly)
TWinControl::Dispatch(&Message);
}
else
{
// 限制长度
String text = GetText();
int selStart = GetSelStart();
int selLen = GetSelLength();
text.Delete(selStart + 1, selLen);
if(text.Length() < FMaxLength)
{
if(FNumbersOnly)
{
if(Message.CharCode >= 0x30 && Message.CharCode <= 0x39)
{
if(FNumberMax != -1) {
wchar_t c = Message.CharCode;
if(!text.IsEmpty()) {
if(selStart == 0 && Message.CharCode == '0')
return;
if(StrToInt(text) == 0 && Message.CharCode == '0')
return;
}
text.Insert(String(c), selStart);
int num = StrToInt(text);
if(num <= FNumberMax) {
TWinControl::Dispatch(&Message);
}
}
else
TWinControl::Dispatch(&Message);
}
}
else
{
TWinControl::Dispatch(&Message);
}
}
else
{
//MessageBeep(MB_OK);
}
}
}
void __fastcall TLineEdit::WMCommand(TWMCommand &Message)
{
if(Message.NotifyCode == EN_CHANGE)
{
//ShowHintText();
Invalidate();
if(FOnChange) FOnChange(this);
}
}
void __fastcall TLineEdit::WMCtlColorEdit(TWMCtlColorEdit &Message)
{
if(GetTextColor(Message.ChildDC) != ColorToRGB(Font->Color))
SetTextColor(Message.ChildDC, ColorToRGB(Font->Color)); // 设置编辑文字颜色
//if(GetBkColor(Message.ChildDC) != ColorToRGB(Color))
//{
// SetBkColor(Message.ChildDC, ColorToRGB(Color)); // 设置编辑背景颜色
//}
if(GetBkMode(Message.ChildDC) != TRANSPARENT)
SetBkMode(Message.ChildDC, TRANSPARENT);
//ExcludeUpdateRgn(Message.ChildDC, Message.ChildWnd); */
}
void __fastcall TLineEdit::WMCtlColorStatic(TWMCtlColorStatic &Message)
{
SetTextColor(Message.ChildDC, ColorToRGB(Font->Color)); // 设置编辑文字颜色
if(GetBkMode(Message.ChildDC) != TRANSPARENT)
SetBkMode(Message.ChildDC, TRANSPARENT);
//SetBkColor(Message.ChildDC, ColorToRGB(Color)); // 设置编辑背景颜色
}
void __fastcall TLineEdit::WMEraseBkgnd(TWMEraseBkgnd &Message)
{
m_Canvas->Lock();
m_Canvas->Handle = Message.DC;
TRect var_Rect = GetClientRect();
// 绘制背景
m_Canvas->Brush->Color = Color;
m_Canvas->FillRect(var_Rect);
// 绘制边框
m_Canvas->Brush->Color = FBorderColor;
m_Canvas->FrameRect(var_Rect);
var_Rect.Top++;
var_Rect.Left++;
var_Rect.Right--;
var_Rect.Bottom--;
// 绘制阴影
m_Canvas->Brush->Color = TColor(m_ShadowColorArray[0]);
//m_Canvas->Brush->Color = FShadowColor;
m_Canvas->FrameRect(var_Rect);
for(int var_Layer = 1; var_Layer < 4; var_Layer++)
{
// 设置画笔颜色
m_Canvas->Pen->Color = TColor(m_ShadowColorArray[var_Layer]);
m_Canvas->MoveTo(var_Rect.Left + var_Layer, var_Rect.Bottom - 2);
m_Canvas->LineTo(var_Rect.Left + var_Layer, var_Rect.Top + var_Layer);
m_Canvas->MoveTo(var_Rect.Left + var_Layer, var_Rect.Top + var_Layer);
m_Canvas->LineTo(var_Rect.Right - 1, var_Rect.Top + var_Layer);
}
m_Canvas->UpdateTextFlags();
m_Canvas->Unlock();
}
void __fastcall TLineEdit::WMKeyDown(TWMKeyDown &Message)
{
if(Message.CharCode == VK_RETURN && !FReadOnly && Enabled)
{
MessageBeep(MB_OK);
}
TWinControl::Dispatch(&Message);
}
void __fastcall TLineEdit::WMKillFocus(TWMKillFocus &Message)
{
ShowHintText();
TWinControl::Dispatch(&Message);
if(Text.Length() < FMaxLength && !Text.IsEmpty())
{
if(FNumbersOnly && FNumberMin != -1)
{
int Value = StrToInt(Text);
if(Value < FNumberMin) {
Text = IntToStr(FNumberMin);
}
}
}
Invalidate();
}
void __fastcall TLineEdit::WMPaint(TWMPaint &Message)
{
PaintHandler(Message);
}
void __fastcall TLineEdit::WMSetFocus(TWMSetFocus &Message)
{
//ShowHintText();
m_HintLabel->Visible = false;
TWinControl::Dispatch(&Message);
}
void __fastcall TLineEdit::WMSize(TWMSize &Message)
{
// 获取当前字体高度
m_FontHeight = CalcFontHeight();
// 计算编辑框的最小高度
int var_MinHeight = m_FontHeight + 4;
int var_MinWidth = 20;
// 检查宽高的合法性
if(Height < var_MinHeight)
{
Height = var_MinHeight;
return;
}
if(Width < var_MinWidth)
{
Width = var_MinWidth;
return;
}
AdjustThisSize();
}
/******************************************************************************/
// 编辑框操作
/******************************************************************************/
void __fastcall TLineEdit::DoHintLabelMouseDown(TObject *Sender,
TMouseButton Button,
TShiftState Shift, int X, int Y)
{
SetFocus();
}
void __fastcall TLineEdit::Clear()
{
FText = "";
SetText(FText);
}
void __fastcall TLineEdit::ClearSelection()
{
SendMessage(Handle, WM_CLEAR, 0, 0);
}
void __fastcall TLineEdit::CopyToClipboard()
{
SendMessage(Handle, WM_COPY, 0, 0);
}
void __fastcall TLineEdit::CutToClipboard()
{
SendMessage(Handle, WM_CUT, 0, 0);
}
void __fastcall TLineEdit::PasteFromClipboard()
{
SendMessage(Handle, WM_PASTE, 0, 0);
}
void __fastcall TLineEdit::Undo()
{
SendMessage(Handle, WM_UNDO, 0, 0);
}
void __fastcall TLineEdit::ClearUndo()
{
SendMessage(Handle, EM_EMPTYUNDOBUFFER, 0, 0);
}
void __fastcall TLineEdit::SelectAll()
{
SendMessage(Handle, EM_SETSEL, 0, -1);
}
String __fastcall TLineEdit::GetText()
{
if(HandleAllocated())
{
SendMessageW(Handle, WM_GETTEXT, 1024, (LPARAM)m_TextBuf);
}
else
{
wcscpy( m_TextBuf, FText.c_str() );
}
return String(m_TextBuf);
}
bool __fastcall TLineEdit::GetCanUndo()
{
if(HandleAllocated())
{
return (SendMessage(Handle, EM_CANUNDO, 0, 0) != 0);
}
else
{
return false;
}
}
int __fastcall TLineEdit::GetSelLength()
{
TSelection Selection;
SendMessage(Handle, EM_GETSEL, (WPARAM)&Selection.StartPos, (LPARAM)&Selection.EndPos);
return Selection.EndPos - Selection.StartPos;
}
int __fastcall TLineEdit::GetSelStart()
{
int var_Result;
SendMessage(Handle, EM_GETSEL, (WPARAM)&var_Result, 0);
return var_Result;
}
String __fastcall TLineEdit::GetSelText()
{
int var_Start, var_Length;
var_Start = GetSelStart();
var_Length = GetSelLength();
return Text.SubString(var_Start + 1, var_Length);
}
void __fastcall TLineEdit::SetMaxLength(int Value)
{
if(Value > 500 || Value <= 0)
{
Value = 500;
}
if(FMaxLength != Value)
{
FMaxLength = Value;
}
}
void __fastcall TLineEdit::SetSelLength(int Value)
{
TSelection Selection;
SendMessage(Handle, EM_GETSEL, (WPARAM)&Selection.StartPos, (LPARAM)&Selection.EndPos);
Selection.EndPos = Selection.StartPos + Value;
SendMessage(Handle, EM_SETSEL, Selection.StartPos, Selection.EndPos);
SendMessage(Handle, EM_SCROLLCARET, 0, 0);
}
void __fastcall TLineEdit::SetSelStart(int Value)
{
SendMessage(Handle, EM_SETSEL, Value, Value);
}
void __fastcall TLineEdit::SetAlignment(TAlignment Value)
{
if(FAlignment != Value)
{
FAlignment = Value;
m_HintLabel->Alignment = Value;
if(HandleAllocated())
{
RecreateWnd();
}
}
}
void __fastcall TLineEdit::SetCharCase(TEditCharCase Value)
{
if(FCharCase != Value)
{
FCharCase = Value;
if(HandleAllocated())
{
RecreateWnd();
}
}
}
void __fastcall TLineEdit::SetHideSelection(bool Value)
{
if(FHideSelection != Value)
{
FHideSelection = Value;
if(HandleAllocated())
{
RecreateWnd();
}
}
}
void __fastcall TLineEdit::SetHintText(String Value)
{
if(FHintText != Value)
{
FHintText = Value;
m_HintLabel->Caption = Value;
}
}
void __fastcall TLineEdit::SetHintColor(TColor Value)
{
if(FHintColor != Value)
{
FHintColor = Value;
m_HintLabel->Font->Color = Value;
}
}
void __fastcall TLineEdit::SetNumbersOnly(bool Value)
{
if(FNumbersOnly != Value)
{
FNumbersOnly = Value;
if(HandleAllocated())
{
RecreateWnd();
}
}
}
void __fastcall TLineEdit::SetOEMConvert(bool Value)
{
if(FOEMConvert != Value)
{
FOEMConvert = Value;
if(HandleAllocated())
{
RecreateWnd();
}
}
}
void __fastcall TLineEdit::SetPasswordChar(WideChar Value)
{
if(FPasswordChar != Value)
{
FPasswordChar = Value;
if(HandleAllocated())
{
RecreateWnd();
}
}
}
void __fastcall TLineEdit::SetReadOnly(bool Value)
{
if(FReadOnly != Value)
{
FReadOnly = Value;
if(HandleAllocated())
{
RecreateWnd();
}
}
}
void __fastcall TLineEdit::SetText(String Value)
{
FText = Value;
if(HandleAllocated())
{
//SetWindowText(Handle, Value.c_str());
//SetWindowText(Handle, FText.c_str());
if(Value.IsEmpty())
{
m_HintLabel->SetDesignVisible(true);
m_HintLabel->Visible = true;
}
else
{
m_HintLabel->SetDesignVisible(false);
m_HintLabel->Visible = false;
}
SendMessageW(Handle, WM_SETTEXT, 0, (LPARAM)Value.c_str());
if(FOnChange) FOnChange(this);
}
}
void __fastcall TLineEdit::SetNumberMax(int Value)
{
if(FNumberMax != Value) {
FNumberMax = Value;
}
}
void __fastcall TLineEdit::SetNumberMin(int Value)
{
if(FNumberMin != Value) {
if(Value > FNumberMax) {
Value = FNumberMax;
}
FNumberMin = Value;
}
}
/******************************************************************************/
+186
View File
@@ -0,0 +1,186 @@
//---------------------------------------------------------------------------
#ifndef LineEditH
#define LineEditH
//---------------------------------------------------------------------------
#include <vcl.h>
//---------------------------------------------------------------------------
class PACKAGE TLineEdit : public TWinControl
{
private:
TEditCharCase FCharCase;
TColor FBorderColor, // 边框颜色
FShadowColor; // 阴影颜色
TAlignment FAlignment;
WideChar FPasswordChar;
String FText;
String FHintText;
TColor FHintColor;
bool FHideSelection,
FNumbersOnly,
FOEMConvert,
FReadOnly;
int FMaxLength,
FNumberMax,
FNumberMin;
TNotifyEvent FOnChange;
TControlCanvas *m_Canvas;
int m_ShadowColorArray[4]; // 阴影颜色数组
int m_FontHeight; // 备份字体高度
bool m_IsCreated;
TLabel *m_HintLabel;
TColor m_FontColor; // 备份字体颜色
TRect m_TextRect;
WCHAR m_TextBuf[512];
void __fastcall AdjustThisSize();
int __fastcall CalcColorValue(TColor BgColor, TColor FrColor, int Level, int Alpha);
int __fastcall CalcFontHeight();
void __fastcall CreateShadowColor(); // 创建阴影颜色
void __fastcall SetBorderColor(TColor Color);
void __fastcall SetOnChange(TNotifyEvent OnChange);
void __fastcall SetShadowColor(TColor Color);
void __fastcall ShowHintText();
/******************************************************************************/
// 编辑框操作
/******************************************************************************/
void __fastcall DoHintLabelMouseDown(TObject *Sender,
TMouseButton Button,
TShiftState Shift, int X, int Y);
UnicodeString __fastcall GetText();
bool __fastcall GetCanUndo();
int __fastcall GetSelLength();
int __fastcall GetSelStart();
String __fastcall GetSelText();
void __fastcall SetAlignment(TAlignment Value);
void __fastcall SetCharCase(TEditCharCase Value);
void __fastcall SetHideSelection(bool Value);
void __fastcall SetHintText(String Value);
void __fastcall SetHintColor(TColor Value);
void __fastcall SetNumbersOnly(bool Value);
void __fastcall SetOEMConvert(bool Value);
void __fastcall SetPasswordChar(WideChar Value);
void __fastcall SetReadOnly(bool Value);
void __fastcall SetText(UnicodeString Value);
void __fastcall SetMaxLength(int Value);
void __fastcall SetSelLength(int Value);
void __fastcall SetSelStart(int Value);
void __fastcall SetNumberMax(int Value);
void __fastcall SetNumberMin(int Value);
/******************************************************************************/
MESSAGE void __fastcall CMColorChanged(TMessage &Message);
MESSAGE void __fastcall CMFontChanged(TWMFontChange &Message);
MESSAGE void __fastcall WMChar(TWMChar &Message);
MESSAGE void __fastcall WMCommand(TWMCommand &Message);
MESSAGE void __fastcall WMCtlColorEdit(TWMCtlColorEdit &Message);
MESSAGE void __fastcall WMCtlColorStatic(TWMCtlColorStatic &Message);
MESSAGE void __fastcall WMEraseBkgnd(TWMEraseBkgnd &Message);
MESSAGE void __fastcall WMKeyDown(TWMKeyDown &Message);
MESSAGE void __fastcall WMKillFocus(TWMKillFocus &Message);
MESSAGE void __fastcall WMPaint(TWMPaint &Message);
MESSAGE void __fastcall WMSetFocus(TWMSetFocus &Message);
MESSAGE void __fastcall WMSize(TWMSize &Message);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(CM_COLORCHANGED, TMessage, CMColorChanged)
MESSAGE_HANDLER(CM_FONTCHANGED, TWMFontChange, CMFontChanged)
MESSAGE_HANDLER(CN_COMMAND, TWMCommand, WMCommand)
MESSAGE_HANDLER(CN_CTLCOLOREDIT, TWMCtlColorEdit, WMCtlColorEdit)
MESSAGE_HANDLER(CN_CTLCOLORSTATIC, TWMCtlColorStatic, WMCtlColorStatic)
MESSAGE_HANDLER(WM_CHAR, TWMChar, WMChar)
MESSAGE_HANDLER(WM_ERASEBKGND, TWMEraseBkgnd, WMEraseBkgnd)
MESSAGE_HANDLER(WM_KEYDOWN, TWMKeyDown, WMKeyDown)
MESSAGE_HANDLER(WM_KILLFOCUS, TWMKillFocus, WMKillFocus)
MESSAGE_HANDLER(WM_PAINT, TWMPaint, WMPaint)
MESSAGE_HANDLER(WM_SETFOCUS, TWMSetFocus, WMSetFocus)
MESSAGE_HANDLER(WM_SIZE, TWMSize, WMSize)
END_MESSAGE_MAP(TWinControl)
__property Hint;
protected:
virtual void __fastcall CreateParams(TCreateParams &Params);
virtual void __fastcall CreateWindowHandle(const TCreateParams &Params);
virtual void __fastcall CreateWnd();
public:
__fastcall TLineEdit(TComponent* Owner);
__fastcall ~TLineEdit();
void __fastcall SetFocus();
void __fastcall SetCursorPos(int Pos);
void __fastcall SetTextFont(String name, int size);
/******************************************************************************/
// 编辑框操作
/******************************************************************************/
void __fastcall Clear();
void __fastcall ClearSelection();
void __fastcall CopyToClipboard();
void __fastcall CutToClipboard();
void __fastcall PasteFromClipboard();
void __fastcall Undo();
void __fastcall ClearUndo();
void __fastcall SelectAll();
__property bool CanUndo = {read = GetCanUndo, nodefault};
__property int SelLength = {read = GetSelLength, write = SetSelLength, nodefault};
__property int SelStart = {read = GetSelStart, write = SetSelStart, nodefault};
__property String SelText = {read = GetSelText};
__property AlignWithMargins = {default = false};
__property HelpContext;
__property HelpKeyword;
__property HelpType;
__property Margins;
__property Cursor;
/******************************************************************************/
__published:
__property TColor BorderColor = {read = FBorderColor, write = SetBorderColor, default = TColor(0x5F5954)};
__property TColor ShadowColor = {read = FShadowColor, write = SetShadowColor, default = TColor(0x4C463F)};
__property TNotifyEvent OnChange = {read = FOnChange, write = SetOnChange};
__property TAlignment Alignment = {read = FAlignment, write = SetAlignment};
__property TEditCharCase CharCase = {read = FCharCase, write = SetCharCase};
__property bool HideSelection = {read = FHideSelection, write = SetHideSelection};
__property String HintText = {read = FHintText, write = SetHintText};
__property TColor HintColor = {read = FHintColor, write = SetHintColor, default = TColor(0x594D43)};
__property int MaxLength = {read = FMaxLength, write = SetMaxLength, default = 500};
__property bool NumbersOnly = {read = FNumbersOnly, write = SetNumbersOnly};
__property bool OEMConvert = {read = FOEMConvert, write = SetOEMConvert};
__property WideChar PasswordChar = {read = FPasswordChar, write = SetPasswordChar};
__property bool ReadOnly = {read = FReadOnly, write = SetReadOnly};
__property int NumberMax = {read = FNumberMax, write = SetNumberMax};
__property int NumberMin = {read = FNumberMin, write = SetNumberMin};
__property UnicodeString Text = {read = GetText, write = SetText};
__property Color = {default = TColor(0xC4B4A8)};
__property Font;
__property TabOrder = {default = -1};
__property TabStop = {default = true};
__property OnKeyDown;
__property OnKeyPress;
__property OnKeyUp;
};
//---------------------------------------------------------------------------
#endif
+17
View File
@@ -0,0 +1,17 @@
//---------------------------------------------------------------------------
#include <System.hpp>
#pragma hdrstop
#pragma package(smart_init)
//---------------------------------------------------------------------------
// Package source.
//---------------------------------------------------------------------------
#pragma argsused
extern "C" int _libmain(unsigned long reason)
{
return 1;
}
//---------------------------------------------------------------------------