Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.11.14;
Скачать: CL | DM;

Вниз

Как прочитать данные из ячейки DBGRID   Найти похожие ветки 

 
03111978   (2010-08-17 11:18) [0]

Как узнать значение ячейки в DBGrid, по которой мы нажали правую клавишу мыши и как узнать название столбца ?


 
03111978   (2010-08-17 11:34) [1]

наверное все таки нужно узнать название столбца


 
Ega23 ©   (2010-08-17 11:49) [2]

1. В DBGrid нет никаких данных.
2. SelectedField + F1


 
03111978   (2010-08-17 14:21) [3]

получается узнать только название первого поля, а мне нужно то, по которому я клякнул


 
Германн ©   (2010-08-17 14:35) [4]

Есть ли в DBGrid.Options значение dgRowSelect?


 
Плохиш ©   (2010-08-17 20:17) [5]

Насколько помню, при нажатии правой кнопки в любом месте dbgrid, активная ячейка своего положения не меняет.


> Как узнать значение ячейки в DBGrid

Ещё одного иванушку за чудом послали...


 
Германн ©   (2010-08-17 20:38) [6]


> Насколько помню, при нажатии правой кнопки в любом месте
> dbgrid, активная ячейка своего положения не меняет.

Меняет. Но OnClick не вызывается.


 
Игорь Шевченко ©   (2010-08-17 22:14) [7]

Могу посочувствовать - DBGrid не вызывает пользовательского обработчика MouseDown, а на MouseUp вполне себе (это в случае, если нет RowSelect в опциях):

procedure TfMain.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 if Button = mbRight then
   if Assigned(DBGrid1.SelectedField) then
     ShowMessage(DBGrid1.SelectedField.AsString);
end;


 
Германн ©   (2010-08-17 22:23) [8]


> ShowMessage(DBGrid1.SelectedField.AsString);

Или
ShowMessage(DBGrid1.SelectedField.FieldName);


 
Игорь Шевченко ©   (2010-08-17 22:26) [9]

Впрочем, для RowSelect в опциях тоже не очень сложно

type
 TDBGridCrack = class(TCustomDBGrid)
 end;

procedure TfMain.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
var
 Cell: TGridCoord;
 Column: TColumn;
begin
 if Button = mbRight then
   if not (dgRowSelect in DBGrid1.Options) then
   begin
     if Assigned(DBGrid1.SelectedField) then
       ShowMessage(DBGrid1.SelectedField.AsString);
   end
   else
   begin
     Cell := DBGrid1.MouseCoord(X, Y);
     if Cell.X >= TDBGridCrack(DBGrid1).LeftCol then
     begin
       Column := DBGrid1.Columns[Cell.X - TDBGridCrack(DBGrid1).LeftCol];
       ShowMessage(Column.Field.AsString);
     end;
   end;
end;


 
Leonid Troyanovsky ©   (2010-08-17 22:34) [10]


> Ega23 ©   (17.08.10 11:49) [2]

> 1. В DBGrid нет никаких данных.

Там немного данных есть.
See also: DataLink property.

--
Regards, LVT.


 
Германн ©   (2010-08-18 02:53) [11]


> Игорь Шевченко ©   (17.08.10 22:14) [7]
>
> Могу посочувствовать - DBGrid не вызывает пользовательского
> обработчика MouseDown

А может и не надо сочувствовать, а нужно обратить внимание на событие OnPopUp?


 
KilkennyCat ©   (2010-08-18 03:18) [12]


> Германн ©   (18.08.10 02:53) [11]

и в каком случае оно вызовется?


 
Германн ©   (2010-08-18 03:39) [13]


> KilkennyCat ©   (18.08.10 03:18) [12]
>
>
> > Германн ©   (18.08.10 02:53) [11]
>
> и в каком случае оно вызовется?
>

Ну...
Как правило, правая кнопка мыши используется для вызова контекстного (PopUp) меню. Другое стандартное использование этой кнопки при нажатии в области стандартного компонента мне неизвестно.
P.S.  И задача автора до сих пор неизвестна.


 
KilkennyCat ©   (2010-08-18 04:27) [14]

мне почему-то кажется, что вызовется оно в случае наличия присутствия попап-меню. Да и уже после его выскакивания. Да и собственно, это его событие, а не грида.


 
Германн ©   (2010-08-18 05:01) [15]


> KilkennyCat ©   (18.08.10 04:27) [14]
>
> мне почему-то кажется, что вызовется оно в случае наличия
> присутствия попап-меню. Да и уже после его выскакивания.
>

Вызовется до "выскакивания". Проверено.



Страницы: 1 вся ветка

Текущий архив: 2010.11.14;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.009 c
2-1282423057
Rembo
2010-08-22 00:37
2010.11.14
Наследование: вызов метода потомка через родителя


2-1282078522
Jimmy
2010-08-18 00:55
2010.11.14
Компонент Button


15-1280819654
ixen
2010-08-03 11:14
2010.11.14
Firebird SQL запрос


10-1169756215
Asail
2007-01-25 23:16
2010.11.14
Неполный список книг в Excel 2003


2-1281521447
unknow
2010-08-11 14:10
2010.11.14
Как избежать повторного ввода данных в базу?