KEY_Fx in Curses nicht drin?
KEY_Fx in Curses nicht drin?
am 11.01.2007 13:41:21 von df4or
Tag.
Mit Verwunderung stelle ich fest das die KEY_Fx Konstanten im Perl Curses
Modul nicht drin sind. Es gibt nur KEY_F0, mit dem ich aber leider nicht so
rech twas anfangen kann.
Kann mir jemand sagen wieso KEY_Fx Konstanten nicht in Curses drin sind,
oder wie ich sonst mit den Funktionstasten in Perl / Curses umgehen kann?
Danke,
Ekki
Re: KEY_Fx in Curses nicht drin?
am 11.01.2007 19:14:27 von Fabian Kurz
Ekki Plicht wrote:
> Mit Verwunderung stelle ich fest das die KEY_Fx Konstanten im Perl Curses
> Modul nicht drin sind. Es gibt nur KEY_F0, mit dem ich aber leider nicht so
> rech twas anfangen kann.
>
> Kann mir jemand sagen wieso KEY_Fx Konstanten nicht in Curses drin sind,
> oder wie ich sonst mit den Funktionstasten in Perl / Curses umgehen kann?
Ein fixer Blick in ncurses.h zeigt:
#define KEY_F0 0410 /* Function keys. Space for 64 */
#define KEY_F(n) (KEY_F0+(n)) /* Value of function key n */
Also einfach KEY_F(x) verwenden. Fuer jede der 64 moeglichen
F-Tasten eine Konstante zu definieren waere einfach zu viel
Redundanz...
73,
--
Fabian Kurz, DJ1YFK * Dresden, Germany * http://fkurz.net/
Online Log: http://dl0tud.tu-dresden.de/~dj1yfk/log.html
Re: KEY_Fx in Curses nicht drin?
am 11.01.2007 22:28:38 von Slaven Rezic
Ekki Plicht writes:
> Tag.
>
> Mit Verwunderung stelle ich fest das die KEY_Fx Konstanten im Perl Curses
> Modul nicht drin sind. Es gibt nur KEY_F0, mit dem ich aber leider nicht so
> rech twas anfangen kann.
>
> Kann mir jemand sagen wieso KEY_Fx Konstanten nicht in Curses drin sind,
> oder wie ich sonst mit den Funktionstasten in Perl / Curses umgehen kann?
Ich kenne mich gar nicht mit Curses aus, aber in ncurses.h steht nur:
#define KEY_F0 0410 /* Function keys. Space for 64 */
#define KEY_F(n) (KEY_F0+(n)) /* Value of function key n */
Letzteres ist kein konstantes Makro und wahrscheinlich wird deshalb
auch keine Perl-Konstante erzeugt (womöglich werden die Konstanten
automatisch erzeugt). Aber man kann es vielleicht wagen, einfach diese
Funktion in Perl nachzubauen...
Am besten ist es wohl, den Autor zu fragen.
--
Slaven Rezic - slaven rezic de
tkruler - Perl/Tk program for measuring screen distances
http://ptktools.sourceforge.net/#tkruler
Re: KEY_Fx in Curses nicht drin?
am 12.01.2007 00:16:50 von df4or
Fabian Kurz wrote:
> Ekki Plicht wrote:
>> Mit Verwunderung stelle ich fest das die KEY_Fx Konstanten im Perl Curses
>> Modul nicht drin sind. Es gibt nur KEY_F0, mit dem ich aber leider nicht
>> so rech twas anfangen kann.
>>
>> Kann mir jemand sagen wieso KEY_Fx Konstanten nicht in Curses drin sind,
>> oder wie ich sonst mit den Funktionstasten in Perl / Curses umgehen kann?
>
> Ein fixer Blick in ncurses.h zeigt:
>
> #define KEY_F0 0410 /* Function keys. Space for 64 */
> #define KEY_F(n) (KEY_F0+(n)) /* Value of function key n */
>
> Also einfach KEY_F(x) verwenden. Fuer jede der 64 moeglichen
> F-Tasten eine Konstante zu definieren waere einfach zu viel
> Redundanz...
Ach so geht das... ok, danke, da habe ich nicht durchgeblickt.
73,
Ekki
Re: KEY_Fx in Curses nicht drin?
am 12.01.2007 00:18:19 von df4or
Slaven Rezic wrote:
> Ekki Plicht writes:
>
>> Tag.
>>
>> Mit Verwunderung stelle ich fest das die KEY_Fx Konstanten im Perl Curses
>> Modul nicht drin sind. Es gibt nur KEY_F0, mit dem ich aber leider nicht
>> so rech twas anfangen kann.
>>
>> Kann mir jemand sagen wieso KEY_Fx Konstanten nicht in Curses drin sind,
>> oder wie ich sonst mit den Funktionstasten in Perl / Curses umgehen kann?
>
> Ich kenne mich gar nicht mit Curses aus, aber in ncurses.h steht nur:
>
> #define KEY_F0 0410 /* Function keys. Space for 64 */
> #define KEY_F(n) (KEY_F0+(n)) /* Value of function key n */
>
> Letzteres ist kein konstantes Makro und wahrscheinlich wird deshalb
> auch keine Perl-Konstante erzeugt (womöglich werden die Konstanten
> automatisch erzeugt). Aber man kann es vielleicht wagen, einfach diese
> Funktion in Perl nachzubauen...
>
> Am besten ist es wohl, den Autor zu fragen.
OK, Fabians Antwort hat mir auf die Sprünge geholfen...
einfach "use Curses;" und schon steht KEY_F() zur Verfügung. Ich hatte
nur "use Curses::UI" verwendet, da war das nicht definiert.
Danke,
Ekki