我的问题事这样 在程序运行以后,根据用户的需要,动态的生成了机个IMAGE控件,用户可对这些控件随意拖动,在拖动结束后,我要判断下用户选择的事那个控件,在书中和其它资料里,都事这样写的procedure TForm1.FormDockOver(Sender,Source : TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
begin
if source is timage then ....end;但在我的d7中 这个事件事这样的
procedure TForm1.FormDockOver(Sender: TObject; Source: TDragDockObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
beginend;
这时如果用 if source is timage then .... 这句话来判断 ,就会报错
因为类型不匹配 我不明白 d7中 Source这个参数位何是TDragDockObject
我现在想要判断下 源控件 该如何做 ,请高手指点下
Y: Integer; State: TDragState; var Accept: Boolean);
begin
if source is timage then ....end;但在我的d7中 这个事件事这样的
procedure TForm1.FormDockOver(Sender: TObject; Source: TDragDockObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
beginend;
这时如果用 if source is timage then .... 这句话来判断 ,就会报错
因为类型不匹配 我不明白 d7中 Source这个参数位何是TDragDockObject
我现在想要判断下 源控件 该如何做 ,请高手指点下
解决方案 »
- select语句的唯一值怎么赋给labe1.caption或edit1.text??
- 如何连接一个有登陆密码的电脑,我是用tcpclient和tcpserver组件!!
- 如何编程把wav格式转换成mp3格式???
- 帮我改sql语句,谢谢
- 拨号网络:如何取得传入连接的状态,如接入用户、发送数据包个数、接收数据包个数等?
- dbGrid 里面 可不可以用 dbcombobox 或 combobox 来显示字段啊 (在线等!!!!!!!11)
- 寻找汉->英词库
- 寻求高手!
- Delphi如何将资源里的bmp图片用DrawImage画窗体上
- 怎样不重复使用相同条件的case表达式?
- 请问如何返回tabcontrol组件各个页面的标题?
- 求SUIPACK For D7控件(不要测试版,上网搜了很久也没找到)
if Source.GetName='TImage' then
begin
......
end;
if Source.Control.Name='image1' then
.......
不行啊 出错提示
[Error] main.pas(322): Undeclared identifier: 'Control'
source中 没control啊
不行啊 出错提示
[Error] main.pas(322): Undeclared identifier: 'Control'
source中 没control啊
///////////////////////////
那是你的代码不是写在事件Form1DockOver里,而是Form1DragOver里的缘故。仔细看看我刚给你的回答。
选择 dkdock 产生DockOver,DockDrop事件 选择 dkdrag 产生dragOver,drag Drop事件 是吗??我现在选的是dkdock 能拖动 也能判断 但控件拖动成一个小窗口,有没有办法拖动的时候没有这个小窗口啊??
Shift: TShiftState; X, Y: Integer);
begin
panel1.BeginDrag(true);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
panel1.DragKind:=dkDrag;
panel1.DragMode:=dmmanual;
end;procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
caption:=format('%d,%d',[x,y])
end;procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
if source=Panel1 then
begin
panel1.Left:=x;
panel1.Top:=y;
end;
end;