AGB  ·  Datenschutz  ·  Impressum  







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

Action zur Laufzeit mit Shortcut versehen

Ein Thema von sir-archimedes · begonnen am 12. Feb 2006 · letzter Beitrag vom 13. Feb 2006
Antwort Antwort
sir-archimedes

Registriert seit: 2. Jan 2006
Ort: Münster
167 Beiträge
 
Delphi 2006 Professional
 
#1

Action zur Laufzeit mit Shortcut versehen

  Alt 12. Feb 2006, 22:29
Hallo,

ich möchte eigentlich nur ein Shortcut für meine Form registrieren (per Code). Dazu habe ich mir gedacht, dass ich einfach eine ActionList/Action dynamisch erzeuge und den Shortcut eintrage. Das funktioniert aber nicht: die Action kann nicht per Shortcut aufgerufen werden. Ich habe das so probiert:

Delphi-Quellcode:
  InternalActionList := TActionList.Create(NIL);
  InternalActionList.Name := 'InternalActionList';
  with TAction.Create(InternalActionList) do
    begin
      ShortCut := VK_F5;
      ActionList := InternalActionList;
      Name := 'actRefreshData';
      Caption := 'Daten Refreshen';
      OnExecute := RefreshDataOnExecute;
    end;
Weiß jemand, wie ich die ActionList/Action dazu bewegen kann, auch auf die Shortcuts zu reagieren?

Gruß und danke,
Dominik
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: Action zur Laufzeit mit Shortcut versehen

  Alt 13. Feb 2006, 06:28
Hai dominik.boehm,

ist jezt ungetestet. Aber musst Du der Eigenschaft .ShortCut nicht über die Function Delphi-Referenz durchsuchenShortCur etwas zuweisen?

Delphi-Quellcode:
  InternalActionList := TActionList.Create(NIL);
  InternalActionList.Name := 'InternalActionList';
  with TAction.Create(InternalActionList) do
    begin
      ShortCut := ShortCut(VK_F5, []);
      ActionList := InternalActionList;
      Name := 'actRefreshData';
      Caption := 'Daten Refreshen';
      OnExecute := RefreshDataOnExecute;
    end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
sir-archimedes

Registriert seit: 2. Jan 2006
Ort: Münster
167 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Action zur Laufzeit mit Shortcut versehen

  Alt 13. Feb 2006, 09:03
Leider hat das nicht funktioniert. Die Funktion ShortCut erzeugt auch nur eine neue Integerzahl:

Delphi-Quellcode:
function ShortCut(Key: Word; Shift: TShiftState): TShortCut;
begin
  Result := 0;
  if WordRec(Key).Hi <> 0 then Exit;
  Result := Key;
  if ssShift in Shift then Inc(Result, scShift);
  if ssCtrl in Shift then Inc(Result, scCtrl);
  if ssAlt in Shift then Inc(Result, scAlt);
end;
Da wird nichts registriert Hat sonst noch jemand einen Tipp?

Gruß,
  Mit Zitat antworten Zitat
teebee

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

Re: Action zur Laufzeit mit Shortcut versehen

  Alt 13. Feb 2006, 09:40
Owner der ActionList muss das Formular sein, dann geht es (auch ohne Funktionsaufruf ShortCut()).

Gruß, teebee
  Mit Zitat antworten Zitat
sir-archimedes

Registriert seit: 2. Jan 2006
Ort: Münster
167 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Action zur Laufzeit mit Shortcut versehen

  Alt 13. Feb 2006, 09:49
Danke. Das möchte ich aber gerade nicht. Denn die Actionlist soll "unsichtbar" bleiben. Wenn ich die Action mit Owner=self(=Formular) erstelle, dann klappt es auch nicht...

Prinzipiell dreht es sich mir eigentlich nur darum, einen Shortcut für das Fenster (und nur das Fenster) zu erstellen...
  Mit Zitat antworten Zitat
teebee

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

Re: Action zur Laufzeit mit Shortcut versehen

  Alt 13. Feb 2006, 09:53
Inwiefern wird die ActionList denn 'sichtbar', wenn Du als Owner das Formular angibst? Nach außen ändert sich doch nichts.
  Mit Zitat antworten Zitat
sir-archimedes

Registriert seit: 2. Jan 2006
Ort: Münster
167 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Action zur Laufzeit mit Shortcut versehen

  Alt 13. Feb 2006, 09:57
Das Formular soll quasi ein Basis-Formular sein. Es wird also von ihm vererbt. Die Kinder sehen die Actionlist im Formulareditor, sobald ich den Owner=Formular setze. Aber genau das möchte ich verhindern.

Die ActionList soll also unsichtbar im Formulareditor bleiben.
  Mit Zitat antworten Zitat
teebee

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

Re: Action zur Laufzeit mit Shortcut versehen

  Alt 13. Feb 2006, 10:11
Dann wird es mit einer ActionList nicht funktionieren. OnShortCut des Formulars kommt dann wohl auch nicht in Frage. Also müsstest Du in der Fensterprozedur Deinen ShortCut direkt abfangen.
  Mit Zitat antworten Zitat
teebee

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

Re: Action zur Laufzeit mit Shortcut versehen

  Alt 13. Feb 2006, 10:16
Eine Idee noch: Vielleicht hilft 'csDesigning in ComponentState' ja weiter, indem Du den Owner nur dann seztzt, wenn die Applikation nicht im Formular-Editor bearbeitet wird.
  Mit Zitat antworten Zitat
sir-archimedes

Registriert seit: 2. Jan 2006
Ort: Münster
167 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Action zur Laufzeit mit Shortcut versehen

  Alt 13. Feb 2006, 10:55
Zitat von teebee:
Eine Idee noch: Vielleicht hilft 'csDesigning in ComponentState' ja weiter, indem Du den Owner nur dann seztzt, wenn die Applikation nicht im Formular-Editor bearbeitet wird.
Dazu sag ich nur eins: super Idee!!! Klappt wie gewünscht

Mensch mensch mensch, hätte ich diese Idee früher gehabt, dann hätte ich mir ne Menge Arbeit erspart Danke!
  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 17:32 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