Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Beepen bei OnKeyDown global unterdrücken

  Alt 16. Feb 2006, 07:22
Hai ihr,

warum denn nicht den einfachsten Weg nehmen und sich ein eigene Komponente von TEdit ableiten und in dieser dann die gewünschte Funktionalität einbauen?

EDIT:
Das ganze könnte dann zum Beispiel so aussehen:
Delphi-Quellcode:
unit ShEdit;

interface

uses
  Classes, StdCtrls, Controls, Messages, Windows;

type
  TShEdit = class(TEdit)
  protected
    FEnterAsTab: Boolean;
    procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property EnterAsTab: Boolean Read FEnterAsTab Write FEnterAsTab default True;
  end;

procedure Register;

implementation

constructor TShEdit.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FEnterAsTab := True;
end;

destructor TShEdit.Destroy;
begin
  inherited Destroy;
end;

procedure TShEdit.KeyDown(var Key: Word; Shift: TShiftState);
var
  mgsTemp : TMsg;
begin
  if (Key = VK_RETURN) then
  begin
    if (FEnterAsTab) then
    begin
      Parent.Perform(WM_NEXTDLGCTL, 0, 0);
    end;
    PeekMessage(mgsTemp, 0, WM_CHAR, WM_CHAR, PM_REMOVE);
  end;
  inherited KeyDown(Key, Shift);
end;

procedure Register;
begin
  RegisterComponents('Sharky', [TShEdit]);
end;

end.
Einfach die Unit in ein Package laden, compilieren, installieren und verwenden.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat