Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Zeichnen in TGroupBox (https://www.delphipraxis.net/11768-zeichnen-tgroupbox.html)

cook 13. Nov 2003 13:06


Zeichnen in TGroupBox
 
Ich will ein Rechteck in einer GroupBox ausgeben, aber irgendwie haut das nicht hin.
Das müsste doch so ähnlich funktionieren:
Delphi-Quellcode:
procedure TForm1.RaumSkizze;
var InfoBoxDC: HDC;
begin
  if FRaum.Flaeche > 0 then begin
    InfoBoxDC:= GetDC(Maschine.Handle);
    Canvas.Pen.Color := clBlack;
    Canvas.Rectangle(InfoBoxDC,112,328,393,457);
  end;
end;
Allerdings sagt er mir bei Rectangle() immer: zu viele Parameter.
Aber wie mach ich ihm dann begreiflich das ich in diese GroupBox zeichnen will?

mfg cook

himitsu 13. Nov 2003 13:35

Re: Zeichnen in TGroupBox
 
Solltest in diesem Fall die API-Function und nich die des Canvas deines Form's verwenden.
Delphi-Quellcode:
{Form1.}Canvas.Rectangle(X1, Y1, X2, Y2);

Rectangle(HDC, X1, Y1, X2, Y2);
So geht es:
Delphi-Quellcode:
var InfoBoxDC: HDC;

InfoBoxDC := GetDC(GroupBox1.Handle);
Rectangle(InfoBoxDC, 112, 328, 393, 457);
Da ich normaler Weise nicht über ein Handle zeichne, hab' ich jetzt keine Ahnung wie der Farbe zugewiesen wird.
Das wird aber bestimmt ein Anderer hier wissen, wenn nicht schau ich heute abend mal nach.

samson 13. Nov 2003 13:42

Re: Zeichnen in TGroupBox
 
Hallo,

ich kenne mich nicht so genau mit dem Canvas geschichten aus.
Aber ich kann dir sagen, das Canvas.Rectangle einen Parameter zu viel hat.

Ich würde so vorgehen, das ich in der Groupbox noch ein Image hinein setzen würde, welches auch einen Canvas enthält. Die Eigenschaft Align setzt du auf alClient und malst dann entsprechend auf dem Canvas.

Ich hoffe das mein Tipp hilfreich ist.

Gruss

Samson

cook 13. Nov 2003 17:06

Re: Zeichnen in TGroupBox
 
THX @ himitsu

So hat es geklappt.
Musste nur das Canvas vor Canvas.Rectangle(..) wegnehmen.

samson 13. Nov 2003 18:47

Re: Zeichnen in TGroupBox
 
Interessant.

Das hast Du den Canvas vom TForm benutzt. Weil ja die Groupbox kein Canvas hat.

Schon wieder was neues gelernt.

Man lernt nie aus.

Gruss

Samson

himitsu 13. Nov 2003 19:02

Re: Zeichnen in TGroupBox
 
@samson

Ja er hatte das Canvas vom Form genutzt.
Aber es ja hatte nicht funktioniert.

Deshalb wird hier auch über das Handle der GroupBox auf diese gezeichnet:
Rectangle(InfoBoxDC, X1, Y1, X2, Y2);


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:24 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