Zuordnung einer Funktion

16/09/2008 - 18:50 von Kusch | Report spam
Hallo!
Der User soll bstimmen können, welche Funktion beim Druck einer Taste
auf der Tastatur aufgerufen wird. Dafür soll ihm eine Benutzeroberflàche
zur Verfügung stehen, mit der er die Zuordnung der Funktion zu einer
Taste festlegen kann.
Wie macht man so etwas am besten? Wie kriege ich im Code die gewünschte
Methode aufgerufen?
Vielen Dank für die Hilfe und die Tips!
Wojtek
 

Lesen sie die antworten

#1 Nicolas Pavlidis
16/09/2008 - 19:12 | Warnen spam
Hi!

Kusch wrote:
Der User soll bstimmen können, welche Funktion beim Druck einer Taste
auf der Tastatur aufgerufen wird. Dafür soll ihm eine Benutzeroberflàche
zur Verfügung stehen, mit der er die Zuordnung der Funktion zu einer
Taste festlegen kann.
Wie macht man so etwas am besten? Wie kriege ich im Code die gewünschte
Methode aufgerufen?



Je nachdem welche Technologie benützt :-)

WinForms:
Da würde ich schlicht und ergreifend so vor gehn:

Du hast verschiedene Objekte die deine verschiedenen Aktionen darstellen.

Du hast weiterhin irgendwo eine Art LookUp - Table die den
Tastenkombinationen o.à diese (Command) Objekte zuordnen.

Wenn der User nun wàhlt, dass Strg+C Kopieren sein soll, suchst du
einfach die entsprechende Aktion raus, und Ordest dem CommandObjekt die
tastenkombination Strg+C zu.

Ist ein deinem Ermessen wie du das macht, entweder du ersetzt die alte
Kobination durch die neue, oder du sieht den user - Input als
Alternative zum default - Verhalten an, und machst die Aktion durch
beide Tastenkombinationen zugànglich (also jene die du sowieso vergibst
und jene die der User gewàhlt hat).

Was u.U auch sinn voll wàre, wàre die einzelnen UI - Elemente bei dieser
"Lookuptabelle" zu registieren. Warum?
Nan oft will amndie Tastenkombination neben dem menüelement steh haben,
wie es eben im Fall von Strg+C -> Kopieren oft der Fall ist, wenn un der
User diese Kombination àndert, sollte das Menüelement das irgednwie mit
bekommen.

Das klingt ein wenig aufwendig ich weiß deshalb gibt es:

WPF:

Dort gibt es für viele Aktionen fertige Commands und etwas dass sich
CommandBinding nennt, das dieses verbinden von UI - Elementen mit irhen
Aktionen und etwaigen Eingabeformen, wie eben etwa Tastenkombinationen
übernimt.

Ein aufschlussreicehr Artikel zu WPF - Commands gibts unter [1], dort
wird auch die originale Idee des Comamnd Design Patterns erklàrt.

Hoffe meine Ausführungen waren nicht allzu unklar.

Und ich hoffe, dass ich kein Feature von WinForms übersehen habe oder
nicht kenne, dass das gleiche erreicht wie das was ich beschrieben habe.

Wenn dem so ist => Sorry.

HTH && LG
Nicolas

[1]
http://www.microsoft.com/belux/msdn...ttern.mspx

Ähnliche fragen