Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#15

Re: Wie Entertaste bei Button abfangen?

  Alt 31. Mär 2006, 20:19
Hallo Armageddon,

Du könntest die WindowProc des Buttons ersetzen:

Delphi-Quellcode:
type
  TForm1 = class (TForm)
    Button1: TButton;
    procedure FormCreate (Sender: TObject);
    procedure FormDestroy (Sender: TObject);
  private
    svWndProc : TWndMethod;
    procedure NewWndProc (var aMessage: TMessage);
  end;

procedure TForm1.FormCreate (Sender: TObject);
begin
  svWndProc := Button1.WindowProc;
  Button1.WindowProc := NewWndProc;
end;

procedure TForm1.FormDestroy (Sender: TObject);
begin
  Button1.WindowProc := svWndProc;
end;

procedure TForm1.NewWndProc (var aMessage: TMessage);
begin
  if ((aMessage.Msg = CN_KEYDOWN) and (aMessage.WParam = 13)) then
    aMessage.WParam := 9;
  svWndProc (aMessage);
end;
In der neuen WindowProc wird die CN_KEYDOWN-Nachricht für den Button abgefangen und die Taste RETURN (Code 13) durch TAB (Code 9) ersetzt. Ein Drücken von RETURN führt beim Button nun zum Fokussieren des nächsten Dialogelements.

Gruß Hawkeye
  Mit Zitat antworten Zitat