powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Правильный синтаксис
7 сообщений из 7, страница 1 из 1
Правильный синтаксис
    #33183842
men dea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знаю, что вместо KEYBOARD(CHR(9)) можно написать KEYBOARD('{TAB}') и т.п.
А как правильно записать условие проверки, (напр. нажата клавиша TAB), используя не цифровой код клавиши, а буквенное обозначение кнопки.

Нагляднее же будет не LASTKEY()=9, а LASTKEY() = {TAB}. Только здесь с правописанием у меня проблемка. :)
Подскажите, pls, правильный синтаксис.

------
PS Всем, кто меня подружил с PageFrame и буферизацией, thanks. Все работает, как надо. :)
...
Рейтинг: 0 / 0
Правильный синтаксис
    #33183872
делаешь что-то типа
Код: plaintext
1.
2.
3.
4.
5.
#define KEY_TAB  9 
IF LASTKEY() = KEY_TAB
...
ELSE
...
ENDI
...
Рейтинг: 0 / 0
Правильный синтаксис
    #33185007
men dea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, но не то.
В Фоксе есть сдандартный набор уже определенных названий клавиш: TAB, ENTER, ESC и т.п. Я хочу использовать уже готовенький набор, а не определять самому.
Только не разобрался с синтаксисом.
Например, тот же KEYBOARD('{ESC}') работает и без #define ESC 27.
А как устроить проверку на стрелку вправо, влево, PgDn и т.п.
...
Рейтинг: 0 / 0
Правильный синтаксис
    #33185039
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никак.

Синтаксис вида "{TAB}" предполагает передачу этого значение как параметра в некую команду или функцию. Т.е. это не синтаксис собственно FoxPro, а синтаксис отдельных команд FoxPro.

Заметь, ты передаешь некую символьную строку, разбор которой происходит внутри функции или команды (ON KEY LABEL, KEYBOARD())

А что возвращает функция LastKey()? Она возвращает число. Значит сравнивать его надо с числом и никак иначе.
...
Рейтинг: 0 / 0
Правильный синтаксис
    #33185765
men dea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жаль, конечно.
Несколько странно, что на это в ФоксПро нет готовых директив препроцессора (кажется так это называется?), чтобы не помнить и искать цифровую кодировку отдельных клавиш, а подставить просто буквенное название кнопки.

Но если я все-таки могу производить передачу значения (параметра) с синтаксисом вида "{TAB}" в некую команду, (например, KEYBOARD), то очень логично было бы наличие и обратного действия? Ведь где-то же хранятся все эти '{TAB}' и откуда-то ФОКС находит, что это девятка?
...
Рейтинг: 0 / 0
Правильный синтаксис
    #33185887
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий Маликов

#define KEY_TAB 9




Если это не использование директивы препроцессора, то что это? Или сейчас это как-то по другому называется?
...
Рейтинг: 0 / 0
Правильный синтаксис
    #33185901
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi men dea!

В фоксе есть файл констант, только загнать туда все клавиатурные комбинации
в голову никому не пришло - очевидно ещё и потому что из
#DEFINE F1 28
#DEFINE ALT ???И что тут писать???
Никак нельзя склепать код типа IF LASTKEY() = ALT + F1
А определять все возможные комбинации (описанные в хелпе к INKEY()) в виде
#DEFINE F1
#DEFINE ALT_F1
#DEFINE CTRL_F1
....

Это получится огромная и IMHO малополезная простыня.
Уж если тебе так нравится писать "по человечески" - напиши свою функцию,
типа GetKK("ALT+F1") где и занимайся "разбором" этой строки, и потом по
таблице кодов, или через массив производи "перекодирование". Это сделать -
работы на пол-часа :)

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Правильный синтаксис
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]