Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подсказка для конкретной записи.


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 бесплатно) можно смотреть реализацию.


Наверх

Титульная страница Поиск, карта сайта Написать письмо