Форум: "Начинающим";
Текущий архив: 2010.11.14;
Скачать: [xml.tar.bz2];
ВнизКак прочитать данные из ячейки 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c