Re: Komponentenentwicklung mit Delphi7
Du musst darfst Width und Height nicht selbst definieren, die gibt es schon seit TControl. Wofür du die Form-Property benutzen willst, ist mir auch schleierhaft, Zugriff auf das übergeordnete Control bekommst du durch die Eigenschaft Parent.
Du musst die Methode Diagramm natürlich auch irgendwo aufrufen, sonst wird nichts gezeichnet. Solange du kein OffScreenBitmap benutzt, solltest du Paint überschreiben und dort die Methode aufrufen. |
Re: Komponentenentwicklung mit Delphi7
Zitat:
|
Re: Komponentenentwicklung mit Delphi7
Die Methode Paint wird jedes Mal ausgeführt, wenn Windows eine WM_PAINT-Message schickt, also überschreibe sie und führe darin den Code zum Zeichnen aus, wie ich schon oben gesagt habe.
|
Re: Komponentenentwicklung mit Delphi7
Zitat:
|
Re: Komponentenentwicklung mit Delphi7
Delphi-Quellcode:
type
TDiagramm = class(TGraphicControl) private FForm : TForm; FRand : Boolean; FHeight : Integer; FWidth : Integer; procedure Diagramm(); public procedure Paint; override; published property Form : TForm Read FForm Write FForm; property Rand : Boolean Read FRand Write FRand; property Height : Integer Read FHeight Write FHeight; property Width : Integer Read FWidth Write FWidth; { Published-Deklarationen } end; procedure Register; implementation procedure Register; begin RegisterComponents('Standard', [TDiagramm]); end; procedure TDiagramm.Diagramm(); begin // Rahmen zeichnen if FRand=True then begin Canvas.Rectangle(0, 0, Width, Height); end; // Achsen zeichnen Canvas.MoveTo(30, 30); Canvas.LineTo(30, Height - 30); Canvas.LineTo(Width - 30, Height - 30); end; Procedure TDiagramm.Paint; //hier musst du evtl. noch einmal die override-Direktive hinschreiben, ich bin mir nicht mehr sicher... Begin inherited; Diagramm; End; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz