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;
  • 相关阅读:
    pageload 重新生成动态控件的問題
    管理員維護完整代碼如下:
    Control 'GridView1' of type 'GridView' must be placed inside a form tag with runat=server
    sqlserver兩種查詢方式效率比較
    管理員修改頁面代碼
    SQL2008卸载 检查是否重启错误
    安装Java环境
    asp.net cookie读写
    绘制几何图形——使用android.graphics类
    正则获取图片路径
  • 原文地址:https://www.cnblogs.com/cb168/p/6038303.html
Copyright © 2011-2022 走看看