![]() |
TActionList enable/disable
Hallo zusammen,
ich lade nach dem Start meiner Applikation eine Anzahl grösserer Dateien (Excel) im Hintergrund in Grids. Solange die Dateien nicht geladen sind, möchte ich alle Aktionen (Buttons, Menüs etc.), die diese Daten benötigen, deaktiviert haben, Nachdem ich nun anfange TActionList zu verwenden, kam mir der Gedanke all die Aktionen, die mit diesen Dateien zusammenhängen, in eine TActionList zu packen und diese erst zu aktivieren, wenn alle Daten geladen sind. Geht das irgendwie? |
AW: TActionList enable/disable
Hallo,
Ja, das geht recht einfach. Deine Actions haben jeweils ein "update"-Event. darin setzt Du "ActionXXX.Enabled" auf true/false abhängig vom Status des Ladens. Wird der Status durch die Laderoutinen irgendwann true, wird die entsprechende Action aktiviert... |
AW: TActionList enable/disable
Eventuell geht hier auch
Delphi-Quellcode:
. Dabei bleibt zwar die Enabled-Eigenschaft der Actions unverändert, aber es wird kein Execute ausgeführt.
ActionList.State := asSuspended
Siehe: ![]() |
AW: TActionList enable/disable
Vielen Dank für die Antworten. Leider ist keine von beiden meine erhoffte Lösung. Ich dachte, dass ich mit einem Schlag alle Aktionen einer ActionList deaktiviere.
Die Lösung von Uwe Raabe ist hier leider auch nur die halbe Lösung, da der Anwender in diesem Falle einen aktiven Button hat, auf den Button drückt (er ist ja nicht deaktiviert) und sich wundert, warum nichts geschieht. |
AW: TActionList enable/disable
Ich weiß nicht, ob das bei dir noch unter die Kategorie mit einem Schlag fällt:
Delphi-Quellcode:
for var action in ActionList1 do action.Enabled := False; |
AW: TActionList enable/disable
for var action in ActionList1 do
action.Enabled := False; Wahrscheinlich gibt es keine andere Lösung. Daher danke für diesen "knackigen", kurzen Code. Evtl. werde ich mir eine Komponente mit einer Enable-Property bauen, die dann dahinter diesen Code hat. |
AW: TActionList enable/disable
Zitat:
Delphi-Quellcode:
. Das erspart zumindest die Registrierung (und Verwendung) einer speziellen Komponente.
class helper
Delphi-Quellcode:
Mit dem Getter wird es allerdings etwas schwierig...
type
TActionListHelper = class helper for TActionList private procedure SetEnabled(Value: Boolean); public property Enabled: Boolean write SetEnabled; end; procedure TActionListHelper.SetEnabled(Value: Boolean); begin for var action in Self do action.Enabled := Value; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:58 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