есть такое понятие - приведение типов. в дельфи это реализовывается оператором AS. например, есть классы
A = class
Color: integer;
end;
B = class (A)
Shape: integer;
end;
допустим, нам нужна процедура, которая меняет цвет переменной, заданной любым из этих классов:
procedure ChangeColor (Sender: object; NewColor: integer);
begin
(Sender as A).Color := NewColor;
end;
поскольку мы не знаем, для какого именно класса будет использоваться процедура, то типом параметра мы указываем объект (т.е. вообще любой класс), а внутри процедуры приводим этот объект к классу А, в котором такое свойство гарантировано есть.
примерно той же логикой руководствуется Борланд в своих обработчиках событий. почти каждый из них имеет параметр Sender: TObject, в котором передаётся объект, вызвавший даный обработчик. Дельфи не знает, что это за объект, из какого класса был создан, какие у нег освойства и т.д. а вот сам программист это знать обязан, и он в процедуры приводит параметр Sender к тому классу, который ему нужен, и таким образом получает доступ к свойствам и методам этого класса.
в твоём случае в OnMouseMove надо сказать что-то типа (Sender as TMyClass).Picture.LoadFromFile (..);
но вообще говоря, более грамотно было бы реализовать в TMyClass метод, например, Switch (который будет менять картинки) и из основной процедуры просто вызывать этот метод.