Постановка задачи. Сделайте проект, в котором компонент TImage будет перемещаться вслед за указателем мыши при нажатой левой кнопке. При отпускании кнопки мыши компонент стоит на месте. Если передвинуть мышь в другое место формы, кликнуть, то опять картинка будет перемещаться вместе с мышью.
Реализация. Нарисуйте небольшую картинку какого-нибудь образа в редакторе Paint. Положите на форму один компонент TImage, через свойство Picture загрузите картинку в TImage. Нам понадобится одна глобальная переменная типа boolean, назовем ее pr. В момент нажатия левой кнопки мыши делаем флажок pr:= true. В момент отпускания кнопки делаем флажок pr:=false. Само движение описывается в обработчике события FormMouseMove. Для того чтобы инициировать обработчики FormMouseDown, FormMouseMove и FormMouseUp, найдите соответствующие события формы и сделайте двойной клик либо Ctrl-Enter на пустом поле значения события. Delphi автоматически создаст в тексте модуля шаблонную процедуру и зарегистрирует ее в списке событий объекта как обработчик данного события.
После запуска приложения картинка как бы «прилипает» к указателю мыши. Первый раз после запуска проекта не кликайте по картинке, событие FormMouseDown не наступит, а по замыслу задачи обработчик ImageMouseDown не нужен.
Ниже дан код обработчиков FormCreate и FormMouseMove.