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

Вниз

Хинты в DBGrid   Найти похожие ветки 

 
madmech ©   (2009-03-18 15:23) [0]

Возникла проблема с DBGrid"ом, а точнее с хинтами к нему. При наведении на определенный элемент в DBGrid (например, на EE) появляется хинт, при смещении указателя он исчезает, как ему и положено и как заложено в код программы. Но! При перемещение ентого указателя в сторону нижнего правого угла, вверху появляется странное мерцание, как будто хинт исчезает и снова появляется.

Код обработчика перемещения мыши:
procedure TMainForm.MDBGridMouseMove(Sender: TObject; Shift: TShiftState;
 X, Y: Integer);              // Обработка перемещения курсора мыши над MDBGrid
var XX, YY, CurRec: integer;
 procedure HideHint;
 begin
   Application.HideHint;
   Exit;
 end;
begin
 XX := MDBGrid.MouseCoord(x,y).x;
 YY := MDBGrid.MouseCoord(x,y).y;
 Label1.Caption := IntToStr(XX) + ", " + IntToStr(YY);
 with THackDBGrid(MDBGrid) do
   begin
       if ((XX <> MDBGrid.Columns.Count - 2) or (YY <> 0)) and
          ((XX <> 3) or (YY <> N2 + 1))  then
         HideHint;
     CurRec := DataLink.ActiveRecord;
     DataLink.ActiveRecord := YY - 1;
       if (XX = MDBGrid.Columns.Count - 2) and (YY = 0) then
         MDBGrid.Hint := "Cоциометрический" + #13 + "          статус";
       if (XX = 3) and (YY = N2 + 1) then
         MDBGrid.Hint := "Эмоциональная" + #13 + "экспансивность";
     Application.ActivateHint(Point(X,Y));
     DataLink.ActiveRecord := CurRec;
   end;
end;


Выглядит таблица и мерцание следующим образом:
http://fo-ma.ru/8/73/59/387359/5.jpg


 
madmech ©   (2009-03-18 15:43) [1]

Проблему решил буквально через 5 минут после того, как написал сообщение, следующим образом:
procedure TMainForm.MDBGridMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);              // Обработка перемещения курсора мыши над MDBGrid
var XX, YY, CurRec: integer;
procedure HideHint;
begin
  MDBGrid.ShowHint := False;
  Exit;
end;
begin
XX := MDBGrid.MouseCoord(x,y).x;
YY := MDBGrid.MouseCoord(x,y).y;
Label1.Caption := IntToStr(XX) + ", " + IntToStr(YY);
with THackDBGrid(MDBGrid) do
  begin
      if ((XX <> MDBGrid.Columns.Count - 2) or (YY <> 0)) and
         ((XX <> 3) or (YY <> N2 + 1))  then
        HideHint;
    CurRec := DataLink.ActiveRecord;
    DataLink.ActiveRecord := YY - 1;
      if (XX = MDBGrid.Columns.Count - 2) and (YY = 0) then
        begin
          MDBGrid.ShowHint := True;
          MDBGrid.Hint := "Cоциометрический" + #13 + "          статус";
        end;
     if (XX = 3) and (YY = N2 + 1) then
        begin
          MDBGrid.ShowHint := True;
          MDBGrid.Hint := "Эмоциональная" + #13 + "экспансивность";
        end;  
    Application.ActivateHint(Point(X,Y));
    DataLink.ActiveRecord := CurRec;
  end;
end;

:)



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

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

Наверх




Память: 0.47 MB
Время: 0.015 c
2-1237890003
Дмитрий Белькевич
2009-03-24 13:20
2009.05.03
В каком контексте выполняется TTread.Create?


2-1238002705
Alex_C
2009-03-25 20:38
2009.05.03
Ограничения ф-ции Pos?


2-1237366631
abhtr
2009-03-18 11:57
2009.05.03
Как распечатать TXT файл


2-1237363573
Darvin
2009-03-18 11:06
2009.05.03
Состояние буфера СОМ порта


15-1235747643
easy
2009-02-27 18:14
2009.05.03
Программер спит