我希望T
Image的衍生版本在单击时跟随Cursor,并在再次单击时停止跟随.
为此,我创建了一个名为’Attached’的指针,指向timage或衍生物.
为此,我创建了一个名为’Attached’的指针,指向timage或衍生物.
var Attached: ^timage;
我还设置了timage的派生,在单击时调用过程ChangeAttachState.
现在,在ChangeAttachState过程中,我想更改它指向所单击图像的指针,或者在已附加图像时指向nil.在代码中:
procedure TForm1.ChangeAttachState(Sender:TObject); begin if Attached = nil then Attached := @Sender else Attached := nil; end;
但是,“Attached:= @Sender”行似乎不起作用,当我想使用指针即将图像移动到右侧时,会导致访问冲突.
我认为指针指向错误的位置.如何使指针指向正确的保存地址,或者使用其他方法使点击的图像跟随鼠标?
(我希望我使用正确的技术术语,因为英语不是我的母语)
解决方法
一个对象已经是一个指针,声明你的附加了一个timage(而不是^ timage),你可以在“ChangeAttachedState”(而不是Attached:= @Sender)中将Attached:= Sender分配给它作为timage.
然后,您可以在窗体上附加鼠标移动处理程序,如下所示:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer); begin if Assigned(Attached) then begin Attached.Left := X; Attached.Top := Y; end; end;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。