| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > центрирование диалогов |
| Автор: shmelina 15.6.2009, 12:08 | ||||
| Задача: Есть желание показывать диалоги по центрируя их относительно компонент из которых они вызываются. Показывать диалоги по центру формы не всегда красиво. Допустим, у меня есть форма, на которой два грида, занимающие по ширине формы равное пространство. Когда я нажимаю кнопку "Удалить" для определенного грида, то я хочу, чтобы сообщение "Удалить запись?" возникало посередине (к примеру) соответствующего грида. Написал отдельную процедурку, которую вызываю перед показом формы:
Но приглядевших, вижу, что не совсем она и по центру, как мне хотелось бы. Написал тестовый код для проверки моих опасений:
По идее, левый верхний край формы должен совпадать с координатами кнопки. Но он ниже и правее. Помогите решить задачу. |
| Автор: shmelina 15.6.2009, 14:19 |
| Спасибо! Там координаты кнопки прибавлялись, т.к. ClientToScreen я вызывал у нее. |
| Автор: shmelina 15.6.2009, 14:58 | ||
Вот готовый код. Вы создаете свою форму (.Create), а перед показом (.ShowModal) вызываете эту функцию, которая центрирует диалог относительно того визуального компонента, который вы ей передадите в параметре AParent.
|