|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.05.2007, 17:54 | #1 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
Кто подскажет про (Grid)
Нужно щелчком ПРАВОЙ клавиши мыши по шапке Grida узнать по какой колонке нажали. Подскажите пожалуйста как это можно сделать!!??
Уже Чему-то научился Но этого мало
Последний раз редактировалось chingiz; 21.05.2007 в 22:23. |
22.05.2007, 10:18 | #2 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Цитата:
if button = mbRight then if dbgrid1.MouseCoord(X,Y).Y = 0 then ShowMessage(inttostr(dbgrid1.MouseC oord(X,Y).X)); |
|
22.05.2007, 21:37 | #3 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
Я наверное сразу некорректно задал вопрос. Вобщето по удару правой клавиши мне нужно узнать Column.FieldName, но за ответ большое спасибо, я думаю пригодится!
Уже Чему-то научился Но этого мало
|
22.05.2007, 22:39 | #4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
кстати, чего-то не написал, что надо на KeyDown вешать это
ну чтобы найти Column.FieldName надо: if (button = mbRight)and(dbgrid1.MouseCoord(X,Y) .Y = 0) then ShowMessage(dbgrid1.columns[dbgrid1.MouseCoord(X,Y).X-1].FieldName) зы. могу ошибаться, тк. писал прямо здесь, но принцип такой |
22.05.2007, 22:50 | #5 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
Спасибо, мысль уловил. Завтра попробую, потом скажу что получилось, сегодня башка уже не варит. Спокойной ночи, я пошол спать.
Уже Чему-то научился Но этого мало
|
23.05.2007, 17:48 | #6 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
УРА!!!!! получилось, я прыгаю до потолка от восторга, а как тут не прыгать, две недели ломал голову над этой задачей перелопатил горы литературы как в бумажном так и в электронном виде (кстати нет ничего лучше обыкновенной книги, которую можно полистать руками) а решение то буквально в двух строчках !!!!!!!
Вот что у меня получилось - все отлично работает ************************ procedure TFGeneralForm.GridMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin //Если нажата правая клавиша мыши на шапке Grid if (Button = mbRight)and(Grid.MouseCoord(X,Y).Y = 0)then //то //Если нажали над колонками, а не по левой оконтовке Grida - а то прога глючит if Grid.MouseCoord(X,Y).X >0 then //то begin //Появляется меню редактирования поля в таблице БД Grid.PopupMenu:=PopupMenu2; //Глобальной переменной UsColumnFieldName := имя редактируемого поля UsColumnFieldName:=Grid.Columns[Grid.MouseCoord(X,Y).X-1].FieldName; end; end; procedure TFGeneralForm.PopupMenu2Popup(Sende r: TObject); begin //Чтобы меню редакт. поля не появлялось при щелчке в другом месте Grida Grid.PopupMenu:=nil; end; ************************* Собственно имя поля мне надо не ради любопытства, а чтобы при обработке OnClick, пунктов контекстного меню, зная имя поля, послать соответствующий SQL запрос на изменение параметров полей таблицы БД. Еще раз спасибо за помощь !!!!!
Уже Чему-то научился Но этого мало
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Кто мне подскажет как сделать так чтобы... | Alexij | Общие вопросы Delphi | 9 | 16.06.2008 12:47 |
Grid | nimf | Общие вопросы Delphi | 2 | 22.04.2008 13:16 |
как создать grid? | romets | Win Api | 12 | 24.01.2008 22:36 |
Я новичок в Delphi,но хор. знаю SQL с прилож. клиент-сервер ктонибудь подскажет? | alsq | Работа с сетью в Delphi | 3 | 11.03.2007 19:03 |
Help!Grid и Edit | Дамир | БД в Delphi | 1 | 16.02.2007 02:05 |