📄 ieditorbasiccomponents.pas
字号:
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Click; override;
procedure Disable;
procedure Enable;
property Font : TFont read FFont write SetFont;
published
property OnChange : TNotifyEvent read FOnChange write FOnChange;
end;
//****************************************************************************
TiComponentEditorOpenPicker = class(TiComponentEditorButton)
private
FFileName : String;
FFilter : String;
FDefaultExt : String;
FFileMustExist : Boolean;
FAllowMultiSelect : Boolean;
FOnChange : TNotifyEvent;
FFiles: TStrings;
protected
{$IFDEF iVCL}procedure OpenVCL;{$endif}
{$IFDEF iCLX}procedure OpenCLX;{$endif}
procedure KeyPress(var Key: Char); override;
procedure DoEnter; override;
{$IFDEF iVCL}procedure WMGetDLGCode(var Message: TMessage); message WM_GETDLGCODE;{$endif}
{$IFDEF iVCL}procedure CreateParams(var Params: TCreateParams); override; {$endif}
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Click; override;
procedure Disable;
procedure Enable;
property Files : TStrings read FFiles;
published
property FileName : String read FFileName write FFileName;
property Filter : String read FFilter write FFilter;
property DefaultExt : String read FDefaultExt write FDefaultExt;
property FileMustExist : Boolean read FFileMustExist write FFileMustExist;
property AllowMultiSelect : Boolean read FAllowMultiSelect write FAllowMultiSelect;
property OnChange : TNotifyEvent read FOnChange write FOnChange;
property Caption;
property Font;
property TabOrder;
property TabStop default True;
end;
//****************************************************************************
TiComponentEditorSavePicker = class(TiComponentEditorButton)
private
FFileName : String;
FFilter : String;
FDefaultExt : String;
FOnChange : TNotifyEvent;
protected
{$IFDEF iVCL}function OpenVCL: Boolean;{$endif}
{$IFDEF iCLX}function OpenCLX: Boolean;{$endif}
procedure KeyPress(var Key: Char); override;
procedure DoEnter; override;
{$IFDEF iVCL}procedure WMGetDLGCode(var Message: TMessage); message WM_GETDLGCODE;{$endif}
{$IFDEF iVCL}procedure CreateParams(var Params: TCreateParams); override; {$endif}
public
constructor Create(AOwner: TComponent); override;
procedure Click; override;
procedure Disable;
procedure Enable;
function Execute: Boolean;
published
property FileName : String read FFileName write FFileName;
property Filter : String read FFilter write FFilter;
property DefaultExt : String read FDefaultExt write FDefaultExt;
property OnChange : TNotifyEvent read FOnChange write FOnChange;
property Caption;
property Font;
property TabOrder;
property TabStop default True;
end;
//****************************************************************************
TiComponentEditorValueConverterPicker = class(TiComponentEditorButton)
private
FDateTime : Double;
FOnChange : TNotifyEvent;
FAssociate : TiComponentEditorEdit;
FDefaultPage : TiValueConverterPageType;
FTranslationMethod : TFormTranslationMethod;
protected
procedure KeyPress(var Key: Char); override;
procedure DoEnter; override;
{$IFDEF iVCL}procedure WMGetDLGCode(var Message: TMessage); message WM_GETDLGCODE;{$endif}
{$IFDEF iVCL}procedure CreateParams(var Params: TCreateParams); override; {$endif}
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure SetAssociate(const Value: TiComponentEditorEdit);
public
constructor Create(AOwner: TComponent); override;
procedure Click; override;
procedure Disable;
procedure Enable;
published
property Associate : TiComponentEditorEdit read FAssociate write SetAssociate;
property DateTime : Double read FDateTime write FDateTime;
property OnChange : TNotifyEvent read FOnChange write FOnChange;
property Caption;
property Font;
property TabOrder;
property TabStop default True;
property DefaultPage : TiValueConverterPageType read FDefaultPage write FDefaultPage;
property TranslationMethod : TFormTranslationMethod read FTranslationMethod write FTranslationMethod;
end;
//****************************************************************************
TiComponentEditorPanel = class(TPanel)
protected
{$IFDEF iVCL}procedure CreateParams(var Params: TCreateParams); override;{$endif}
end;
//****************************************************************************
TiComponentEditorGroupBox = class(TGroupBox)
protected
{$IFDEF iVCL}procedure CreateParams(var Params: TCreateParams); override;{$endif}
end;
//****************************************************************************
TiPaintBox = class(TCustomControl)
private
FOnPaint : TNotifyEvent;
protected
procedure Paint; override;
public
constructor Create(AOwner: TComponent); override;
published
property OnPaint: TNotifyEvent read FOnPaint write FOnPaint;
property Canvas;
property Align;
end;
//****************************************************************************
implementation
{$IFDEF iVCL} uses iValueConverterEdit, iOPCComputerSelector;{$ENDIF}
{$IFDEF iCLX} uses QiValueConverterEdit, QiOPCComputerSelector;{$ENDIF}
type
TWinControlAccess = class(TWinControl)end;
//****************************************************************************************************************************************************
procedure TiCustomEditorForm.UserChange;
begin
end;
//***********************************************************************************************************************************
constructor TiComponentEditorEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF iVCL}
Ctl3D := True;
{$ENDIF}
Height := 21;
FOriginalText := '';
end;
//***********************************************************************************************************************************
procedure TiComponentEditorEdit.Disable;
var
TempOnChange : TNotifyEvent;
begin
TempOnChange := OnChange;
OnChange := nil;
FBlockingEvents := True;
try
Enabled := False;
Text := '';
FOriginalText := '';
Color := clBtnFace;
finally
FBlockingEvents := False;
OnChange := TempOnChange;
end;
end;
//***********************************************************************************************************************************
procedure TiComponentEditorEdit.DisableNoClear;
var
TempOnChange : TNotifyEvent;
begin
TempOnChange := OnChange;
OnChange := nil;
FBlockingEvents := True;
try
Enabled := False;
Color := clBtnFace;
finally
FBlockingEvents := False;
OnChange := TempOnChange;
end;
end;
//***********************************************************************************************************************************
procedure TiComponentEditorEdit.Enable;
begin
Enabled := True;
Color := clWindow;
end;
//***********************************************************************************************************************************
function TiComponentEditorEdit.GetAsInteger: Integer;
begin
try
if Trim(Text) = '' then Result := 0 else Result := StrToInt(Trim(Text));
except
on Exception do Result := 0;
end;
end;
//***********************************************************************************************************************************
function TiComponentEditorEdit.GetAsString: String;
begin
Result := Text;
end;
//***********************************************************************************************************************************
function TiComponentEditorEdit.GetAsFloat: Double;
begin
try
if Trim(Text) = '' then Result := 0 else Result := StrToFloat(Trim(Text));
except
on Exception do Result := 0;
end;
end;
//***********************************************************************************************************************************
function TiComponentEditorEdit.GetAsDateTime: Double;
begin
Result := StrToDateTime(Trim(Text));
end;
//***********************************************************************************************************************************
procedure TiComponentEditorEdit.SetAsFloat(const Value: Double);
var
TempOnChange : TNotifyEvent;
begin
TempOnChange := OnChange;
OnChange := nil;
FBlockingEvents := True;
try
Text := FloatToStr(Value);
FOriginalText := FloatToStr(Value);
finally
FBlockingEvents := False;
OnChange := TempOnChange;
end;
end;
//***********************************************************************************************************************************
procedure TiComponentEditorEdit.SetAsInteger(const Value: Integer);
var
TempOnChange : TNotifyEvent;
begin
TempOnChange := OnChange;
OnChange := nil;
FBlockingEvents := True;
try
Text := IntToStr(Value);
FOriginalText := IntToStr(Value);
finally
FBlockingEvents := False;
OnChange := TempOnChange;
end;
end;
//***********************************************************************************************************************************
procedure TiComponentEditorEdit.SetAsString(const Value: String);
var
TempOnChange : TNotifyEvent;
begin
TempOnChange := OnChange;
OnChange := nil;
FBlockingEvents := True;
try
Text := Value;
FOriginalText := Value;
finally
FBlockingEvents := False;
OnChange := TempOnChange;
end;
end;
//***********************************************************************************************************************************
procedure TiComponentEditorEdit.SetAsDateTime(const Value: Double);
var
TempOnChange : TNotifyEvent;
begin
TempOnChange := OnChange;
OnChange := nil;
FBlockingEvents := True;
try
Text := DateTimeToStr(Value);
FOriginalText := DateTimeToStr(Value);
finally
FBlockingEvents := False;
OnChange := TempOnChange;
end;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorEdit.SetStringWithEvent(Value: String);
begin
Text := Value;
if (Owner is TiCustomEditorForm) then (Owner as TiCustomEditorForm).UserChange;
DoUpdate;
end;
//***********************************************************************************************************************************
procedure TiComponentEditorEdit.SetIntegerWithEvent(Value: Integer);
begin
Text := IntToStr(Value);
if (Owner is TiCustomEditorForm) then (Owner as TiCustomEditorForm).UserChange;
DoUpdate;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorEdit.SetDoubleWithEvent(Value: Double);
begin
Text := FloatToStr(Value);
if (Owner is TiCustomEditorForm) then (Owner as TiCustomEditorForm).UserChange;
DoUpdate;
end;
//****************************************************************************************************************************************************
{$ifdef iVCL}
procedure TiComponentEditorEdit.WMKillFocus(var Message: TMessage);
begin
inherited;
DoUpdate;
end;
{$endif}
//****************************************************************************************************************************************************
procedure TiComponentEditorEdit.KeyDown(var Key: Word; Shift: TShiftState);
begin
if Key = 13 then
begin
DoUpdate;
Key := 0;
SelectAll;
end;
end;
//****************************************************************************************************************************************************
procedure TiComponentEditorEdit.KeyPress(var Key: Char);
var
AOwner : TCustomForm;
begin
if Key = #10 then Key := #0;
if Key = #13 then
begin
DoUpdate;
Key := #0;
SelectAll;
end;
if Key = #9 then
begin
Key := #0;
if Owner is TCustomForm then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -