Here I am again.

In win32 widgetset, win32callback.inc, in WindowProc,
in code
WM_CHAR:
    Begin
      PLMsg:[EMAIL PROTECTED];
      With LMChar Do
      Begin
        Msg := CN_CHAR;
        KeyData := LParam;
        CharCode := Word(WParam);
CharCode gets correctly filled with values >255.
However, further below, in code
    CN_CHAR, CN_SYSCHAR:
    begin
      // if key not yet processed, let windows process it
      WinProcess := LMChar.Result = 0;
      WParam := LMChar.CharCode;
LMChar.CharCode is already truncated to the lower byte.

The reason seems to be in wincontrol.inc (not an interface
area), in DoKeyPress:
  if not (csNoStdEvents in ControlStyle)
  then with Message do
  begin
    C := char(CharCode);
    KeyPress(C);
    CharCode := Ord(C);
    if Char(CharCode) = #0 then Exit;
  end;

Now, of course, DoKeyPress can not do the trick and I see
there IntfUTF8KeyPress which calls controls.DoUTF8KeyPress.

However, even after trying to see how this is used in gtk, I
feel lost.

Any help and direction showing available?

Many thanks,
Borut




_________________________________________________________________
     To unsubscribe: mail [EMAIL PROTECTED] with
                "unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to