Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Komponentenentwicklung mit Delphi7 (https://www.delphipraxis.net/58545-komponentenentwicklung-mit-delphi7.html)

Khabarakh 8. Dez 2005 19:40

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 Delphi-Referenz durchsuchenPaint überschreiben und dort die Methode aufrufen.

Christian18 8. Dez 2005 19:42

Re: Komponentenentwicklung mit Delphi7
 
Zitat:

Zitat von Khabarakh
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 Delphi-Referenz durchsuchenPaint überschreiben und dort die Methode aufrufen.

wenn ich die methode diagramm zur laufzeit aufrufe, dann funktioniert es. aber ich will das es auch funktioniert, wenn ich die form designe.

Khabarakh 8. Dez 2005 19:47

Re: Komponentenentwicklung mit Delphi7
 
Die Methode Delphi-Referenz durchsuchenPaint 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.

Christian18 8. Dez 2005 19:49

Re: Komponentenentwicklung mit Delphi7
 
Zitat:

Zitat von Khabarakh
Die Methode Delphi-Referenz durchsuchenPaint 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.

ich versteh jetzt wo oder was du meinst. hast du ein kleines bsp???

hanselmansel 8. Dez 2005 20:49

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.
Seite 2 von 2     12   

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