Форум: "Начинающим";
Текущий архив: 2009.05.03;
Скачать: [xml.tar.bz2];
ВнизХинты в 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c