如何实现鼠标在stringgrid上移动时,当鼠标移动到某一个单元格上时(不按鼠标键),这个单元格就得到焦点, 请问如何实现???
解决方案 »
- 我想问问有多少人在使用Delphi面对对象编程--给分100
- 如何远程备份sql数据库到本地?
- 收到BORLAND律师信的同志们 请来发帖
- 在activexform中ado数据库怎样设置,才能让客户端自动连接到WEB服务器?
- 急请各位高手速指教,在线等,有高分送上
- 在重绘TListBox控件列表项的时候怎么重绘聚焦框?
- 数据库里是6位小数,DELPHI里为什么只能输入4位小数?(难道是DELPHI的BUG?)
- PChar和String变量类型的区别
- 小弟有一个做向导的程序,可是有点问题,请大家帮忙. 附:源程序
- win2000进入ring0code 公开,下一步公开"超级cih"的code
- 從表刪除出錯,多多幫忙?
- 打印问题 超级难
Y: Integer);
var T:Tstringgrid;
i,j:integer;
begin
t:=Tstringgrid(dbgrid1);
for i:=0 to t.ColCount-1 do
for j:=0 to t.RowCount-1 do
begin
if (t.CellRect(i,j).Left<x) and (t.CellRect(i,j).Right>x)
and (t.CellRect(i,j).Top<y)
and (t.CellRect(i,j).Bottom>y)
then
begin
t.Col:=i;
t.Row:=j;
end;
end;
end;不过你的dbgrid最好不要滚动,数量尽量少
fCol, fRow : Integer;//定义两个全局变量记录位置
//给变量初始化
procedure TForm1.StringGrid1Enter(Sender: TObject);
begin
fCol := StringGrid1.Col;
fRow := StringGrid1.Row;
end;//判断内容是否合法
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
CanSelect := True;
try
if ((fCol = 3) and (ACol <> 3)) or
((ARow <> fRow) and (ACol = fCol) and (ACol = 3)) then
if StringGrid1.Cells[fCol, fRow] <> '' then
if StrToInt(StringGrid1.Cells[fCol, fRow]) > 1 then//判断单元格内容是否合法
begin
ShowMessage('Error');
CanSelect := False;
Exit;
end;
except
CanSelect := False;
Exit;
end; fCol := ACol;
fRow := ARow;
end;
这段代码的意思是:
如果单元格内容不合法的话,当用鼠标选择别的单元格时,能自动让刚才的单元格获得焦点