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;
  • 相关阅读:
    PAT顶级 1024 Currency Exchange Centers (35分)(最小生成树)
    Codeforces 1282B2 K for the Price of One (Hard Version)
    1023 Have Fun with Numbers (20)
    1005 Spell It Right (20)
    1092 To Buy or Not to Buy (20)
    1118 Birds in Forest (25)
    1130 Infix Expression (25)
    1085 Perfect Sequence (25)
    1109 Group Photo (25)
    1073 Scientific Notation (20)
  • 原文地址:https://www.cnblogs.com/cb168/p/6038303.html
Copyright © 2011-2022 走看看