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;
  • 相关阅读:
    实验室机器OracleXE客户端连接远程Oracle服务器
    PLSQL Developer 远程连接Oracle XE数据库(其他Oracle数据库类似)
    VB进制转化大全
    给定一个硬盘标识,umout掉所有相关挂载
    linux读取硬盘指定扇区
    开发板上挂载NTFS分区
    write error:file too large!!!
    一些自用的c函数
    主引导记录(MBR)分析
    strtok_r函数学习
  • 原文地址:https://www.cnblogs.com/cb168/p/6038303.html
Copyright © 2011-2022 走看看