powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подкрашивание строк в grid при удержании клавиши shift
5 сообщений из 5, страница 1 из 1
Подкрашивание строк в grid при удержании клавиши shift
    #33091744
Katya_G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зравствуйте!
Хотелось бы, чтобы пока удерживается клавиша shift при перемещении по строкам грида они подкрашивались (как в totalcommander например).

Прописываю в keypress формы :

LPARAMETERS nKeyCode, nShiftAltCtrl

IF this.ActiveControl.name="Grid1"

DO case
CASE nShiftAltCtrl=1.and.nKeyCode=56 &&код стрелки вверх
SKIP -1

this.ActiveControl.setall("dynamicbackcolor", ..., "column")
&& то же для стрелки вниз
ENDCASE

ENDIF

Работает плохо: отпускаешь shift - продолжает красить, и т.д.
Что не так?
Спасибо.
...
Рейтинг: 0 / 0
Подкрашивание строк в grid при удержании клавиши shift
    #33092183
Андрей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katya_GЗравствуйте!
Хотелось бы, чтобы пока удерживается клавиша shift при перемещении по строкам грида они подкрашивались (как в totalcommander например).

Прописываю в keypress формы :

LPARAMETERS nKeyCode, nShiftAltCtrl

IF this.ActiveControl.name="Grid1"

DO case
CASE nShiftAltCtrl=1.and.nKeyCode=56 &&код стрелки вверх
SKIP -1

this.ActiveControl.setall("dynamicbackcolor", ..., "column")
&& то же для стрелки вниз
ENDCASE

ENDIF

Наверное, нужно рассмотреть ещё один Case:
CASE nShiftAltCtrl=0 && Shift отпущен
где
this.ActiveControl.setall("dynamicbackcolor", ..., "column") - как-то отменить

Работает плохо: отпускаешь shift - продолжает красить, и т.д.
Что не так?
Спасибо. автор
...
Рейтинг: 0 / 0
Подкрашивание строк в grid при удержании клавиши shift
    #33092241
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katya_G
Прописываю в keypress формы :
...
Работает плохо: отпускаешь shift - продолжает красить, и т.д.
Что не так?
Если ты перекрываешь стандартный обработчик события KeyPress, то нужно подавить эту самую стандартную обработку. Для этого в твоем коде поставь команду

NODEFAULT

В тех местах, где ты пишешь собственную обработку.

В противном случае у тебя получается двойная работа: сначала ты сама даешь команду SKIP -1, а потом выполняется обработка по умолчанию, соответствующая клавишам Shift+"стрелка вверх"
...
Рейтинг: 0 / 0
Подкрашивание строк в grid при удержании клавиши shift
    #33093498
po2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
po2
Гость
Мне думается виновата начинка назначенная в DynamicBackColor , код приведенный для события KeyPress на вид безобиден, хотя его действительно лучше подправить, например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
lPar nKeyCode,;
     nShiftAltCtrl
  if ThisForm.ActiveControl.BaseClass=='Grid'
  do case
case nKeyCode =  56 .and.; && up
     nShiftAltCtrl =  1 
NoDe
keyb '{uparrow}' plai
case nKeyCode =  50 .and.; && down
     nShiftAltCtrl =  1 
NoDe
keyb '{dnarrow}' plai
endc 
endi   
Так не придется самому обрабатывать случай достижения начала или конца таблицы, когда лишний skip вызывает ошибку. Назначать всякий раз DynamicBackColor не нужно. Достаточно придумать способ хранения номеров отмеченных записей. Сказанное иллюстрируется простейшим примером из прицепа. Более сложные манипуляции с записями Grid'а можно посмотреть в Решениях на www.foxclub.ru . Точную ссылку дать не могу, т.к. FoxClub сейчас недоступен.
...
Рейтинг: 0 / 0
Подкрашивание строк в grid при удержании клавиши shift
    #33094778
Katya_G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем большое! Особенно за примерчик :)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подкрашивание строк в grid при удержании клавиши shift
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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