adding a button as a search in the edit
Well, TEditButton in LCL also has a similar button. (See howardpc's question).
I guess you did not realize LCL has such a component. You even named your internal button as TEditButton which clashes with the LCL component name.
Now, amazingly, your design is good while TEditButton's design is bad. That is because it inherits from TCustomEdit (actually TCustomMaskEdit) and the button is placed outside the component. The resize handles are in wrong places and alignment goes wrong. See:
http://bugs.freepascal.org/view.php?id=12155and its related issues.
There was an experimental version in trunk which I just removed. It could be tested with a define NewEditButton.
It was a dead end because the events were done "upside-down" and did not work. In your component they are done correctly.
There is another interesting implementation from Flávio Etrusco which creates a recursive loop in LCL layout system. See the issue report.
Would you be interested to improve your component further and make it a replacement of TEditButton in LCL?
Events of TEdit must be duplicated and forwarded, that is the way to go. You have already implemented many but I think more is needed.
I see you have already forked Graeme's Lazarus mirror in GitHub. You could make your new TEditButton replacement there.
In fact your naming "TButtonedEdit" is better and could be used. TEditButton could be a deprecated alias for it.
Once you can build Lazarus itself with the new component and all its derivatives (TFilenameEdit, TDateEdit, TCalcEdit, filteredits etc.) in various IDE forms work as expected, it is very likely good.
It would be true distributed development using Git. I have promised to support it, see:
http://wiki.lazarus.freepascal.org/Creating_A_Patch#Using_a_forked_Git_repository_directlybut nobody yet has offered his GitHub fork.
It would make you a pioneer and also a hero because you solve a long-standing issue that was supposed to be fixed in Lazarus 1.0 already.
Tempting, ha?