|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.07.2013, 16:20 | #1 |
Пользователь
Регистрация: 23.02.2012
Сообщений: 11
|
Выделение строки в TDrawGrid
Всем привет!
Подскажите, можно ли как то сделать, что бы при щелчке правой кнопки мыши по компоненту TDrawGrid, т.е. строка в этом компоненте выделялась бы так же как и при щелчке левой кнопкой мыши? |
23.07.2013, 06:10 | #2 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,885
|
Обработать событие OnMouseDown, проверить в нём button = bmRight , вычислить с помощью Grid.MouseToCell ячейку поверх которой мышка (с координатами х и у, полученными в событии), и установить col и row свойства грида.
|
23.07.2013, 09:24 | #3 |
Пользователь
Регистрация: 23.02.2012
Сообщений: 11
|
Спасибо. Так все и делал. Именно за последний момент присваивания значение Col и Row для DrawGrid вчера не догнал сразу. Все получилось.
Код:
___________ Код нужно оформлять тегами (для этого на панели форматирования есть кнопка с "решёточкой" #) Модератор Последний раз редактировалось Serge_Bliznykov; 23.07.2013 в 09:31. |
24.07.2013, 06:05 | #4 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,885
|
Код:
Также не совсем понятен ход мысли вычисления клетки (и, соответственно, введения "глобальных переменных" для связи процедур) в обработчике OnMouseMove, ведь ничего не мешает это сделать прямо там же - в OnMouseDown (при этом "глобальные" поля поменять на локальные переменные). П.С. Интересно , Вы с плюсов что ли в дельфи перешли ? А то 4 пробельный идент, использование подчерка(андерскора), разве что условие в ифе не заскобочено ))) Упд. А нет, вру, идент 5-, 6 -пробельный (издалека видно что больше стандартного 2пробельного дельфишного, вот и подумал что 4, не приглядываясь), тогда мой совет последить за форматированием, в частности, отступ для тела условного оператора. Последний раз редактировалось phomm; 24.07.2013 в 06:15. |
24.07.2013, 09:02 | #5 |
Пользователь
Регистрация: 23.02.2012
Сообщений: 11
|
На счет Begin end это я выдрал часть текста с процедуры сюда и пропустил их. Торопился. Сори. По поводу "локальных переменных", они ж в пределах процедуры действуют, а мне они нужны для использования их в других.
if в MouseDown процедуре переменные получают значение Col и Row выбранного грида, то в MouseMove они должны как то передаваться. Насколько я помню, "жизнь локальных переменных в процедурах" в них и завершается. Таким образом, объявив в MouseDown переменные как локальные, MouseMove уже не будет понимать что за переменные ей указывают, не говоря о значениях их. По поводу форматирования, подобный подход нам предложили в институте и мне до сих пор нравится и воспринимается вполне читабельно. Видно что где начинается и где кончается. Pascal изначально стал мне родным, хотя когда то Basic-ом и чуть ассемблером в древние времена баловался. Си как то родным не стал, хоть ничего против него не имею. |
24.07.2013, 09:54 | #6 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,885
|
Если вам нужны переменные и в других процедурах - я ничего против не имею.
Я указываю на то, что для расписанной задачи задействовать OnMouseMove вообще не надо, а можно обойтись только OnMouseDown. Про локальные переменные Вы правы, собственно, это очевидно, но я про них сказал в свете мысли из первого предложения этого поста, так что, мы о разном говорим. Насчёт форматирования и оформления кода http://www.gunsmoker.ru/2010/07/blog-post.html |
25.07.2013, 10:48 | #7 |
Пользователь
Регистрация: 23.02.2012
Сообщений: 11
|
По поводу реализации в OnMouseMove согласен. В свете выше сказанного соединил содержимое с OnMouseMove и MouseMove. Этот вариант пожалуй лучше. Переменные эти у меня еще кое где анализируются, потому и сделал не локальными.
О стиле оформления почитал ссылку и принял к сведению. Попробую Делфийский вариант. Спасибо за помощь Последний раз редактировалось shiva4; 25.07.2013 в 10:53. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выделение строки | frozzy_16 | Microsoft Office Excel | 3 | 18.03.2013 11:42 |
TDrawGrid - как убрать выделенную ячейку? | tiger() | C++ Builder | 0 | 14.06.2011 13:54 |
Выделение строки | Necare | Общие вопросы C/C++ | 0 | 23.04.2011 19:03 |
Выделение строки | M@riy@ | БД в Delphi | 1 | 12.11.2010 19:25 |
Простой пример использования TDrawGrid | bookkc | Помощь студентам | 1 | 17.03.2010 15:51 |