![]() |
|
|
![]()
|
|
| RomanEEP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 18.5.2006 Где: Коломна Репутация: нет Всего: 8 |
На главном форме стоит edit. На Child окне стоит панель.
Как сделать так, чтобы при клике на панель отбирался фокус ввода у едита на основной форме? Я пишу Panel.SetFocus, но фокус остается на Edit-е. Screen.ActiveControl не меняется. Если панель и едит стоят на одной форме (любой, хот на чилде, хоть на основной), то связка работает нормально. Связка Edit-Edit работет нормально, даже если они стоят на разных формах Что я делаю не так? или это фокусы MDI? Прикрепляю тестовый пример, где это можно посмотреть. PS: Разделом ошибся. Модераторы, перекиньте, пожалуйста, в общий раздел. PPS: Архив поправил Это сообщение отредактировал(а) RomanEEP - 14.12.2009, 17:02 Присоединённый файл ( Кол-во скачиваний: 5 )
TextEdit.rar 5,94 Kb |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
|
|||
|
||||
| RomanEEP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 18.5.2006 Где: Коломна Репутация: нет Всего: 8 |
Удали ссылку на юнит1 и все.
Akella, ты видимо под D2010 сидишь. У тебя воспроизводится баг? Это сообщение отредактировал(а) RomanEEP - 14.12.2009, 16:58 |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
у мну d2007
Добавлено через 2 минуты и 59 секунд Для начала приведи в порядок проект, как минимум убери путаницу с именами (name) и подписями (caption) панелей Добавлено через 4 минуты и 17 секунд далее, ты пишешь Panel3.SetFocus; а как визуально ты хочешь увидеть, что Panel3 получила фокус ввода??? Поясни. Добавлено через 5 минут и 52 секунды у тебя ваще бред какой-то procedure TFrameForm.Panel3Click(Sender: TObject); begin Panel3.SetFocus; end; зачем на щелчок по панели 3 ты вызываешь фокус на саму себя, на панель 3? Добавлено через 7 минут и 55 секунд у TEditForm тоже самое procedure TEditForm.Panel1Click(Sender: TObject); begin Panel1.SetFocus; end; |
|||
|
||||
| RomanEEP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 18.5.2006 Где: Коломна Репутация: нет Всего: 8 |
Это тестовый проект, в котором я воспроизвожу ошибку. Если говорить точнее, то вопрос стоит в том как установить фокус на MDI форму (т.е чтобы сообщение о нажатии клавиш приходили на неё) в которой нет элементов управлению вроде Edit, CheckBox итп. У меня есть предположение, что это глюк VCL, потому что нашел следующий workaround:
Всем спасибо. Вопрос можно считать решенным. 2 Akella: В идле стоит код, который отображает в капшене главной формы класс активного элемента управления, как видишь, в клике по панелям класс активного контрола остается эдитом, расположенном на главной форме. ЗЫ: Что самое странное: Если свернуть/развернуть приложение, то фокус, как и положено, разместится на панели в чилд-форме. Это сообщение отредактировал(а) RomanEEP - 14.12.2009, 18:36 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |