form上放一个cxgrid,一个edit1
鼠标在cxgrid表格上(数据部分不是表头)移动,随着鼠标移动(不要点击)edit1显示鼠标所在列的表头名称
鼠标在cxgrid表格上(数据部分不是表头)移动,随着鼠标移动(不要点击)edit1显示鼠标所在列的表头名称
解决方案 »
- 我用INDY做FTP下载,我怎么知道下载完成了?
- 请问如何控制DBGrid,在线等....
- 如何用TWebBrowser将一段HTML代码显示成网页,或显示一个HTML文件?急!!!给分!!
- 怎樣在Delphi中調用ActiveX控件(ocx)?
- 为什么有时对控件update or repaint时会有闪烁?
- 怎么让Ttreeview或者Tmemo组件的滚动条换成flat形式的?我这里有一个FatScrollBar控件,怎么用?
- 刚装好宽带,散分(五小时后结帖)
- 从来未遇到过的问题.....
- 请问哪里有关于OpenGL的DELPHI的例子?
- Crack Delphi6
- delphi的子窗口没有办法拉到主窗口上方
- 请sanguomi,wellnj来接点分。
我没用过cxgrid,所以不知道OnMouseMove事件中的参数。
如果是X, Y的话那就麻烦了,这就需要计算出每一列的X坐标的起始值和终止值(如果每列长度相同的话,用除法就可以了,然后作加法)。在OnMouseMove事件中,X介于哪一列的起止点,Edit1就显示哪一列的表头。
procedure TForm1.cxgrdbtblvwGrid1DBTableView1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
fWidth, fADD: Integer;
iIndex: Integer;
begin
with cxgrdbtblvwGrid1DBTableView1 do
begin
fADD := 0;
Controller.Scroll(sbHorizontal, scPosition, fWidth);
for iIndex := 0 to ColumnCount - 1 do
begin
if X + fWidth <= fADD + Columns[iIndex].Width then
begin
Caption := Columns[iIndex].Caption;
Break;
end else
begin
Inc(fADD, Columns[iIndex].Width);
end;
end;
end;
end;
//改成 Edit1.Text:= Columns[iIndex].Caption;