Ich habe mir mal die
Unit angeguckt. Naja Objektorientiert ist da irgentwie nicht viel.
Kleine Einführung zur OOP
Das ganze würde ich in etwa so machen :
Du erstellst dir eine Klasse mit allen Basis Eigenschaften die alle deine (Zeichen-)Objekte gemeinsam haben (mir fallen da spontan top und left ein) und leitest dann von dieser Klasse alle weiteren (Zeichen-)Klassen ab mit den weiteren Eigenschaften wie Radius usw. dann musst du nur noch die Klassen zeichnen oder den Klassen methoden einbauen das Sie sich selbst auf ein TBitmap oder TCanvas zeichnen können.
Zum Drucken und Speichern:
Der Drucker Dialog richtet den Drucker nur ein (Seitenabstand usw.) Drucken musst du mit Printer.Canvas und der SaveDialog liefert nur den Filename speichern kanst du bilder z.B. TBitmap.SaveToFile.