title: Does TAction.OnUpdate event degrade the performance?
body: <p>In Delphi XE7, I use this trick to automatically enable or disable a toolbar button ("Edit ListView Item") according to whether an item in the ListView is selected or not, to prevent the user to click on the button if there is no ListView Item selected:</p>
  
  <ul>
  <li>Put a TActionList on a VCL Form.</li>
  <li>In the ActionList create an action <code>actTest</code>.  </li>
  <li>Put a TButton on the form.  </li>
  <li>Assign the action <code>actTest</code> to the button.  </li>
  <li>Put a TListView on the form.  </li>
  <li>In the ListView create two items.  </li>
  <li><p>In the <code>OnUpdate</code> event of the <code>actTest</code> action write:  </p>
  
  <pre><code> procedure TForm1.actTestUpdate(Sender: TObject);
   begin
     actTest.Enabled := ListView1.SelCount &gt; 0;
     CodeSite.Send('actTestUpdate'); // gets fired very often!
   end;
  </code></pre></li>
  </ul>
  
  <p>Now you can see that the button becomes enabled or disabled according to whether an item in the ListView is selected or not, independently from whether you select/deselect items with the mouse or with the keyboard or programmatically.</p>
  
  <p>However, in the CodeSite Live Viewer I can see that the <code>actTestUpdate</code> event is fired <strong>continuously and very often</strong>, so the statement <code>actTest.Enabled := ListView1.SelCount &gt; 0;</code> gets executed VERY OFTEN.</p>
  
  <p>So my question is: Does this degrade the performance? If yes, is there another trick to achieve the above purpose?</p>