我想把一个DbGrid中的内容拖进F1Book 的一个单元格中,但是不知怎么确定鼠标所在的单元格。 (50分)

  • 主题发起人 主题发起人 lncd
  • 开始时间 开始时间
L

lncd

Unregistered / Unconfirmed
GUEST, unregistred user!
我想把一个DbGrid中的内容拖进Formula one 的一个单元格中,
但是不知怎么确定鼠标所在的单元格。
 
TCustomDBGrid.SelectedField就可以了.以下摘自Delphi帮助文件:
The following code concatenates an asterisk to the display label of a field when the column is entered, and removes it when another column is selected. StarIsThere is a boolean that prevents deleting characters from the column that is selected at startup (which never receives an OnColEnter event).

var

StarIsThere: Boolean;

procedure TForm1.DBGrid1ColEnter(Sender: TObject);

begin
with DBGrid1.SelectedField do
DisplayLabel := '* ' + DisplayLabel;
StarIsThere = True;

end


procedure TForm1.DBGrid1ColExit(Sender: TObject);

var
TheLabel: string;
begin
if StarIsThere then
begin
with DBGrid1.SelectedField do
begin
TheLabel := DisplayLabel;
Delete(TheLabel, 1, 2);
DisplayLabel := TheLabel;
end;
end;

end;
 
楼上的会错我的意思了。
DbGrid的内容我能找到的,就是拖到formual one后,不知怎么获得鼠标光标所在的单元格。
 
twipstorc 得到的是以twip为单位的数据,如何转化为像素,
有没有api或者delphi提供了转化函数?
如果自己手工转化,他们之间的比例关系是多少?
twip的单位和像素单位如何转化?
 
twips
坐标系,以’缇’为单位(1缇的长度等于1/1440英寸;1/567厘米;1/20
磅)。
用getdevicecaps得到屏幕每英寸多少象素转换一下。
 
问题解决,公布答案
procedure TFrmDefRepDs.GridDragDrop(Sender, Source: TObject
X,
Y: Integer);
var
Cellx,Celly:integer;
begin
Grid.TwipsToRc(trunc(x*1440/Screen.PixelsPerInch),trunc(y*1440/Screen.PixelsPerInch),Cellx,Celly);

self.caption:=inttostr(x)+' '+inttostr(y)+' '+inttostr(Cellx)+' '+inttostr(celly);
end;
 

Similar threads

D
回复
0
查看
944
DelphiTeacher的专栏
D
D
回复
0
查看
882
DelphiTeacher的专栏
D
D
回复
0
查看
959
DelphiTeacher的专栏
D
D
回复
0
查看
786
DelphiTeacher的专栏
D
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部