Вниз
Скачать: CL | DM;

Фокус в 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 вся ветка

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



Память: 0.45 MB
Время: 0.007 c
15-1256112238
vajo
2009-10-21 12:03
2009.12.20
Вопрос по Windows


15-1255934035
AlexDan
2009-10-19 10:33
2009.12.20
Программисты Европы будут отвечать за свои ошибки


4-1225282594
Н_А
2008-10-29 15:16
2009.12.20
winAPI


2-1256925793
-
2009-10-30 21:03
2009.12.20
Узнать версию OC.


15-1255799077
interrupt
2009-10-17 21:04
2009.12.20
неполадки монитора




   Наверх