TImageの派生物は、クリックされたときにカーソルをフォローし、もう一度クリックされたときにフォローを停止する必要があります。このために、TImageまたは派生物を指す「Attached」という名前のポインターを作成しました。
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」という行は機能していないようで、ポインタを使用して画像を右に移動したい場合にアクセス違反が発生します。
ポインタが間違った場所を指していると思います。ポインタを正しい保存アドレスに向けたり、クリックした画像を他の方法でマウスに追従させるにはどうすればよいですか?
(英語は私の母国語ではないので、正しい専門用語を使用したと思います)