Funktionstaste mit Position in Subfile

subfiles
f-keys

#1

Normalerweise werden in den (RPG-) Programmen Optionsfelder verwendet, um für eine Subfilezeile eine bestimmte Aktion auszuführen.

Wenn Sie aber eine Funktionstaste im Kontext einer Subfilezeile ausführen möchten, gehen Sie wie folgt vor:

Setzen Sie die Eigenschaft Key des FlexFunctionButtons auf None.
Hierdurch wird bei Klick auf den Button keine direkte Aktion mehr ausgeführt.

image

Als nächstes fügen Sie dem FlexFunctionButtons ein Klick-Ereignis hinzu.

image

In dem Ereignis tragen Sie dann den folgenden Code ein.

var hPos = 3;  // horizontale Cursorposition (ggfs. anpassen)
var row = flexSflStaticGrid1.CurrentRow;
if (row == null) // keine Zeile im Subfile ausgewählt
{
    SendKey(FlexHostKeys.F11);  // F-Key ohne spezielle Position 
}
else
{
    var line = (int)row[FlexSflGridBase.colLineNo];
    SendKey(FlexHostKeys.F11, hPos, line);  // F-Key mit Position  
}

#2

Hallo Herr Hartmann,

funktionert bisher einwandfrei!! :slight_smile:

Was hat es denn mit der 3 aufsich?

Danke und Grüße
Manuel Haas


#3

Hallo Herr Haas,

das ist die horizontale Cursorposition.
Das kann u.a. bei Fenstern relevant werden.

Ich habe das Beispiel oben angepasst, um das (hoffentlich) deutlicher zu machen :slight_smile: