![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подсказка для конкретной записи.
TrainerOfDolphins © (2006-02-14 11:13:00)Доброго!
Подскажите, пожалуйста, каким образом можно узнать ID записи, над которой находится в данный момент указатель мыши
в DBGrid'е. Мне нужно вывести хинт для конкретной записи...
Заранее спасибо.
TrainerOfDolphins (2006-02-16 13:13:00) [1]
> Виталий Панасенко (14.02.06 14:47) [5]
Спасиба, вэри мач!
TrainerOfDolphins (2006-02-16 13:11:00) [2]
> Style © (14.02.06 12:43) [2]
Всё это хорошо. Я б до такого сам бы не додул. Но твой метод похоже не позволяет выяснить ID записи, над которой находится мышка (если, конечно, ID не отображён в гриде. А он у меня не отображён как раз :) ). У меня есть свой способ как это сделать, но поскольку я весьма неопытен, боюсь, не делаю ли я лишних движений? Я тебе не показываю свой способ, чтобы не направить твоё мышление в некоструктивное русло :) (потом выложу). Есть какие идеи именно по определению ID? Не обязательно готовый код, хотя бы направление мысли :).
Заранее благодарен.
Виталий Панасенко (2006-02-14 14:47:00) [3]
> TrainerOfDolphins © (14.02.06 13:09) [3]
> Где взять?
www.ehlib.com
TrainerOfDolphins (2006-02-14 13:25:00) [4]
> Style © (14.02.06 12:43) [2]
Пасиба :)
TrainerOfDolphins (2006-02-14 13:09:00) [5]Где взять?
Style (2006-02-14 12:43:00) [6]Ну вот что то типа того:
type
_TCustomDBGrid = class (TCustomDBGrid);
procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
Coord: TGridCoord;
OldRec: integer;
begin
if(Sender is TCustomDBGrid) then
with _TCustomDBGrid(Sender) do
begin
Coord := MouseCoord(X,Y);
OldRec := DataLink.ActiveRecord;
if(Coord.Y > 0) and (Coord.Y <= DataLink.RecordCount) then
DataLink.ActiveRecord := Coord.Y-1;
try
if(Coord.X > 0) and (Coord.X <= Columns.Count) then
begin
if(Hint <> Columns[Coord.X-1].Field.AsString) then
begin
Hint := Columns[Coord.X-1].Field.Value;
end;
Application.ActivateHint(Point(X,Y));
ShowHint := true;
end;
finally
DataLink.ActiveRecord := OldRec;
end;
end;
end;
Sergey13 (2006-02-14 11:18:00) [7]В EhLib-овском гриде - это реализовано. Можно юзать (до версии 3.6 бесплатно) можно смотреть реализацию.