![]() |
TActionList und TButton
Hallo zusammen,
ich arbeite gerade, nach längerer Absitenz, mit D6. Meine Aufgabe ein kleines Programm zu modifizieren. Keine grosse Sache. In diesem Programm wird mit TButton und TActionlist gearbeitet. Eine merkwürdigkeit gibt es jetzt. Wenn ich ein neuen TButton anlege und eine neue Action (Katgorie auswählen und rechte Maustaste neue Aktion), diese Action mit dem TButton verlinke (Eigenschaften TButton ->Action) dann sind meine neuen TButton disabled, verlinke ich sie mit einer bestehenden, das Programm enthält schon ein paar Aktion, dann sind diese Button enabled. Man kann also mit diesen Buttons arbeiten. Wieso ist das so ? Ich kann mich nicht errinern, das dies eine Delphi Geschichte wäre ? Vielen Dank im Voraus. einen schönen Tag noch Wolfgang Herfter btw. und ->TButton->Eigenschaften->Action->OnExecute habe ich natürlich auch durchgeführt. |
Re: TActionList und TButton
Hast du bereits die Execute-Methode von TAction programmiert? Erst wenn eine entsprechende Methode mit Leben gefüllt ist, wird dein Button "enabled".
Grüße Mikhal |
Re: TActionList und TButton
Du musst die Action noch "einschalten" (im OnUpdate), das enabled des Buttons ist an das enabled der Action gekoppelt:
Delphi-Quellcode:
Gruß, teebee
procedure TForm1.Action1Update(Sender: TObject);
begin TAction(Sender).Enabled := True; //je nachdem an- oder ausschalten... end; |
Re: TActionList und TButton
Zitat:
Allerdings, ich schrieb ja das ich ein bestehendes Programm modifiziere, haben die in ihren bereits bestehenden TButton und TActionList diesen Eintrag nicht und es funzt bei denen auch so. Oder die haben das in irgend einer Uses versteckt. Leider gibt es überhaubt keine Doku. zu dem bestehenden Programm. Danke für die Antwort. wolfgang |
Re: TActionList und TButton
Wahrscheinlich ist dann etwas in der Art im Programm:
Delphi-Quellcode:
Wenn für eine einzelne Action kein OnUpdate existiert kümmert sich die ActionList darum. Wenn da auch nix ist, geht es weiter an die Application. Vielleicht ist spätestens in Application.OnActionUpdate was drin.
procedure TForm1.ActionList1Update(Action: TBasicAction;
var Handled: Boolean); begin TAction(Action).Enabled := True; Handled := True; end; Gruß, teebee |
Re: TActionList und TButton
Hallo Wolfgang,
die Eigenschaft Enabled einer Action ist standardmäßig auf TRUE gesetzt. Im OnUpdate-Event der Action Enabled einfach auf TRUE zu setzen macht keinen Sinn. Da gehört eine bedingte Zuweisung rein. Ich vermute wie Mikhal, dass du noch keinen Execute-Code für deine Action geschrieben hattest, als der Button disabled erschien. Was meinst du eigentlich damit: Zitat:
und herzlich willkommen in der Delphi-PRAXiS. |
Re: TActionList und TButton
Zitat:
Merkwürdig. cu wolf |
Re: TActionList und TButton
@Wolfgang: Dann hab ich im Moment auch keine Idee, woran es liegen könnte.
@marabu: Dass Wolfgang das OnExecute der Action schon gefüllt hat, hat er in seinem ersten Posting geschrieben. Also bin ich davon ausgegangen, dass an einer anderen, Action.OnUpdate übergeordneten Stelle, das enabled der Action auf False gesetzt wird. Daher der Tip mit dem Setzen auf TRUE in Action.OnUpdate. Dass da natürlich eigentlich eine bedingte Zuweisung hingehört, sollte sich von selbst verstehen. Zitat:
Gruß, teebee |
Re: TActionList und TButton
Zitat:
Das Programm ist auch (gelinde gesagt) ziemlich krank programmiert worden. Ich baue jetzt die Anweisung (TAction(Sender).Enabled := True;) ein und Ruhe ist. Wenn das nicht gewünscht ist, sollen die mir sagen wie sie das gelöst haben möchten. Meine Sorge war ja, dass ich eine Einstellung vergessen habe die von Delphi erwartet wird und jeder Programmierer kennt. Aber dem scheint ja nicht so zu sein. (Man glaubt ja doch das man die Muttersprache (Delhpi) nicht verlernt, aber mit den Jahren schleicht sich ein Akzent ein und Fehler in der Aussprache) Ich danke euch allen für euere Hilfe und wünsche einen schönen Tag viel Spass noch wolfgang |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 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 by Thomas Breitkreuz