Tstringgrid控件中,当鼠标移到某一Cell[i,j],能不能显示showhint,每一Cell[],显示的内容不一样
解决方案 »
- Function needs result type 明明有 result...
- ClientDataSet1加载数据,统计事件错误:ClientDataSet1: Dataset not in edit or insert mode.
- 如何为webbrowser设置超时
- delphi 中调用cgi 使用get或post方法
- 求获取指定路径所有文件夹和文件的程序,谢谢
- 在dbgrid的滚动时自动保存更改前提示是否保存更改
- 谁手头上有通用查询的编码?界面和功能好的话,可以再加100。
- Delphi中怎么使DateTimePicker控件中选择的日期与机器现有时间进行比较大小
- 有什么函数可以将输入的字符串'A4'得到DMPAPER_A4 ?
- 连接SQL数据库的问题
- 在线等
- 问一下用Delphi连接sql server的菜问题!
当鼠标移动到stringgrid上的时候,你判断行列,改变你的hint就可以了
StringGrid1.Hint:=StringGrid1.Cells[StringGrid1.row,StringGrid1.col];
THintInfor=class
public:
constructor Create(hint:string);
Hint:string;
end;
TForm1.Create(AOwner);
var
i,j:integer;
begin
for i:=0 to tstringgrid1.rowcount-1 do
for j:=0 to tstringgrid1.colcount-1 do
tstringgrid1.objects[i,j]:=thintinfor.create('Row:'+inttostr(i)+'Col:'+inttostr(j));
end;
tform1.stringgrid1mousemover(X,Y:integer);
var
temp:THintInfor;
begin
temp:=Tstringgrid1.Objects[tsringgrid1.mousetocell(x,y).x,tsringgrid1.mousetocell(x,y).y];
if assigned(temp) then stringgrid.hint:=temp.hint;
end;
最后别忘了在程序退出的时候释放全部的thintinfor.上面的代码是我随手写的,估计有一些小错,见谅。
保存当前鼠标位置的变量MouseX,MouseY:Integer;
当前鼠标选中的行和列:AtRow,AtCol: Integer;2、设置TStringGrid的OnMouseMove处理:procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
Begin
MouseX:=X;
MouseY:=Y;
End;3、设置TStringGrid的OnClick处理(或OnMouseDown、OnMouseUp,根据需要):procedure TForm1.StringGrid1Click(Sender: TObject);
begin
StringGrid1.MouseToCell(MouseX,MouseY,AtRow,AtCol);
{AtRow,AtCo就是选中的Cell}
end;
X, Y: Integer);
var
ARow,ACol:Intger;
begin
StringGrid1.MouseToCell(X,Y,ARow,ACol);
StringGrid1.Hint:=HintString[ARow,ACol];
end;