AGB  ·  Datenschutz  ·  Impressum  







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

Actionmanager zuweisen

Ein Thema von blawen · begonnen am 31. Aug 2015 · letzter Beitrag vom 3. Sep 2015
Antwort Antwort
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
654 Beiträge
 
Delphi 12 Athens
 
#1

Actionmanager zuweisen

  Alt 31. Aug 2015, 03:06
Hallo Delphigemeinde

Folgende (vereinfachte) Ausgangslage:

Es existieren die beiden Formulare „Form1“ und „Form2“, mit je einem Actionmanager.
Zusätzlich besitzt die „Form1“ noch ein Panel „Panel1“.

Diesem Panel weise ich nun die „Form2“ zu und lasse sie anzeigen.
Delphi-Quellcode:
Form2.Parent := Panel1.Parent;
Form2.Align := alClient;
Form2.BorderStyle := bsNone;
Form2.WindowState := wsMaxiMized;
Form2.Show;
Nachteil dieser Lösung ist es, dass Shortcut-Tasten jeweils nur Aktionen der "Form1" auslösen, nicht jedoch wie beabsichtigt auch (nur) von der "Form2"

Daher meine Frage:
Wie kann ich die Aktionen von der "Form2" dem Actionmanger von "Form1" zuweisen?

Lösungen wie
Delphi-Quellcode:
procedure TForm1.actF1Execute(Sender: TObject);
begin
  if sAktivesModul = 'Form2then Form2.actF1Execute(self);
end;
würden zwar funktionieren, jedoch geht es doch sicher auch eleganter - oder?

Besten Dank für Anregungen.
Roland
  Mit Zitat antworten Zitat
olaf

Registriert seit: 4. Mai 2009
Ort: Iserlohn
82 Beiträge
 
RAD-Studio 2009 Pro
 
#2

AW: Actionmanager zuweisen

  Alt 31. Aug 2015, 07:02
Form1 in den uses Abschnitt von Form2 aufnehmen. Dann Form1.action....
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.021 Beiträge
 
Delphi 12 Athens
 
#3

AW: Actionmanager zuweisen

  Alt 31. Aug 2015, 07:28
Form1 in den uses Abschnitt von Form2 aufnehmen. Dann Form1.action....
Nach dem dritten Lesen des Posts glaube ich, daß er etwas anderes meint. Wenn ich das richtig verstanden habe, werden bei aktivem Form2 immer noch die ShortCut-Actions von Form1 ausgeführt. Es sollen aber die von Form2 ausgeführt werden. So ganz sicher bin ich mir aber auch nicht. Deswegen wäre hier ein konkretes Code-Beispiel sicher hilfreich.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
654 Beiträge
 
Delphi 12 Athens
 
#4

AW: Actionmanager zuweisen

  Alt 31. Aug 2015, 10:41
Wenn ich das richtig verstanden habe, werden bei aktivem Form2 immer noch die ShortCut-Actions von Form1 ausgeführt. Es sollen aber die von Form2 ausgeführt werden.
Genau so meine ich es. Sorry für die unklare Beschreibung.

Ein Beispiel kann ich gerne liefern.

In Form1 lässt sich im Ribbonmenü die Form2 aufrufen.

Zugewiesene Shortcuts:
F1 - Form 1
F2 - Form 2
Angehängte Dateien
Dateityp: zip Bsp.zip (65,6 KB, 7x aufgerufen)
Dateityp: zip Bsp_exe.zip (1,41 MB, 4x aufgerufen)
Roland
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
654 Beiträge
 
Delphi 12 Athens
 
#5

AW: Actionmanager zuweisen

  Alt 2. Sep 2015, 22:39
Das Problem scheint zum einen auf das zuweisen des Parents
Delphi-Quellcode:
Form2.Parent := Panel1.Parent;
...
Form2.Show;
und zum anderen auf den fehlenden Focus auf der Form 2 zurückzuführen sein.

Gestern habe ich mit der Objekteigenschafr Actionmanager.TActionListCollection "gespielt" und da hat mein Beispiel einwandfrei funktioniert.
Leider habe ich das angepasste Beispiel nicht gespeichert und aktuell will es nicht wieder funktionieren.

Kennt ev. jemand einen "Workaround" für diese "Unschönheit"?
Roland
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: Actionmanager zuweisen

  Alt 3. Sep 2015, 08:42
Delphi-Quellcode:
Form2.Parent := Panel1.Parent;
//
Was ist denn der Parent von Panel1? Form1?
Kannst du da nicht direkt Form2.Parent := Form1; schreiben oder self?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
654 Beiträge
 
Delphi 12 Athens
 
#7

AW: Actionmanager zuweisen

  Alt 3. Sep 2015, 14:23
Was ist denn der Parent von Panel1? Form1?
Kannst du da nicht direkt Form2.Parent := Form1; schreiben oder self?
Der Parent des Panels ist Form1.

Versuchsweise habe ich den Code abgeändert zu
Delphi-Quellcode:
Form2.Parent := Panel1.Parent;
Form2.Show;
Der Effekt ist, das Form1 normal bestehen bleibt, die Form2 wird oberhalb der Form1 angezeigt.
Der Focus liegt aber weiterhin auf der Form1. Erst wenn ich die Form2 anklicke klappt es (logischerweise) mit den Shortcuts.

Ziel wäre es, die verschiedenen Forms jeweils im Panel1 einzubinden und auch jeweils die Shortcuts der Formulare benutzen zu können.
Das Ribbonmenu verwende ich, um die verschiedenen Forms aufzurufen.
Roland
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#8

AW: Actionmanager zuweisen

  Alt 3. Sep 2015, 14:58
Würde es einen Unterschied machen Frames statt Froms zu verwenden?
Werden die auf Form2 verwendeten Shortcuts auch auf Form1 verwendet (überschneidungen)?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
654 Beiträge
 
Delphi 12 Athens
 
#9

AW: Actionmanager zuweisen

  Alt 3. Sep 2015, 17:25
Würde es einen Unterschied machen Frames statt Froms zu verwenden?
Werden die auf Form2 verwendeten Shortcuts auch auf Form1 verwendet (überschneidungen)?
Auf einem Frame kann man m.W. keine Actionlist verwenden und nein, die Schortcuts überschneiden sich nicht (siehe obiges Beispiel)
Roland
  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 23:35 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