![]() |
|
#1
|
||||
|
||||
![]() Доброго времени суток!
Помогите, пожалуйста, решить проблемку: нужно содержимое ячеек вывести в Hint... Реализовано, НО: экран постоянно мерцает + нельзя перейти к нижним записям, не убирающимся на экран, особенно при использовании колесика мыши (как бы выталкивает наверх, в область, ограниченную экраном) Код:
private procedure AppMess(var Msg: TMsg; var Handled: Boolean); { Private declarations } public Код:
procedure TfmChild1.AppMess(var Msg: TMsg; var Handled: Boolean); var X, Y: integer; gpt: TGridCoord; s: string; w, len: integer; begin if Msg.message=WM_MOUSEMOVE then begin if Msg.hwnd=DBGrid1.Handle then begin x:=LoWord(Msg.lParam); y:=HiWord(Msg.lParam); gpt:=DBGrid1.MouseCoord(x,y); if (gpt.x>0) and (gpt.y>0) then begin DataSource2.DataSet.First; DataSource2.DataSet.MoveBy(gpt.y-1); s:=FmMain.ADOQuery1.Fields[gpt.x-1].asString; w:=DBGrid1.Columns[gpt.x-1].Width; len:=DBGrid1.Canvas.TextWidth(s); if len > w then DBGrid1.Hint:=s else DBGrid1.Hint:=''; end; end; end; end; Код:
procedure TfmChild1.FormCreate(Sender: TObject); begin DBGrid1.ShowHint := True; Application.OnMessage := AppMess; end; Memento Mori(арти) |