Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zeichnen in einer Image Komponente (https://www.delphipraxis.net/10633-zeichnen-einer-image-komponente.html)

derhoeppi 22. Okt 2003 15:47


Zeichnen in einer Image Komponente
 
Hallo Leute
Der Titel des Beitrags sagt eigentlich alles.Ich kann selber nen Rechteck, Linien usw. zeichnen, aber ich soll einen Quader als Netz zeichnen.Ich habe leider keine Ahnung wie ich das anstellen soll. Weiß jemand einen Rat von euch?

himitsu 22. Okt 2003 16:49

Re: Zeichnen in einer Image Komponente
 
Delphi-Quellcode:
BitMap.Canvas.Brush.Style := bsDiagCross;
BitMap.Canvas.Brush.Color := (Farbe des Netzes)
In der OH unter "Brush"... findest du mehr.

derhoeppi 22. Okt 2003 18:25

Re: Zeichnen in einer Image Komponente
 
Hey
Also das versteh ich nicht so ganz:
Source:
BitMap.Canvas.Brush.Style := bsDiagCross;
BitMap.Canvas.Brush.Color := (Farbe des Netzes)

Ich soll ein Quader als Netz zeichnen, dass heiß vier Rechtecke nebeneinander und an der Seite von einem der vier Rechtecke hängt jeweils links und rechts noch ein Rechteck dran.

Wie kann ich soetwas erstellen?

himitsu 22. Okt 2003 19:04

Re: Zeichnen in einer Image Komponente
 
Ohh, da hab ich dich wohl falsch verstanden.

Delphi-Quellcode:
XY := 50;
Image1.Canvas.Rectangle(    XY,     0, 2 * XY + 1,    XY + 1); {1}
Image1.Canvas.Rectangle(    XY,    XY, 2 * XY + 1, 2 * XY + 1); {2}
Image1.Canvas.Rectangle(    XY, 2 * XY, 2 * XY + 1, 3 * XY + 1); {3}
Image1.Canvas.Rectangle(    XY, 3 * XY, 2 * XY + 1, 4 * XY + 1); {4}
Image1.Canvas.Rectangle(     0,    XY,    XY + 1, 2 * XY + 1); {5}
Image1.Canvas.Rectangle(2 * XY,    XY, 3 * XY + 1, 2 * XY + 1); {6}

{   1   }
{ 5 2 6 }
{   3   }
{   4   }
{...} => Position (siehe Bildchen)
XY => Grösse
+ 1 => Ausgleich, da Rectangle immer je ein Pixel schmaler und flacher gezeichnet werden

derhoeppi 22. Okt 2003 20:44

Re: Zeichnen in einer Image Komponente
 
Hey himitsu
Kann ich jetzt noch die Farbe der Rechtecke bestimmen?Seite 1 und 3,5 und 6, 2 und 4 sollen die gleiche Farbe haben. Wenn das jetzt etwas unverständlich war, dann meine ich das die Seiten die gleich groß sind die gleiche Farbe haben sollen.

Matze 22. Okt 2003 21:01

Re: Zeichnen in einer Image Komponente
 
vor jedem:
Delphi-Quellcode:
Canvas.Rectangle(...);
eifach:
Delphi-Quellcode:
Canvas.Brush.Color:=clYellow;
aufrufen.

derhoeppi 22. Okt 2003 21:22

Re: Zeichnen in einer Image Komponente
 
Hallo Matze
Ich hab das jetzt mal nicht ganz so gemacht wie du es gesagt hast. Ich hab mir die Seiten herausgesucht und dann über die Canvas.Brush.Color geschrieben, aber ohne erfolg.Nehm ich das Canvas weg so besitzt mein ganzes Formular diese Farbe.Mein bisheriger Quelltext - hab das Quadrat auch etwas im aussehen geändert.
Meine Procedure
Delphi-Quellcode:
procedure TForm1.Netz(Sender: TObject);
var XY:integer;
begin
 XY := 50;
Brush.Style:= bsSolid;
Canvas.Brush.Color:=clblue;
Image1.Canvas.Rectangle(    25, 50, 85, 75);
Image1.Canvas.Rectangle(    178, 50, 238, 75);
Canvas.Brush.Color:=clYellow;
Image1.Canvas.Rectangle(    86, 76, 176, 101);
Image1.Canvas.Rectangle(    86, 24, 176, 49);
Canvas.Brush.Color:=clblack;
Image1.Canvas.Rectangle(    239, 50, 329, 75);
Image1.Canvas.Rectangle(    86, 50, 177, 75);
end;
Was mach ich da falsch???

derhoeppi 22. Okt 2003 21:58

Re: Zeichnen in einer Image Komponente
 
Hey Leutz
Ich hab jetzt selbst etwas versucht und siehe da es funzt. Vor dem Canvas.Brush.Color hat nur das Image1. gefehlt und schon geht es. Trotzdem danke für die recht zügige Hife heute.

Matze 22. Okt 2003 22:23

Re: Zeichnen in einer Image Komponente
 
Ja, das hatte ich weggelassen, ich dachte, du wusstest, was ich meine. Nächtes mal werde ich es dazuschreiben! :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 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 by Thomas Breitkreuz