Что вы подразумеваете под "нарисуйте свою"? Создать фрейм с кнопками? Да, это несложно.
А как сделать так, чтобы при получении Edit-ом фокуса ввода показывалась не системная клавиатура (которая идет поверх всего приложения), а именно эта? И чтобы код, который скроллит контекст формы так, чтобы элемент с фокусом ввода не скрывался клавиатурой, а оставался видимым отрабатывал одинаково и для системной клавиатуры и для своей? И чтобы символы вставлялись/удалялись именно в положение курсора, который пользователь может переместить в любое место?
Да, можно сделать Edit1.ReadOnly:=True, это позволит показать курсор и не вызовет клавиатуру. Да, на OnEnter/OnExit каждого из нужных Edit-ов можно повесить показ/скрытие своей клавиатуры. Да, можно в код формы, отвечающий за "оставание на экране" элемента с фокусом внести изменения по этой клавиатуре (правда, для этого фрейм клавиатуры придется делать глобальной переменной). Можно и закостылироваться со вставкой нужного символа в нужное положение. Но что-то слишком много получается "да, можно" и при этом решение будет не универсальным и зависящим от человеческого фактора. Кто поручится, что завтра не понадобится обрабатывать OnKeyDown/OnKeyUp и иже с ними? Или я забуду выставить ReadOnly для TEdit? И я уверен, что это не все вопросы, которые надо будет решить - при реализации вот такого велосипеда появится еще куча... Ну и- код по работе с клавиатурой получается размазанным по разным модулям, а это уже очень плохо. Да и приложение все же не будет считать этот велосипед за клавиатуру, а так - будет "закрывать глаза" на все несоответствия.
Все-таки, мне кажется, должно быть какое-то "общее" решение, которое позволит обойти озвученные вопросы изящно и непринужденно