|
FoxPro 2.6 Win: Совместная работа Browse и Button (@Get .. Function..)
|
|||
---|---|---|---|
#18+
Всем добрый день. Прошу помощи в решении возникшей задачу. Задача: вывести на экран базу данных в Browse и одновременно вывести кнопки управления в виде Button через @..Get ...Function "*NH..." Проблема в том, что не могу заставить их работать одновременно. То сначала выводятся кнопки и я должен на что-то нажать, и только потом выходит таблица, и наоборот. Пробовал для Get поставить просто команду READ без CYCLE, то после вывода таблицы кнопки уже не активны. Прошу подсказки. Советы типа "Читай инструкцию" прошу не давать. С уважением ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2012, 17:48 |
|
FoxPro 2.6 Win: Совместная работа Browse и Button (@Get .. Function..)
|
|||
---|---|---|---|
#18+
Общая схема: - Вывести все объекты - Организовать точку останова Команда Browse по умолчанию останавливает дальнейшее выполнение приложения до своего закрытия. Чтобы открыть окно Browse, но тем не менее, не остановить выполнение приложения, необходимо добавить опцию NOWAIT В общем случае имеем нечто вроде такого Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2012, 21:27 |
|
FoxPro 2.6 Win: Совместная работа Browse и Button (@Get .. Function..)
|
|||
---|---|---|---|
#18+
Спасибо большое, опробую и сразу напишу ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2012, 22:20 |
|
FoxPro 2.6 Win: Совместная работа Browse и Button (@Get .. Function..)
|
|||
---|---|---|---|
#18+
Получилось, но возникла новая проблема. Если активны кнопки, то при нажатии Esc исчезают и кнопки и таблица, что так и должно быть. Но если активна таблица, то Esc выключает ее, а кнопки остаются. И второй вопрос - как переводить фокус на таблицу. Например, когда выполнилась функция на кнопках, то по окончании ее работы кнопки остаются активными, а таблица нет. Заранее извиняюсь за простоту вопросов и жду ваших советов. С уважением ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 01:43 |
|
FoxPro 2.6 Win: Совместная работа Browse и Button (@Get .. Function..)
|
|||
---|---|---|---|
#18+
Michael Ermi, У вас FPD 2.x ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 08:38 |
|
FoxPro 2.6 Win: Совместная работа Browse и Button (@Get .. Function..)
|
|||
---|---|---|---|
#18+
Насколько я помню, в FP2.6 for Win это все решалось довольно кривыми путями. Корректного решения все-равно не будет. Запретить закрывать Browse по нажатию Esc можно только подавив вообще реакцию на Esc через Код: sql 1.
Но это означает отсутствие реакции вообще везде на нажатие клавиши Esc. Восстановить настройку можно командой без параметров Код: sql 1.
Переключить фокус в Browse-окно можно командой на активизацию окна Код: sql 1.
Заголовок - это то, что указано в опции TITLE команды BROWSE. Лучше это делать через переменную Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 21:38 |
|
FoxPro 2.6 Win: Совместная работа Browse и Button (@Get .. Function..)
|
|||
---|---|---|---|
#18+
Michael Ermi, Вы действительно всё делаете IN SCREEN? Или, всё же, таково требование - "сделать всё именно на главном экране", определять окна и располагать в них элементы нельзя? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 21:46 |
|
FoxPro 2.6 Win: Совместная работа Browse и Button (@Get .. Function..)
|
|||
---|---|---|---|
#18+
ВладимирМЗапретить закрывать Browse по нажатию Esc можно только подавив вообще реакцию на Esc через Код: sql 1.
Но это означает отсутствие реакции вообще везде на нажатие клавиши Esc. Восстановить настройку можно командой без параметров Код: sql 1.
Если реакция на кнопки сделана через @..GET...VALID MyFunction(choice), и есть кнопка, привязанная к Esc, то можно "почти логично" сделать переопределение. Главное при таком использовании - не забывать сразу же восстанавливать переназначения после интерактива. Впрочем, от глюков это всё равно не убережёт :) Test Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 22:20 |
|
FoxPro 2.6 Win: Совместная работа Browse и Button (@Get .. Function..)
|
|||
---|---|---|---|
#18+
AndreTM Michael Ermi, Вы действительно всё делаете IN SCREEN? Или, всё же, таково требование - "сделать всё именно на главном экране", определять окна и располагать в них элементы нельзя? У меня не было требования - в окне или без. Была просто поставлена задача - видеть на экране таблицу, и рядом с ней кнопки управления (вызова подсказки, распечатать, дополнительная функция для выбранной ячейки и т.д.). Раньше я просто решал эту задачу - перепрограммируя клавиши, например от F1...F10 на время показа таблицы, и потом возвращал все назад. Теперь нужны кнопки. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 23:26 |
|
FoxPro 2.6 Win: Совместная работа Browse и Button (@Get .. Function..)
|
|||
---|---|---|---|
#18+
AndreTMВладимирМЗапретить закрывать Browse по нажатию Esc можно только подавив вообще реакцию на Esc через Код: sql 1.
Но это означает отсутствие реакции вообще везде на нажатие клавиши Esc. Восстановить настройку можно командой без параметров Код: sql 1.
Если реакция на кнопки сделана через @..GET...VALID MyFunction(choice), и есть кнопка, привязанная к Esc, то можно "почти логично" сделать переопределение. Главное при таком использовании - не забывать сразу же восстанавливать переназначения после интерактива. Впрочем, от глюков это всё равно не убережёт :) + Test Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Большое спасибо за подсказку. завтра опробую и напишу, как получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 23:27 |
|
FoxPro 2.6 Win: Совместная работа Browse и Button (@Get .. Function..)
|
|||
---|---|---|---|
#18+
asdorMichael Ermi, У вас FPD 2.x ? У меня FoxPro 2.6a Win ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2012, 23:32 |
|
FoxPro 2.6 Win: Совместная работа Browse и Button (@Get .. Function..)
|
|||
---|---|---|---|
#18+
Я в свое время, чтобы избавиться от большинства таких глюков, делал примерно так: - каждый набор элементов интерфейса располагается в собственном окне-фрейме - при активизации соответствующего окна - запоминаются все предыдущие назначения клавиатурных макросов, и назначаются те, которые соответствуют данному окну, при деактивизации - возвращаются предыдущие назначения - структура переходов между окнами - линейная, т.е. активизация-деактивизация происходит по дереву Для хранения состояний "предыдущих назначений" использовалась таблица-стек. В принципе, никто не запрещает вместо постоянного запоминания/возврата - заранее прописать все назначения в некую таблицу, и при активизации окна - заливать соответствующие назначения, а при деактивизации - очищать вообще все. Я просто сильно подозреваю, что вы столкнетесь с необходимостью переопределения ESC, ENTER, +/-TAB и т.д. И тут проблема встанет во весь рост: либо пользоваться переназначениями, либо строить логику работы интерфейса не "как хочется, как в VFP", а анализируя множество состояний... Да, забыл - рассуждения относились к FoxPro 2.6a DOS ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2012, 00:20 |
|
FoxPro 2.6 Win: Совместная работа Browse и Button (@Get .. Function..)
|
|||
---|---|---|---|
#18+
AndreTMЯ в свое время, чтобы избавиться от большинства таких глюков, делал примерно так: - каждый набор элементов интерфейса располагается в собственном окне-фрейме - при активизации соответствующего окна - запоминаются все предыдущие назначения клавиатурных макросов, и назначаются те, которые соответствуют данному окну, при деактивизации - возвращаются предыдущие назначения - структура переходов между окнами - линейная, т.е. активизация-деактивизация происходит по дереву Для хранения состояний "предыдущих назначений" использовалась таблица-стек. В принципе, никто не запрещает вместо постоянного запоминания/возврата - заранее прописать все назначения в некую таблицу, и при активизации окна - заливать соответствующие назначения, а при деактивизации - очищать вообще все. Я просто сильно подозреваю, что вы столкнетесь с необходимостью переопределения ESC, ENTER, +/-TAB и т.д. И тут проблема встанет во весь рост: либо пользоваться переназначениями, либо строить логику работы интерфейса не "как хочется, как в VFP", а анализируя множество состояний... Да, забыл - рассуждения относились к FoxPro 2.6a DOS Спасибо большое за примерный алгоритм. К сожалению, переходить на VFP пока нет возможности. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2012, 09:08 |
|
|
start [/forum/topic.php?fid=41&msg=37972100&tid=1583433]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 414ms |
0 / 0 |