![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ячейка DBGrid а [D2]
ds © (2002-12-03 13:27:00)Как в DBGrid"е узнать над каким полем(колонкой) висит мышь?
Заранее спасибо.
Бурундук (2002-12-03 16:47:00) [1]...
FieldText: string;
DLink: TDataLink;
OldActiveRec: Integer;
...
Cell := DBGrid.MouseCoord(GrdPt.X, GrdPt.Y);
FieldText := "";
DLink := THackDBGrid(DBGrid).DataLink;
if Assigned(DLink) then
begin
if (Cell.X <= 0)or(Cell.Y <= 0) then Exit;
OldActiveRec := DLink.ActiveRecord;
try
DLink.ActiveRecord := Cell.Y-1{TitleOffset};
FieldText := DBGrid.Columns[Cell.X-1{IndicatorOffset}].Field.Text;
finally
DLink.ActiveRecord := OldActiveRec;
end;
end;
ds (2002-12-03 15:34:00) [2]> stone ©
Логично...
stone (2002-12-03 15:32:00) [3]2 ds (03.12.02 15:17)
DBGrid.Columns[Cell.X-1].Field.Text;
вернет значение поля из записи в датасете на которой установлен курсор датасета, а не значение ячейки над которой находится курсор мыши
ds (2002-12-03 15:17:00) [4]> stone
если имеется ввиду значение поля, то
DBGrid.Columns[Cell.X-1].Field.Text;
только нужно проверить допустимость значения Cell.X
----
А как можно узнать координаты области ячейки DBGrid"а?
stone (2002-12-03 15:03:00) [5]2 Бурундук (03.12.02 14:24)
в продолжение темы.
А как таким образом получить значение данной ячейки?
ds (2002-12-03 14:32:00) [6]Спасибо!
Бурундук (2002-12-03 14:24:00) [7]var ScrPt, GrdPt: TPoint;
Cell: TGridCoord;
begin
ScrPt := Mouse.CursorPos;
GrdPt := DBGrid.ScreenToClient(ScrPt);
Cell := DBGrid.MouseCoord(GrdPt.X, GrdPt.Y);
// Col := Cell.X;
// Row := Cell.Y;
end;
Skier (2002-12-03 14:23:00) [8]>ds
см. TDBGrid.OnMouseMove(...) и
TDBGrid.MouseCoord(...)
ds (2002-12-03 13:42:00) [9]>ЮЮ
Я имел ввиду где она висит в отдельно взятый момент движения.
ЮЮ (2002-12-03 13:36:00) [10]В стандартных Gridах можно узнать только над какой ячейкой движется или над какой ячейкой нажали/отпустили мышь, а вот где висит?