Funktionstasten
Beschreibung der Verwendung von Funktionstasten innerhalb des User Interfaces.
Sie können Funktionstasten (F1-F35) über ein Skript belegen und damit im Modul Vision
arbeiten. Dabei wird ein Control-Skript keypressed.ctl
gestartet, welches sich im Verzeichnis ../scripts
befinden muss.
Der main()-Funktion werden folgende Parameter übergeben:
Syntax
main(int key, int mod)
{
// hier erfolgt die Definition der
Tastenbelegung und // die Wirkung
}
Parameter
Parameter | Beschreibung |
---|---|
key | Funktionstaste (KEY_F1 - KEY_F35) |
mod | modifier (KEY_CONTROL, KEY_ALT, KEY_SHIFT, KEY_META ) |
Beschreibung
Sie müssen ein Skript mit den gewünschten Tastenbelegungen schreiben. Das Skript muss
in <proj_path>/scripts
mit dem Namen
keypressed.ctl
gespeichert werden. Ist nun ein
VISION-Modul aktiv und man betätigt die belegten Funktionstasten, so wird diese
Funktion aufgerufen.
Falls keine Tastenbelegung erfolgt und keine Datei keypressed.ctl existiert, werden Windows Default Aktionen aufgerufen (z.B. die Tastenkombination <ALT> <F6> minimiert das aktuelle Vision Fenster).
Für <ALT> <F4> wird kein Key-Event ausgegeben und daher kann diese Tastenkombination mittels des Skripts keypressed.ctl nicht überschrieben werden. Um das Schließen eines Panels zu verhindern, muss im closeEvent des Panels ein leeres Skript (z.B. nur eine Zeile mit ";") definiert werden.
Beispiel
Wenn die Funktionstasten F1 und Shift gleichzeitig betätigt werden, werden der Modulname (vom offenen Modul) und die Nummern der Funktionstasten ausgegeben.
main(int key, int mod)
{
string s;
if( (key==KEY_F1) &&
(mod==KEY_SHIFT) )
{
s=myModuleName();
DebugN(key, mod);
DebugN(s);
}
}
Die Modifier-Keys können auch gemeinsam gedrückt werden. Die einzelne Modifier-Tasten können wie folgt abgefragt werden:
Wenn die Modifier-Keys F1, ALT und Shift gleichzeitig betätigt werden, werden der Modulname (vom offenen Modul) und die Nummern der Funktionstasten ausgegeben.
main(int key, int mod)
{
string s;
if ( (mod & KEY_ALT)
&&
(mod & KEY_SHIFT)&&
(key == KEY_F1))
{
s=myModuleName();
DebugN(key, mod);
DebugN(s);
}
}