Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.058 Beiträge
 
Delphi 12 Athens
 
#2

AW: Actions und deren Captions und Bilder

  Alt 7. Apr 2016, 16:03
Das geschilderte Verhalten ist so gewollt. Ist ein Control mit einer Action verknüpft, bestimmt der dabei verwendete ActionLink das Verhalten - unter anderem, daß das Control die Caption und den ImageIndex der Action übernimmt und diese im Regelfall auch aktuell hält. Verhindern kann man das Aktualisieren, wenn die jeweiligen Eigenschaften (Caption, ImageIndex) von denen der Action abweichen. Das geht aber nur solange gut, bis das vielleicht zufällig mal nicht der Fall ist und ab dann wieder eine Synchronisierung stattfindet.

Wenn du lediglich das Execute der Action verwenden willst und auf das Update verzichten kannst, dann ist eine simple Zuweisung auf das OnClick eine Lösung. Zu beachten ist nur, daß damit nur der aktuell dem Execute zugewiesene Event übergeben wird. Sollte das Execute später mal einem anderen Event zugewiesen werden, bekommt das OnClick nichts davon mit. In dem Fall wäre ein OnClick-Handler besser, der dann einfach Action.Execute aufruft.

Alternativ kannst du aber den TButton ableiten und das GetActionLinkClass überschreiben. Da gibst du dann eine angepasste ActionLink-Klasse zurück, die das gewünschte Verhalten implementiert.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat