Посылка сообщения окну
Модератор: Модераторы
Посылка сообщения окну
Кто нибудь знает как в Lazaruse реазизовать вот такое , но желательно чтобы предложеный метод и под виндой и линуксом тоже работал
SendMessage(Self.Handle,WM_NEXTDLGCTL,0,0);
SendMessage(Self.Handle,WM_NEXTDLGCTL,0,0);
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
Послать сообщение само по себе не сложно (подключите LCLIntf и используйте SendMessage), но кто его будет обрабатывать? Если это ваш собственный диалог, то добавьте обработчик этого сообщения и напишите реализацию. Если вы хотите, чтобы WM_NEXTDLGCTL отработало под linux для системного диалога, то увы - lazarus не эмулирует windows.
alexs писал(а):а что делает это сообщение? если выбор следующего контрола по порядку обхода - то просто метод SelectNext
да это сообщение в Виндовс эмулировало нажатие кнопки Tab, поэтому мне и нужен вариант чтобы такой код обрабатывался и в Виндовсе и в других поддерживаемых Фрее Паскалем платформах в частности в Линуксе
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
grigoreo писал(а):да это сообщение в Виндовс эмулировало нажатие кнопки Tab, поэтому мне и нужен вариант чтобы такой код обрабатывался и в Виндовсе и в других поддерживаемых Фрее Паскалем платформах в частности в Линуксе
Если так и нужно только для lazarus форм, то SomeForm.PerformTab() не подойдет?
alexs писал(а):а что делает это сообщение? если выбор следующего контрола по порядку обхода - то просто метод SelectNext
Павел Ишенин писал(а):grigoreo писал(а):да это сообщение в Виндовс эмулировало нажатие кнопки Tab, поэтому мне и нужен вариант чтобы такой код обрабатывался и в Виндовсе и в других поддерживаемых Фрее Паскалем платформах в частности в Линуксе
Если так и нужно только для lazarus форм, то SomeForm.PerformTab() не подойдет?
Спасибо оба варианта работают
alexs писал(а):а что делает это сообщение? если выбор следующего контрола по порядку обхода - то просто метод SelectNext
а как после выполнение перехода на следующий контрол реализовать чтобы если в том контроле есть текст, переместится в конец строки?
Attid писал(а):Edit1.CaretPos ?
А тогда подскажи как узнать текущий контрол формы на котором сейчас стоит фокус, просто обработчик событий стоит общий, или может есть эвент которое происходит когда контрол получает фокус?
