Zitat von
heiopei:
ich möchte eine Komponente entwickeln, auf der Funktionen ausgegeben werden sollen, also ein Graph.
..
Jetzt muss nur noch das Bitmap auf TPaintBox gezeichnet werden (und bei jedem Paint-Ereignis) - und fertig! (oder nicht?)
Muss dann die Komponente wirklich ein Canvas-
Property haben ?
So geht's doch auch (und ist sehr flexibel):
Delphi-Quellcode:
procedure TForm1.Paintbox1Paint(Sender:TObject);
const
xoffset = 0;
yoffset = 0;
begin
FMyGraph.Width := Paintbox1.Width;
FMyGraph.Height := Paintbox1.Height;
// die Graph-Komponente hat eine Methode PaintTo
FMyGraph.PaintTo(Paintbox1.Canvas, xoffset, yoffset);
end;
Und wenn du dann Drucken möchtest:
Delphi-Quellcode:
Printer.BeginDoc;
FMyGraph.Width := .. ; // ermitteln, wie viel Platz auf dem Printer Canvas ist und beide Ränder anziehen
FMyGraph.Height := ..; // dito
Printer.Canvas.TextOut(150, 160, 'Funktionsplot...');
FMyGraph.PaintTo(Printer.Canvas, 150, 180);