Кто работает с TrueDBGrid, помогите.

Создание, использование компонентов ActiveX
Kostyan
Постоялец
Постоялец
 
Сообщения: 439
Зарегистрирован: 20.09.2002 (Пт) 4:14
Откуда: Россия, Уссурийск

Кто работает с TrueDBGrid, помогите.

Сообщение Kostyan » 04.06.2006 (Вс) 8:10

Никак не могу понять, каким образом реагировать на нажатие правой кнопкой мыши по строке в таблице. Дело в том что событие MouseDown для TrueDBGrid происходит даже в том случае, когда пользователь щелкает мышью по заголовку или бордюру контрола, а мне необходимо вызывать контекстное меню для записи.
Вторая проблема заключается в том, что выделение строки происходит только щелчком левой кнопки мыши, а мне необходимо и правой.
Кто может подсказать?
Нет ничего невозможного для человека с интеллектом.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 04.06.2006 (Вс) 10:55

Из MouseDown известны координаты клика.
PointAt - возвращает тип области под координатами,
ColContaining - колонку,
RowContaining - строку.

TrueDBGrid содержит подробнейший хелп, обращайся в первую очередь к нему. Он поможет тебе ответить на второй вопрос.
Лучший способ понять что-то самому — объяснить это другому.

Kostyan
Постоялец
Постоялец
 
Сообщения: 439
Зарегистрирован: 20.09.2002 (Пт) 4:14
Откуда: Россия, Уссурийск

Сообщение Kostyan » 05.06.2006 (Пн) 6:47

Спасибо большое! Жаль не приучили меня с детства читать хелпы, тем более такие большие как у TrueDBGrid :)
Дабы не тратить время на поиск, может подскажешь как выделять строку не только левой кнопкой мыши, но и правой?
Нет ничего невозможного для человека с интеллектом.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.06.2006 (Пн) 6:55

Предлагаю поступить наоборот и потратить время на поиск.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Kostyan
Постоялец
Постоялец
 
Сообщения: 439
Зарегистрирован: 20.09.2002 (Пт) 4:14
Откуда: Россия, Уссурийск

Сообщение Kostyan » 05.06.2006 (Пн) 7:26

Что-то мне подсказывает что в данном контроле подобной возможности вообще не предусмотрено, в той куче примеров, которые идут к нему, ни в одном нельзя выделять запись правой кнопкой мыши. Боюсь что поиски будут бесполезными, вдруг до меня кто-то уже прошел этот путь, почему-бы не поделиться опытом.
Нет ничего невозможного для человека с интеллектом.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 05.06.2006 (Пн) 9:21

Тебя должны были с детства приучить пользоваться головой, а хелпы должен читать сам.

Раз есть выделенная строка, значит есть способ. Даю еще подсказку в дополнение к первой. GetBookmark.

Это не ответ на твой вопрос, но еще один шаг (предпоследний) к решению.
Лучший способ понять что-то самому — объяснить это другому.

Kostyan
Постоялец
Постоялец
 
Сообщения: 439
Зарегистрирован: 20.09.2002 (Пт) 4:14
Откуда: Россия, Уссурийск

Сообщение Kostyan » 06.06.2006 (Вт) 11:07

Закритиковал... А я между тем уже сам допетрил как это делается :)
Но всё-равно спасибо за помощь.

Вдруг кому понадобится:
Код: Выделить всё
If Button = 2 And TDBGrid1.PointAt(X, Y) = dbgAtDataArea And TDBGrid1.RowContaining(Y) <> -1 Then
   TDBGrid1.Bookmark = TDBGrid1.RowBookmark(TDBGrid1.RowContaining(Y))
End If
Нет ничего невозможного для человека с интеллектом.


Вернуться в Компоненты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList