Funktionstaste F1

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
bendixen
Rookie
Rookie
Beiträge: 15
Registriert: Mi, 27. Jun 2012 12:35

Funktionstaste F1

Beitrag von bendixen »

Gibt es eine Möglichkeit, meine unter Clipper funktionierende F1-Taste mit dem Wert 28 auch unter Xbase++ zum Antworten zu bringen?
Die Tasten F2 bis F9 arbeiten wie gewohnt, nur die F1 ist wirkungslos.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2824
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Funktionstaste F1

Beitrag von georg »

Hallo, bendixen -


ich kann Dein Problem nicht nachvollziehen:

Code: Alles auswählen

FUNCTION Main()
   Local nKey
   nKey := InKey(0)
   ? nKey
   PAUSE
RETURN (.T.)
Wenn ich F1 drücke, wird 28 angezeigt.

Wenn Du ein wenig mehr über das Umfeld (wahrscheinlich XbpCRT()?) schreiben würdest, wäre Hilfestellung leichter zu geben.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Funktionstaste F1

Beitrag von Jan »

Da F1 ja üblicherweise eine Hilfe aufruft (zumindest unter Windows): Unter Xbase++ gibt es die Funktion XbpHelp(), mit der man ein Windows-konformes Hilfesystem umsetzen kann.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Funktionstaste F1

Beitrag von brandelh »

Der Unterschied liegt sicher im LINK MODUS !

GUI=YES verwendet die AppEvent.CH und dort wird windowskonform ! ein F1 Druck zu einem Hilfe-Event verarbeitet.
Selbst wenn man den Keyboard-Link abfängt, ist es nicht 28 sondern #define xbeK_F1 65648

Solange man die inkey.ch verwendet (GUI=NO bzw. ohne PM Schalter) erhält man Clipper-Verhalten:
#define K_F1 28

Aber selbst unter DOS Clipper gilt schon seit Jahrzehnten F1 = HILFE ;-)

In der Eventloop habe ich meine Hilfe für das ganze Programm hinterlegt, man könnte dort aber auch was anderes schalten ...

Code: Alles auswählen

   DO WHILE .T.
      nEvent := AppEvent( @mp1, @mp2, @oXbp, nSeconds)
      do case
         case nEvent = xbe_None
            * nichts tun ist hier Standard
         case nEvent = xbeP_Keyboard .and. mp1 == xbeK_F1
            * xbeP_HelpRequest erscheinen für jede Xbp Instanz, also zu oft !
            ShowNoHelp()  // in ANW_MENU.PRG
         otherwise
              oXbp:handleEvent( nEvent, mp1, mp2 )
      endcase
      if nSeconds > 0
         if date() = dBis .and. nBisSeconds < seconds()
            exit
         endif
      endif
   ENDDO
PS: ShowNoHelp() ist bei mir eine Standardfunktion, die aufgerufen wird, wenn noch keine Hilfe hinterlegt ist.
Gruß
Hubert
bendixen
Rookie
Rookie
Beiträge: 15
Registriert: Mi, 27. Jun 2012 12:35

Re: Funktionstaste F1

Beitrag von bendixen »

Danke für das Echo auf meine Frage.

Inzwischen habe ich die Ursache meines Problems gefunden:

SetAppWindow(): Use ShortCuts := .T.

Nach Ausblenden dieser Zeile funktioniert F1 wieder wie bei meiner Clipper-Version.
Antworten