zoukankan      html  css  js  c++  java
  • delphi action学习

    procedure TEditAction.UpdateTarget(Target: TObject);
    begin
      if (Self is TEditCut) then
        Enabled := (GetControl(Target).SelLength > 0) and not GetControl(Target).ReadOnly
      else if (Self is TEditCopy) then
        Enabled := (GetControl(Target).SelLength > 0);
    end;
      TEditCopy = class(TEditAction)
      public
        procedure ExecuteTarget(Target: TObject); override;
      end;
      TEditAction = class(TAction)
      private
        FControl: TCustomEdit;
        procedure SetControl(Value: TCustomEdit);
      protected
        function GetControl(Target: TObject): TCustomEdit; virtual;
        procedure Notification(AComponent: TComponent; Operation: TOperation); override;
      public
        destructor Destroy; override;
        function HandlesTarget(Target: TObject): Boolean; override;
        procedure UpdateTarget(Target: TObject); override;
        property Control: TCustomEdit read FControl write SetControl;
      end;
      TEditPaste = class(TEditAction)
      public
        procedure UpdateTarget(Target: TObject); override;
        procedure ExecuteTarget(Target: TObject); override;
      end;
    
      TEditSelectAll = class(TEditAction)
      public
        procedure ExecuteTarget(Target: TObject); override;
        procedure UpdateTarget(Target: TObject); override;
      end;
    执行命令
    procedure
    TEditSelectAll.ExecuteTarget(Target: TObject); begin GetControl(Target).SelectAll; end;
    更新控件状态
    procedure TEditSelectAll.UpdateTarget(Target: TObject); begin Enabled := Length(GetControl(Target).Text) > 0; end;

     UpdateTarget不断的在调用

    function TEditAction.GetControl(Target: TObject): TCustomEdit;
    begin
      { We could hard cast Target as a TCustomEdit since HandlesTarget "should" be
        called before ExecuteTarget and UpdateTarget, however, we're being safe. }
      Result := Target as TCustomEdit;
    end;
  • 相关阅读:
    Ubuntu vim java 自动补全javacomeplete2
    vim多行注释和取消注释 Ubuntu
    vim tab设置为4个空格
    liunx 命令行快捷键 常用命令
    win7 +v Ubuntu 16.04 grub rescue 模式下修复 grub
    Ubuntu16.04安装WPS
    liunx ubuntu java 环境的配置
    Vim简明教程【CoolShell】(转)
    ubuntu16.04安装chrome
    android全屏下的输入框未跟随软键盘弹起问题
  • 原文地址:https://www.cnblogs.com/cb168/p/6038303.html
Copyright © 2011-2022 走看看