![]() |
Actions und deren Captions und Bilder
Wenn ich einer Komponente, z.B. einem TButton eine Action zuweise übernimmt er gleich deren Eigenschaften Caption und ImageIndex. Ich möchte das nicht.
Muss ich das jetzt immer so machen:
Delphi-Quellcode:
Oder gibt es irgendwo eine Eigenschaft wo ich das abstellen kann? Oder übersehe ich etwas dummes wenn ich einfach nur, speziell für einen Button, sage
var
oldImageList: TCustomImageList; oldImageIndex: Integer; begin oldImageList := Button1.Images; oldImageIndex := Button1.ImageIndex; Button1.Action := Action1; Button1.Images := oldImageList; Button1.ImageIndex := oldImageIndex;
Delphi-Quellcode:
Button1.OnClick := Action1.OnExecute;
|
AW: Actions und deren Captions und Bilder
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
Delphi-Quellcode:
aufruft.
Action.Execute
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz