[h=2][/h] تغییر Hint برای هر ستون از DBGrid در دلفی ابتدا باید یک عنصر جدید مبتنی بر TDBGrid ایجاد کنید و رویداد OnMouseMove را فراخوانی کنید: type TMyDBGrid = class(TDBGrid) published property OnMouseMove; end; اگرچه شما در رویداد OnMouseMove مختصات X و Y را بدست خواهید آورد، اما شما باید ستون مورد نظر را پیدا کنید. برای ادامه کار لازم است که سطر زیر را در قسمت protected قرار دهید: procedure WMMouseMove(var Message : TWMMouse); message WM_MOUSEMOVE; همچنین متغیر های زیر را در قسمت public اضافه نمایید: MouseRow : integer; MouseCol : integer; بنابراین متد WMMouseMove بصورت ریر خواهد بود: procedure TMyDBGrid.WMMouseMove(var Message : TWMMouse); var t : TGridCoord; begin t := MouseCoord(Message.XPos, Message.YPos); MouseCol := t.x; MouseRow := t.y; inherited; end; ما ابتدا فیلدهای XPost و YPos را از ساختار WMMouseMove تنظیم میکنیم: procedure TForm2.MyDBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if (((dgIndicator in MyDBGrid1.Options) and (MyDBGrid1.MouseCol > 0)) or ((not (dgIndicator in MyDBGrid1.Options)) and (MyDBGrid1.MouseCol <> -1))) and (MyDBGrid1.MouseCol <> OldMouseCol) then begin OldMouseCol := MyDBGrid1.MouseCol; if dgIndicator in MyDBGrid1.Options then MYDBGrid1.Hint := MyDBGrid1.Columns[MyDBGrid1.MouseCol - 1].FieldName else MYDBGrid1.Hint := MyDBGrid1.Columns[MyDBGrid1.MouseCol].FieldName; end; end; حالا مجددا" تعریف زیر را در قسمت public قرار دهید: HintMouseMessage(Control : TControl; var Message : TMessage) در قسمت OnMouseMove از TDBGrid نیز فرامین زیر را اضافه نمایید: var r : TMessage; begin Application.HintMouseMessage(self, r); TWMMouse(r).XPos := X; TWMMouse(r).YPos := Y; Application.HintMouseMessage(MyDBGrid1, r); end;