Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Canvas zeichnet nicht :( (https://www.delphipraxis.net/58539-canvas-zeichnet-nicht.html)

simonko 8. Dez 2005 16:34


Canvas zeichnet nicht :(
 
Delphi-Quellcode:
TRechteck = class(TgraphicControl)
    procedure paint; override;
  end;

procedure TRechteck.paint;
begin
  canvas.Rectangle(100,100,200,300);
end;



Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  rechteck:=TRechteck.Create(self);
  rechteck.Parent:=panel1;
  rechteck.paint;
end;
weiss jemand warum dieser code kein rechteck zeichnet?

tomsel 8. Dez 2005 16:52

Re: Canvas zeichnet nicht :(
 
Hallo,

Du setzt anscheinend nirgends die Größe oder das Alignment des Controls. Vielleicht sind width und height = 0 und das Rechteck besteht nur aus einem Punkt?

tomsel 8. Dez 2005 16:56

Re: Canvas zeichnet nicht :(
 
Ergänzung: Rectangle(...) wird zwar mit Größenangaben versorgt, aber wenn man etwas auf einer Zeichenfläche von 0 mal 0 Pixeln zeichnet, wird dies durch das Clipping eben unsichtbar.

simonko 8. Dez 2005 17:20

Re: Canvas zeichnet nicht :(
 
mit welcher eigenschaft kann ich das einstellen?

Neutral General 8. Dez 2005 17:22

Re: Canvas zeichnet nicht :(
 
Rechteck.Width,Rechteck.Height bzw Rechteck.Canvas.Width, Rechteck.Canvas.Height

Wobei das Rechteck.Width,Rechteck.Height reichen müsste denke ich mal...

tomsel 8. Dez 2005 17:32

Re: Canvas zeichnet nicht :(
 
Du kannst auch Rechteck.Align := alClient setzen, dann wird das Rechteck genau so groß wie das Panel, auf dem es pappt.

tomsel 8. Dez 2005 17:38

Re: Canvas zeichnet nicht :(
 
Ergänzung: nee, nicht das Rechteck, denn das wird ja durch Rectangle(...) festgelegt, sondern nur das Control. Das gezeichnete Rechteck wird aber sichtbar (wenn das Control nur groß genug ist), seine Größe ist aber immer 100 mal 200 und seine Position innerhalb des Controls ist 100, 100 (wenn ich die Rectangle-Parameter richtig interpretiere).

simonko 8. Dez 2005 17:40

Re: Canvas zeichnet nicht :(
 
ok jetzt gehts. nun ist nur noch die frage von wo bis wo das anfängt width und height.
was passiert denn wenn ich 1000*1000 eingebe und mein panel kleiner ist?
wenn ich als parent form1 eingebe dann wird das form automatisch so gros wie ich als width und high
angegeben hab.
:wall:

Neutral General 8. Dez 2005 17:40

Re: Canvas zeichnet nicht :(
 
Zitat:

Zitat von tomsel
ok jetzt gehts. nun ist nur noch die frage von wo bis wo das anfängt width und height.
was passiert denn wenn ich 1000*1000 eingebe und mein panel kleiner ist?
wenn ich als parent form1 eingebe dann wird das form automatisch so gros wie ich als width und high
angegeben hab.

Ja ist ja logisch^^ Bei dem Panel geht wird das Rechteck auch größer. Aber das Panel wächst nicht mit. Da ist halt ein Teil des Rechtecks nicht zu sehn. Die Form verändert automatisch die größe wenn das Control so groß wird (Bzw es werden Scrollbalken sichtbar)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz