AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TActionList und TButton

Ein Thema von wolfgang4711 · begonnen am 26. Okt 2005 · letzter Beitrag vom 26. Okt 2005
Antwort Antwort
wolfgang4711

Registriert seit: 26. Okt 2005
4 Beiträge
 
#1

TActionList und TButton

  Alt 26. Okt 2005, 06:54
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.
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: TActionList und TButton

  Alt 26. Okt 2005, 07:01
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
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#3

Re: TActionList und TButton

  Alt 26. Okt 2005, 07:04
Du musst die Action noch "einschalten" (im OnUpdate), das enabled des Buttons ist an das enabled der Action gekoppelt:
Delphi-Quellcode:
procedure TForm1.Action1Update(Sender: TObject);
begin
  TAction(Sender).Enabled := True; //je nachdem an- oder ausschalten...
end;
Gruß, teebee
  Mit Zitat antworten Zitat
wolfgang4711

Registriert seit: 26. Okt 2005
4 Beiträge
 
#4

Re: TActionList und TButton

  Alt 26. Okt 2005, 07:12
Zitat von teebee:
Du musst die Action noch "einschalten" (im OnUpdate), das enabled des Buttons ist an das enabled der Action gekoppelt:
Delphi-Quellcode:
procedure TForm1.Action1Update(Sender: TObject);
begin
  TAction(Sender).Enabled := True; //je nachdem an- oder ausschalten...
end;
Gruß, teebee
cool damit funktioniert es.
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
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#5

Re: TActionList und TButton

  Alt 26. Okt 2005, 07:26
Wahrscheinlich ist dann etwas in der Art im Programm:
Delphi-Quellcode:
procedure TForm1.ActionList1Update(Action: TBasicAction;
  var Handled: Boolean);
begin
 TAction(Action).Enabled := True;
 Handled := True;
end;
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.

Gruß, teebee
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: TActionList und TButton

  Alt 26. Okt 2005, 07:33
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 von wolfgang4711:
btw. und ->TButton->Eigenschaften->Action->OnExecute habe ich natürlich auch durchgeführt.
Grüße vom marabu

und herzlich willkommen in der Delphi-PRAXiS.
  Mit Zitat antworten Zitat
wolfgang4711

Registriert seit: 26. Okt 2005
4 Beiträge
 
#7

Re: TActionList und TButton

  Alt 26. Okt 2005, 07:54
Zitat von teebee:
Wahrscheinlich ist dann etwas in der Art im Programm:
Delphi-Quellcode:
procedure TForm1.ActionList1Update(Action: TBasicAction;
  var Handled: Boolean);
begin
 TAction(Action).Enabled := True;
 Handled := True;
end;
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.

Gruß, teebee
Nein, ich habe mit der Suche das ganze Projekt durchsuchen lassen, da ist nichts zu finden.
Merkwürdig.

cu
wolf
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#8

Re: TActionList und TButton

  Alt 26. Okt 2005, 07:58
@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 von wolfgang4711:
btw. und ->TButton->Eigenschaften->Action->OnExecute habe ich natürlich auch durchgeführt.
Ich denke Wolfgang hat das Ereignis über den OI gesetzt.

Gruß, teebee
  Mit Zitat antworten Zitat
wolfgang4711

Registriert seit: 26. Okt 2005
4 Beiträge
 
#9

Re: TActionList und TButton

  Alt 26. Okt 2005, 08:13
Zitat von teebee:
Dass da natürlich eigentlich eine bedingte Zuweisung hingehört, sollte sich von selbst verstehen.
Zitat von wolfgang4711:
btw. und ->TButton->Eigenschaften->Action->OnExecute habe ich natürlich auch durchgeführt.
Ich denke Wolfgang hat das Ereignis über den OI gesetzt.

Gruß, teebee
Habe ich und in der Methode natürlich die notwendigen Anweisungen geschrieben.
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz