|
Вопрос # 4 745/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Скажите, пожалуйста, как в StringGrid в SelectCell определить нажата ли клавиша Shift?
GetKeyState(VK_CONTROL) < 0 работает, а GetKeyState(VK_SHIFT) < 0 - нет...
 |
Вопрос задал: ilnur (статус: Посетитель)
Вопрос отправлен: 18 ноября 2010, 00:06
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: VJe@n
отлавливать в OnKeyDown
вроде так:
procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ssShift in Shift then begin
// ... code
end;
end;
 |
Ответ отправил: VJe@n (статус: 1-ый класс)
Время отправки: 18 ноября 2010, 03:27
Оценка за ответ: 4
Комментарий к оценке: Спасибо, я в курсе этого способа, но мне надо было в SelectCell...
|
Ответ #2. Отвечает эксперт: min@y™
Событие TStringGrid.OnSelectCell предназначено не для этого. Используй OnMouseDown и/или OnMouseUp, в них есть параметр Shift: TShiftState.
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 18 ноября 2010, 08:27
Оценка за ответ: 5
Комментарий к оценке: Спасибо, я знаю, меня это интересовало,чтобы обработать выделение с удержанием shift, похоже SelectCell при удержании shift вообще не работает, OnMouseDown и/или OnMouseUp происходят после SelectCell.
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 18 ноября 2010, 09:39; участников в обсуждении: 3.
|
ilnur (статус: Посетитель), 18 ноября 2010, 00:09 [#1]:
... GetAsyncKeyState(VK_SHIFT) < 0 также не работает...
|
|
Ерёмин А.А. (статус: *Администратор), 18 ноября 2010, 09:23 [#2]:
ilnur: возможно, будут работать VK_LSHIFT и VK_RSHIFT.
|
|
ilnur (статус: Посетитель), 18 ноября 2010, 09:30 [#3]:
Спасибо Еремин А.А! С утра я еще не включал комп с Дельфи, но как помню с вечера, по последним своим наблюдениям, при нажатии и удержании Shift SelectCell вообще не работает...
|
|
min@y™ (статус: Доктор наук), 18 ноября 2010, 09:39 [#4]:
Цитата (min@y™):
OnMouseDown и/или OnMouseUp происходят после SelectCell.
Всё правильно, поэтому пользуйся OnMouseDown и/или OnMouseUp и будет всё в шоколаде.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|