OnKeyDown, OnKeyPress and OnKeyUp events does not work with TTMSFNCSearchEdit

The events OnKeyDown, OnKeyPress and OnKeyUp does not work with TTMSFNCSearchEdit. It is also not possible (in an easy way and without adaptation of the source code) to override these events from TTMSFNCSearchEdit.

After exposing the property Edit, you should be able to use TMSFNCSearchEdit1.Edit.OnKeyDown, OnKeyPress, OnKeyUp ...

That will work for me. However the events will still not work. Better to use the same logic as with DoEditChanged. In that way the events will work as expected.

Like this:

In the Create procedure:
FEdit.Edit.OnKeyPress := DoEditKeyPress;

Add the following procedure:
procedure DoEditKeyPress(Sender: TObject; var Key: Char); virtual;

procedure TTMSFNCSearchEdit.DoEditKeyPress(Sender: TObject; var Key: Char);
begin
if Assigned(OnKeyPress) then OnKeyPress(Sender, Key);
end;

Agreed, we will root the events to search edit level.

Perfect. Good to make them virtual as well, so it is possible to override them.

Better to use Self and not Sender:

procedure TTMSFNCSearchEdit.DoEditKeyPress(Sender: TObject; var Key: Char);
begin
if Assigned(OnKeyPress) then OnKeyPress(Self, Key);
end;

Then the Sender will be TTMSFNCSearchEdit and not just the Edit.