Доброго времени суток!
Помогите, пожалуйста, решить проблемку: нужно содержимое ячеек вывести в 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;