Frank McCormick wrote:
> Resending because of some changes in my results.
> 
> 
> I am having a tough time using the keyboard unit under Linux. Please tell me
> whats wrong with this code:
> 
> ( var section cut out)
> 
> Begin
>    InitKeyBoard;
>    Repeat
>      K:=pollKeyEvent;
>      if k <>0
>      then
>      begin
>        k:=getkeyevent;
>        k:=translatekeyevent(k);
>        if isfunctionkey(k)
>        then
>        case k Of

Replace above line with "case GetKeyEventCode(k) Of". To compare with
constants like kbdF1 and such, you have to extract event code from
TKeyEvent value by GetKeyEventCode (somewhat analogous to
GetKeyEventChar that you use below).

>        kbdF1 :
>             Begin
>             End;
>        kbdF3 : ;//DoSpot;
>        kbdF4 : ;//DoId;
>        kbdF2 :Begin
>                  End;
>        kbdF9 : ;//GetUpdate(PromoString,PromoPrompt);
>        kbdF10 :;// GetUpdate(WeatherString,WeatherPrompt);
>       end
>       else  if not isfunctionkey(k)
>       then
>         case getkeyeventchar(k) of
>         '1'..'8' :
>                   Begin
>                   End;
>        'c':
>              Begin
>              End;
>        'd':
>              Begin
>              End;
>        'N','n': GetNext;
>       End; {of case}
>      End;
>   Until quit;
> End;
> 
> I have chopped out a lot of the code; The only  keys I get or those in the
> getkeyeventchar section, i.e. '1'..'8' etc. 
> 
> 
> Cheers 
> 
> Frank
> 

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to