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

📄 ieditorbasiccomponents.pas

📁 iocopm3.04源码,一套很好的工控开发工具
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  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 + -