Форум: "Основная";
Текущий архив: 2009.12.20;
Скачать: [xml.tar.bz2];
ВнизФокус в DBGrid Найти похожие ветки
← →
parasolka (2008-12-19 11:46) [0]Здравствуйте. В OnMouseMove грида происходит перебор записей DataSet, к которому подключен грид, поэтому фокус на гриде идет за курсором, что не очень удобно и некрасиво. Как мне отключить фокус на это время, но чтоб по OnClick грида фокусировалась и фокус оставалась в таком состоянии до следующего OnClick?
← →
Сергей М. © (2008-12-19 13:28) [1]см. TDataSet.Disable/EnableControls + TDataSet.Get/Goto/FreeBookmark
← →
parasolka (2008-12-19 13:53) [2]Пробовал. Дело в том, что мне надо отображать Hint, если запись в ячейке не помещается. Делаю это следующим образом.
procedure TfrmMain.grdListMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
ScrPt, GrdPt: TPoint;
Cell: TGridCoord;
s: string;
w, len: Integer;
begin
ScrPt:=Mouse.CursorPos;
GrdPt:=grdList.ScreenToClient(ScrPt);
Cell:=grdList.MouseCoord(GrdPt.X, GrdPt.Y);
if (Cell.X>0) and (Cell.Y>0) and (dmMain.qryList.Active) then begin
dsList.DataSet.First;
dsList.DataSet.MoveBy(Cell.Y-1);
s:=grdList.Columns[Cell.X-1].Field.Value;
w:=grdList.Columns[Cell.X-1].Width;
len:=grdList.Canvas.TextWidth(s);
if len>w then begin
grdList.ShowHint:=True;
grdList.Hint:=s;
end
else begin
grdList.ShowHint:=False;
end;
end;
end;
Так вот, если использовать предложенный метод, то отображение Hint происходит некорректно, т. е. отображается не всегда.
← →
Сергей М. © (2008-12-19 14:00) [3]Хинты грида никак не связаны с методами дейтасета, упомянутыми в [1]
> отображается не всегда
Значит, судя по приведенному тобой коду, не всегда истинно условиеlen>w
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2009.12.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c