Besser, entferne aus der Basisklasse
TGeoForm Paint komplett. (Also Deklaration Paint, virtual und die fast leere Methode, in der nur inherited steht)
Dann setze in
TOval die Koordinaten in den sichtbaren Bereich:
Delphi-Quellcode:
x1:=0;
y1:=0;
x2:=Width;
y2:=Height;
Zum verschieben, verschiebst Du dann nicht das Oval in deiner Klasse, sondern die ganze Klasse durch ändern von Top und Left.
***
Grundsätzliches:
Dein Oval füllt Deine Komponente TOval ganz aus. Deshalb könnte man in TOval.Paint gleich
Canvas.Ellipse(0, 0, width, height);
.
Dann wird das Oval größer, wenn die Komponente größer wird. x1,x2,y1,y2 kann man sich dann ganz sparen!
Verschoben wird dann wie gesagt nicht das Oval in der Komponente, sondern die ganze Komponente durch ändern von Top und Left.