Я хочу, чтобы производная от TImage следовала за курсором, когда по нему щелкнули, и перестала следовать, когда по нему снова щелкнули. Для этого я создал указатель с именем «Attached», который указывает на TImage или его производное.
var Attached: ^TImage;
Я также установил производную от Timage для вызова процедуры ChangeAttachState при ее нажатии.
Теперь в процедуре ChangeAttachState я хочу изменить указатель, который он указывает на изображение, по которому щелкнули, или указать на ноль, когда изображение уже было прикреплено. В коде:
procedure TForm1.ChangeAttachState(Sender:TObject);
begin
if Attached = nil then
Attached := @Sender
else
Attached := nil;
end;
Однако строка «Прикреплено: = @Sender», похоже, не работает, вызывая нарушение прав доступа, когда я хочу использовать указатель, т. е. переместить изображение вправо.
Я думаю, что указатель указывает на неправильное место. Как я могу сделать так, чтобы указатель указывал на правильный адрес сохранения или чтобы изображение, по которому щелкнули, следовало за мышью другими методами?
(Надеюсь, я использовал правильные технические термины, поскольку английский не является моим родным языком)