AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi TActionlist -> 2 Buttons -> Welcher wurde gedrückt ?
Thema durchsuchen
Ansicht
Themen-Optionen

TActionlist -> 2 Buttons -> Welcher wurde gedrückt ?

Ein Thema von HolgerCW · begonnen am 12. Mär 2008 · letzter Beitrag vom 12. Mär 2008
Antwort Antwort
Seite 2 von 3     12 3      
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt

  Alt 12. Mär 2008, 11:29
Wir Reden hier vom Event der ActionList.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt

  Alt 12. Mär 2008, 11:42
Zitat von mkinzler:
Im onExecute-Events wird dir der Parameter Action übergeben, Action.ActionComponent referenziert dann den Auslöser
Kleiner Denkfehler:
Delphi-Quellcode:
procedure TMainForm.ApplicationEventsActionExecute(Action: TBasicAction;
  var Handled: Boolean);

procedure TMainForm.MyActionExecute(Sender: TObject);
Es wird also auch noch ein TApplicationEvents benötigt.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#13

Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt

  Alt 12. Mär 2008, 11:43
Delphi-Quellcode:
procedure TDemo_Form.ac_blubbExecute(Sender: TObject); // Action : ac_blubb
begin
  ShowMessage((Sender as TAction).ActionComponent.Name); // Zeigt den Namen des Controls über den die Action gestartet wurde
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#14

Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt

  Alt 12. Mär 2008, 11:47
Vielen vielen dank.

Also ich bin nun wie in dem Code-Beispiel über das Event der Action gegangen und nicht über das Event der Actionlist.

Das klappt super.

Danke an euch alle.

Gruss

Holger
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#15

Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt

  Alt 12. Mär 2008, 11:57
Trotzdem mein Beispiel:

Du brauchst auf dem Formular eine TActionList und TApplicationEvents

Dann:
Delphi-Quellcode:
procedure TFoStatus.AcButtonPressExecute(Sender: TObject);
begin
  if TBasicAction(AcButtonPress).ActionComponent = BuAbbrechen then
  begin
// MachWas;
  end
  else if TBasicAction(AcButtonPress).ActionComponent = BuAbbrechen then
  begin
// MachWasAnderes;
  end;
end;

procedure TFoStatus.ApplicationEvents1ActionExecute(Action: TBasicAction;
  var Handled: Boolean);
begin
  if Action.ActionComponent = BuAbbrechen then
  begin
// MachWas;
  end
  else if Action.ActionComponent = BuAbbrechen then
  begin
// MachWasAnderes;
  end;
end;
Nun wird erst ApplicationEvents1ActionExecute und dann AcButtonPressExecute ausgeführt.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#16

Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt

  Alt 12. Mär 2008, 12:39
@RavenIV: Was ich bei deinen beiden Beispielen vermisse: wo bzw. was ist AcButtonPress?

Wenn, dann typecaste den Sender:

Delphi-Quellcode:
procedure TFoStatus.AcButtonPressExecute(Sender: TObject);
begin
  Assert(Sender is TBasicAction, 'Ups, doch keine TBasicAction...');

  if TBasicAction(Sender).ActionComponent = PDF1Laden then
  begin
// MachWas;
  end
  else if TBasicAction(Sender).ActionComponent = PDF2Laden then
  begin
// MachWasAnderes;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#17

Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt

  Alt 12. Mär 2008, 12:42
Zitat von Muetze1:
@RavenIV: Was ich bei deinen beiden Beispielen vermisse: wo bzw. was ist AcButtonPress?

Wenn, dann typecaste den Sender:
Was könnte AcButtonPress wohl sein, wenn wir die ganze zeit von Actions reden?

Sorry, hab das schnell runtergetippt und das casten vergessen
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#18

Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt

  Alt 12. Mär 2008, 12:45
Zitat von RavenIV:
Was könnte AcButtonPress wohl sein, wenn wir die ganze zeit von Actions reden?
Das habe ich mir auch gedacht, aber damit wäre der Code hinfällig, weil:

1. Du typecastest eine Action Komponente auf ihre Basisklasse zurück - wozu?
2. Du gehst fest davon aus, dass es nur diese eine Action sein kann, die diese Methode aufruft.
3. Du hast ActionComponent immer mit dem gleichen Element verglichen (sprich: in beiden Fällen).

Was das sein könnte habe ich mir gedacht, aber die drei Punkte machten den Code unverständlich bzw. man/der Fragestelelr erkennt den Sinn bzw. intern Ablauf/Aufbau schwerer bzw. nicht.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#19

Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt

  Alt 12. Mär 2008, 12:49
Zitat von Muetze1:
Zitat von RavenIV:
Was könnte AcButtonPress wohl sein, wenn wir die ganze zeit von Actions reden?
Das habe ich mir auch gedacht, aber damit wäre der Code hinfällig, weil:

1. Du typecastest eine Action Komponente auf ihre Basisklasse zurück - wozu?
2. Du gehst fest davon aus, dass es nur diese eine Action sein kann, die diese Methode aufruft.
3. Du hast ActionComponent immer mit dem gleichen Element verglichen.

Was das sein könnte habe ich mir gedacht, aber die drei Punkte machten den Code unverständlich bzw. man/der Fragestelelr erkennt den Sinn bzw. intern Ablauf/Aufbau schwerer bzw. nicht.
Man, Mann, Mann.
Wird hier alles auf die Goldwaage gelegt, was man von sich gibt.
Ein klein Wenig mitdenken dürfte wohl nicht zuviel sein.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#20

Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt

  Alt 12. Mär 2008, 12:51
Zitat von RavenIV:
Man, Mann, Mann.
Wird hier alles auf die Goldwaage gelegt, was man von sich gibt.
Ein klein Wenig mitdenken dürfte wohl nicht zuviel sein.
Darum geht es mir hier nicht. Mir war und ist das alles klar gewesen, aber eher weil ich (wie du) genug Erfahrung haben damit, aber ob der Fragesteller dies auch mitbringt, bezweifle ich (will hier keinem zu Nahe treten), da es sonst nicht zu einer Frage gekommen wäre.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 10:03 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