Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2007, 17:54   #1
chingiz
Пользователь Подтвердите свой е-майл
 
Аватар для chingiz
 
Регистрация: 21.05.2007
Сообщений: 88
По умолчанию Кто подскажет про (Grid)

Нужно щелчком ПРАВОЙ клавиши мыши по шапке Grida узнать по какой колонке нажали. Подскажите пожалуйста как это можно сделать!!??
Уже Чему-то научился Но этого мало

Последний раз редактировалось chingiz; 21.05.2007 в 22:23.
chingiz вне форума Ответить с цитированием
Старый 22.05.2007, 10:18   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Александр Чиндяев Посмотреть сообщение
Нужно щелчком ПРАВОЙ клавиши мыши по шапке Grida узнать по какой колонке нажали. Подскажите пожалуйста как это можно сделать!!??
для DBgrid что-то в этом роде:
if button = mbRight then if dbgrid1.MouseCoord(X,Y).Y = 0 then ShowMessage(inttostr(dbgrid1.MouseC oord(X,Y).X));
pu4koff вне форума Ответить с цитированием
Старый 22.05.2007, 21:37   #3
chingiz
Пользователь Подтвердите свой е-майл
 
Аватар для chingiz
 
Регистрация: 21.05.2007
Сообщений: 88
По умолчанию

Я наверное сразу некорректно задал вопрос. Вобщето по удару правой клавиши мне нужно узнать Column.FieldName, но за ответ большое спасибо, я думаю пригодится!
Уже Чему-то научился Но этого мало
chingiz вне форума Ответить с цитированием
Старый 22.05.2007, 22:39   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

кстати, чего-то не написал, что надо на KeyDown вешать это
ну чтобы найти Column.FieldName надо:
if (button = mbRight)and(dbgrid1.MouseCoord(X,Y) .Y = 0)
then ShowMessage(dbgrid1.columns[dbgrid1.MouseCoord(X,Y).X-1].FieldName)
зы. могу ошибаться, тк. писал прямо здесь, но принцип такой
pu4koff вне форума Ответить с цитированием
Старый 22.05.2007, 22:50   #5
chingiz
Пользователь Подтвердите свой е-майл
 
Аватар для chingiz
 
Регистрация: 21.05.2007
Сообщений: 88
По умолчанию

Спасибо, мысль уловил. Завтра попробую, потом скажу что получилось, сегодня башка уже не варит. Спокойной ночи, я пошол спать.
Уже Чему-то научился Но этого мало
chingiz вне форума Ответить с цитированием
Старый 23.05.2007, 17:48   #6
chingiz
Пользователь Подтвердите свой е-майл
 
Аватар для chingiz
 
Регистрация: 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 запрос на изменение параметров полей таблицы БД. Еще раз спасибо за помощь !!!!!
Уже Чему-то научился Но этого мало
chingiz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто мне подскажет как сделать так чтобы... 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