Здравствуйте.
Я хочу написать фрагмент на Луа, с помощью которого можно было бы узнать, какая кнопка в диалоге является "текущей", т.е. подсвеченной, т.е. если нажать "Ввод", то произведется действие этой кнопки.
Моя проблема, наверное, заключается в том, что я не очень понимаю, как работать с диалогами Фар из макросов.
После поисков в luafar_manual.chm и в интернете я понял, что мне, возможно, пригодится функция "far.GetDlgItem (hDlg, numitem [,item])" и что каждый диалог в Фар имеет свой UID. Но дальше я не пойму. Как из этого UID (символьная строка) получить сам диалог (hDlg)? Дальше, я думаю, GetDlgItem скажет мне, является ли этот элемент выбранным.
Конкретно речь идет о диалоге поиска файлов (Alt+F7) и кнопке "Goto". По выбранности этой кнопки я хочу проверять, закончился ли уже поиск файлов.
Как узнать текущую кнопку в диалоге?
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: Как узнать текущую кнопку в диалоге?
Для получения hDlg UID не нужен, нужно знать номер окна диалога. А если данный диалог является активным окном, то и номер окна знать не обязательно.fml2 wrote:я понял, что мне, возможно, пригодится функция "far.GetDlgItem (hDlg, numitem [,item])" и что каждый диалог в Фар имеет свой UID. Но дальше я не пойму. Как из этого UID (символьная строка) получить сам диалог (hDlg)?
Code: Select all
hDlg = far.AdvControl("ACTL_GETWINDOWINFO").Id
Re: Как узнать текущую кнопку в диалоге?
Попробовал написать соответствующий код. Это возможно, но как-то не очень удобно, т.к. свойства элементов диалога возвращаются (ф-цией GetDlgItem) не в полях с осмысленными именами (name, color, ...), а под индексами 1, 2, 3, ... Почему так было сделано?
- HaRT
- Moderator
- Posts: 10823
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: Как узнать текущую кнопку в диалоге?
См. Константы в макроязыке и особенно Для Dlg.GetValue.fml2 wrote:свойства элементов диалога возвращаются (ф-цией GetDlgItem) не в полях с осмысленными именами (name, color, ...), а под индексами 1, 2, 3, ...
Обсуждение отделено.fml2 wrote:Почему так было сделано?
Фар есть инструмент, а не нянька. © 2009 DrKnS