У формы есть событие OnVirtualKeyboardHidden, оно срабатывает когда юзер нажимает Done и клавиатура скрывается.
Также, срабатывает событие OnExit компонента (напр TEdit).
Ну а в тему - если это винда, то можете попробовать открыть ссылку на файл с помощью ShellExecute, если андроид, то запустить активити как тут https://stackoverflow.com/questions/49200962/delphi-10-2-how-can-i-open-a-url-in-androids-web-browser-from-my-application (вместо TJIntent.JavaClass.ACTION_VIEW можете попробовать использовать другие экшены). В ios не подскажу...
Это не вопрос. Просто подумал, что кому-нибудь может пригодится.
https://forums.embarcadero.com/thread.jspa?threadID=118465
Используем 2 файла: Androidapi.JNI.ToastForService.pas + FlyUtils.Android.PostRunnableAndTimer.pas.
Пример вызова:
Androidapi.JNI.ToastForService.PostToast('текст сообщения', LongToast);
Проверил - работает.
Есть ещё третий параметр "UseLastToastObj", но я так и не понял, для чего он. Документации нет.