AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi F-Taste einem Button als Zugriffstaste zuweisen... Wie?
Thema durchsuchen
Ansicht
Themen-Optionen

F-Taste einem Button als Zugriffstaste zuweisen... Wie?

Offene Frage von "mschaefer"
Ein Thema von mschaefer · begonnen am 4. Sep 2004 · letzter Beitrag vom 6. Sep 2004
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#11

Re: F-Taste einem Button als Zugriffstaste zuweisen... Wie?

  Alt 5. Sep 2004, 11:20
Moin, moin

Hm, doch nochmal an der Kiste gestrandet. Es gibt da ein kleines Problem:

Nehmen wir zwei drei Buttons auf einem Panel. Dann kann ich dem Panel zunächst ein Hitkey zuweisen. Aber dann bleibt der Hotkey des zuletzt erstellten Burtons und die anderen würden entfallen. Oder Du müstest dem Parent in einer abgeleiteten Parentkomponente eine Hotkeyliste spendieren, das scheint mir aber eher etwas weit hergeholt und nicht unbedingt sichere Programmierung. Um nicht in der vcl selbst zu kodieren wären dazu dann noch Ableitungen zumindest von Panel und Form notwendig.....

Einen Systemweiten HotKey einem Button zuzuweisen ist übrigens kein Problem, aber das will damit nun auch nicht erreichen, da sich sonst mehre Programmer "kappeln" würden. Es sollen die Buttons einfach eine Eigenschaft F-Taste bekommen in dem Sie in Ihrem Formular auf diese reagieren.

Bin nich auf vcl-Debugtour....

Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#12

Re: F-Taste einem Button als Zugriffstaste zuweisen... Wie?

  Alt 5. Sep 2004, 11:30
Das TForm ist IMHO die einzige "Komponente", die sich OOP-mäßig sehr schwer behandeln läßt. Ich hatte mal versucht, irgendwas davon abzuleiten. No Chance. Weiß der Teufel, was TForm jetzt noch genau ist, auf jeden Fall etwas ganz anderes als ein TButton oder eine normale Komponente.

Das Stichwort heißt nunmehr : "Objektablage/Repository". In meinem Source sieht es so aus, daß jede Form sich mit esc schließen lassen muß. Verschiedene F-Tasten müssen in verschiedenen Form-Gruppen bereit stehen. Die Tastatur muß sich immer gleich verhalten, auch mit ISO???? im Hinterkopf. 8)

Wie habe ich das realisiert ? Indem ich eine Form genommen habe, in dieser schon mal alle Grundeinstellungen eingestellt habe (Farbe, FormKeyPress für ESC usw.). Diese ESCform kam dann in die Objektablage. Weitere 5 Forms brauchen zusätzlich F9 und F10. Für diese habe ich von ESCform eine weitere Grundform abgeleitet (Objektablage -> vererben). Diese dann letzendlich für die 5 Forms verwendet.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#13

Re: F-Taste einem Button als Zugriffstaste zuweisen... Wie?

  Alt 6. Sep 2004, 11:44
Moin, moin,

tja fast hätte Hansa wohl rechtbehalten und ganz geklärt habe ich es immer noch nicht:

Dank Rainer Reusch von der Toolbox bin ich ninzwischen in der Lage den Buttons Systemweite HotKeys zu zuordnen und hier gehen auch die Funktionstasten F1 bis F12. Der Haken ist allerdings, das diese immmer Systemweit sind und sich nicht auf ein Formular beziehen.

Button-Komponenten mit systemweiten Hotkeys von R.Reusch)

So was mir immernoch fehlt ist die Zuweiseung einer Funtkionstaste mit nur formularlokaler Gültigkeit als Eigenschaft einer abgeleiteten Buttonkomponente.....

Tipps .. Ideen sind herzlich willkommen

Grüße // martin
Martin Schaefer
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#14

Re: F-Taste einem Button als Zugriffstaste zuweisen... Wie?

  Alt 6. Sep 2004, 14:38
Zitat von mschaefer:
...Der Haken ist allerdings, das diese immmer Systemweit sind und sich nicht auf ein Formular beziehen.
Und eben der Haken ist bei mir nicht dabei. Ich sage nur: "vererben mit Hilfe der Objektablage aus Grundforms und basta" Das ganze hat nämlich noch einen weiteren Vorteil : in der Form-Hierarchie kann man statt der Funktionstasten auch noch nach und nach immer wiederkehrende Sachen mit einbauen. Z.B. Buttons, Statusleisten mit vorher definierten Eigenschaften und sei es nur die Farbe oder die Schriftart.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#15

Re: F-Taste einem Button als Zugriffstaste zuweisen... Wie?

  Alt 6. Sep 2004, 14:49
Hallo Hansa,

vor der Mittagspause hätte ich auch schon fast aufgegeben jetzt
verfolge ich meine letzte Spur, sehen wir in einer hallben Stunde...
....WM_KeyDown....


Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#16

Re: F-Taste einem Button als Zugriffstaste zuweisen... Wie?

  Alt 6. Sep 2004, 15:07
Moin, moin

Ok, sieht gut aus:

Jetzt komme ich an die WM_KeyDown Message des Forms innerhalb meiner abgeleiteten Buttonkomponenten indem ich mich über die Parents hochhangele (wie Nothineja schon vorgeschlagen hat, ok dann also doch !). Dann noch die Messageprocedure umbiegen und dann sollte es gehen, mal sehen....

Viele Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
Benutzerbild von Nothine
Nothine

Registriert seit: 3. Jul 2004
Ort: Mülheim an der Ruhr
198 Beiträge
 
Delphi 5 Enterprise
 
#17

Re: F-Taste einem Button als Zugriffstaste zuweisen... Wie?

  Alt 6. Sep 2004, 20:05
das hab ich übrigens auch grad erfolgreich getestet, also das umbiegen, ich muss nur noch das hochangeln sauber hinkriegen, als klasse kapseln, und wenn nich jemand schneller war () dann noch posten
if ThisPost is senseless then
ThisPost.WasPostedBy := SomeoneElse();
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#18

Re: F-Taste einem Button als Zugriffstaste zuweisen... Wie?

  Alt 6. Sep 2004, 22:45
@Sharky, wenn es sich nur um die Buttons und nicht noch um Menüs etc. handelt wäre der ActionMan viel zu überdimensioniert.

Eine simple ActionList tut den Job genauso ohne soviele Ressourcen zu schlucken.
Du legst dir einfach eine Action an, verpasst dem OnExecute deinen Code. Außerdem kannst du ihr einen ShortCut verpassen.
Jetzt wählst du beim Button einfach die betreffende Action aus -> färtsch.

btw: IMHO sollte man die gesamt GUI in ActionLists verwalten, dadurch kann man eine Action an vielen Stellen wiederverwenden (MainMenu, ContextMenu, Button, ...) außerdem werden alle zugewiesene Controls auf enabled/disabled gesetzt, wenn man es an der Action ändert.

Nachtrag:
Zitat:
das Ding besitzt den Action - Manager (glaube Actions gibt´s ab D4).
D4 hatte Actions und die ActionList eingeführt, der ActionMan kam erst mit D7, für D6 gab's ein Update.
  Mit Zitat antworten Zitat
Benutzerbild von Nothine
Nothine

Registriert seit: 3. Jul 2004
Ort: Mülheim an der Ruhr
198 Beiträge
 
Delphi 5 Enterprise
 
#19

Re: F-Taste einem Button als Zugriffstaste zuweisen... Wie?

  Alt 6. Sep 2004, 23:43
so, die button-komponente, die auf druck der tasten F1 bis F12 reagiert, is feddich. wen's interessiert, der kann sich im anhang das package sowie die unit der komponente ansehen, vielleicht hat ja noch jemand verbesserungsvorschläge oder will mich hauen weil es so programmiert is wie es halt is also feedback is willkommen

(zur erklärung: es gibt 2 neue published properties im OI, eine heißt "FKey", sollte halbwegs klar sein, auf welche F-Taste man reagieren will halt, und das event "OnHotKey", mit dem man entscheiden kann was der button nu eigentlich machen soll wenn die entsprechende taste gedrückt wurde.)
Angehängte Dateien
Dateityp: zip fkeybutton_206.zip (7,6 KB, 29x aufgerufen)
if ThisPost is senseless then
ThisPost.WasPostedBy := SomeoneElse();
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 07:08 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