Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.012 c
2-1237739173
dron9999
2009-03-22 19:26
2009.05.03
Как в мемо удалять текст по 1-й букве с концa


2-1237898311
Андрей (начинающий)
2009-03-24 15:38
2009.05.03
Отображение ListView с большим количеством строк


2-1237379034
madmech
2009-03-18 15:23
2009.05.03
Хинты в DBGrid


15-1235991795
alex_r
2009-03-02 14:03
2009.05.03
calligraphic pen


8-1193561865
kas86
2007-10-28 11:57
2009.05.03
Вопрос по JPEG из DLL




   Наверх