Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Canvas als Property übergeben...

  Alt 26. Sep 2007, 17:26
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);
Andreas
  Mit Zitat antworten Zitat