Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подкрашивание строк в grid при удержании клавиши shift / 5 сообщений из 5, страница 1 из 1
31.05.2005, 09:15:57
    #33091744
Katya_G
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подкрашивание строк в grid при удержании клавиши shift
Зравствуйте!
Хотелось бы, чтобы пока удерживается клавиша 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
31.05.2005, 11:56:28
    #33092183
Андрей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подкрашивание строк в grid при удержании клавиши shift
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
31.05.2005, 12:14:10
    #33092241
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подкрашивание строк в grid при удержании клавиши shift
Katya_G
Прописываю в keypress формы :
...
Работает плохо: отпускаешь shift - продолжает красить, и т.д.
Что не так?
Если ты перекрываешь стандартный обработчик события KeyPress, то нужно подавить эту самую стандартную обработку. Для этого в твоем коде поставь команду

NODEFAULT

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

В противном случае у тебя получается двойная работа: сначала ты сама даешь команду SKIP -1, а потом выполняется обработка по умолчанию, соответствующая клавишам Shift+"стрелка вверх"
...
Рейтинг: 0 / 0
31.05.2005, 19:20:17
    #33093498
po2
po2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подкрашивание строк в grid при удержании клавиши shift
Мне думается виновата начинка назначенная в 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
01.06.2005, 13:25:30
    #33094778
Katya_G
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подкрашивание строк в grid при удержании клавиши shift
Спасибо всем большое! Особенно за примерчик :)
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подкрашивание строк в grid при удержании клавиши shift / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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