Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi F-Taste einem Button als Zugriffstaste zuweisen... Wie? (https://www.delphipraxis.net/29158-f-taste-einem-button-als-zugriffstaste-zuweisen-wie.html)

mschaefer 5. Sep 2004 10:20

Re: F-Taste einem Button als Zugriffstaste zuweisen... Wie?
 
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

Hansa 5. Sep 2004 10:30

Re: F-Taste einem Button als Zugriffstaste zuweisen... Wie?
 
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.

mschaefer 6. Sep 2004 10:44

Re: F-Taste einem Button als Zugriffstaste zuweisen... Wie?
 
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

Hansa 6. Sep 2004 13:38

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

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. :lol: Ich sage nur: "vererben mit Hilfe der Objektablage aus Grundforms und basta" :mrgreen: 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.

mschaefer 6. Sep 2004 13:49

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

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


Grüße // Martin

mschaefer 6. Sep 2004 14:07

Re: F-Taste einem Button als Zugriffstaste zuweisen... Wie?
 
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

Nothine 6. Sep 2004 19:05

Re: F-Taste einem Button als Zugriffstaste zuweisen... Wie?
 
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 (:stupid:) dann noch posten

Robert_G 6. Sep 2004 21:45

Re: F-Taste einem Button als Zugriffstaste zuweisen... Wie?
 
@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.

Nothine 6. Sep 2004 22:43

Re: F-Taste einem Button als Zugriffstaste zuweisen... Wie?
 
Liste der Anhänge anzeigen (Anzahl: 1)
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 :mrgreen: 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.)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 Uhr.
Seite 2 von 2     12   

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