| 
| 
 | Вопрос # 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. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |