Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zeilen Erklären (https://www.delphipraxis.net/130654-zeilen-erklaeren.html)

Zeb22 11. Mär 2009 19:30


Zeilen Erklären
 
Moin,
hab da ein Problem

Und zwar würde ich gerne detailiert erklärt bekommen was Pen, Brush und Rectangle genau bedeutet bzw wie man es am besten erklären kann.

Vielen Dank für eure Antworten

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject); // Procedure für die Form
var
 i: Integer;
 j: Integer;
 w: Integer;
begin
 if image1.Width = image1.Height then
 begin
 image1.Canvas.Pen.Color:=clBlack;
 image1.Canvas.Brush.Color:=clWhite;
 image1.Canvas.Rectangle(0,0,image1.Width,image1.Height);
 image1.Canvas.Brush.Color:=clBlack;

Dunkel 11. Mär 2009 19:32

Re: Zeilen Erklären
 
Pen = Stift
Brush = Pinsel
Rectangle = Rechteck

Sonst noch Fragen? :wink:

mr_emre_d 11. Mär 2009 19:34

Re: Zeilen Erklären
 
Pen: - Stift
Ist eine Klasse die bestimmte Eigenschaften hat.
Pen.Color; Pen.Style; ...

Brush: - Bürste / Pinsel
Siehe Pen!

Rectangle:
Mit dieser Procedure kannst du ein Rechteck mit der Füllfarbe Brush.Color und Eckenfarbe Pen.Color zeichnen

:P

EDIT: Mist. Da war einer schneller

MfG

jaenicke 11. Mär 2009 19:35

Re: Zeilen Erklären
 
Schau einmal hier:
http://www.delphiseiten.de/lex11/lex1101.html
http://www.delphiseiten.de/lex11/lex1102.html
Da wird das alles sehr ausführlich erklärt.

Die Delphi-Hilfe (F1) sollte aber auch ganz gut helfen...

Jens Hartmann 11. Mär 2009 19:48

Re: Zeilen Erklären
 
Zitat:

Schau einmal hier:
http://www.delphiseiten.de/lex11/lex1101.html
http://www.delphiseiten.de/lex11/lex1102.html
Da wird das alles sehr ausführlich erklärt.

Ne schöne Seite, werde ich auch mal durcharbeiten.

Zeb22 11. Mär 2009 19:57

Re: Zeilen Erklären
 
Hey Danke für die Links, gute infos.

Könnt ihr mir vielleicht in Knappen wörter die Abläufe der 4 Zeilen mal ganz genau erklären.

Ich blick nicht durch warum am Anfang gezeichnet wird und dann unterschiedliche die 2 Farben gemalt werden. Sorry Blick da noch nicht ganz durch

mkinzler 11. Mär 2009 19:58

Re: Zeilen Erklären
 
Steht doch in #3

Jens Hartmann 11. Mär 2009 20:02

Re: Zeilen Erklären
 
Mit der einen Zeichnest du den Rahmen und mit der anderen füllst du das Rechteck

jaenicke 11. Mär 2009 20:02

Re: Zeilen Erklären
 
Ich verstehe vor allem den Sinn dieser Zeile bei dir nicht:
Delphi-Quellcode:
if image1.Width = image1.Height then
Die Ausmaße des Images legst du doch selbst fest, also was bringt es diese in FormCreate abzufragen?

Zeb22 11. Mär 2009 20:08

Re: Zeilen Erklären
 
Wenn die Formcreate wird geht es los. Warum sollte ich es nicht in Formcreate packen? hm :?:

Satty67 11. Mär 2009 20:12

Re: Zeilen Erklären
 
In FormCreate ist das Bild so groß, wie Du es zuvor festgelegt hast, eine Abfrage ist unnötig (außer Du hast uns eine Laderoutine im Vorfeld enthalten).
Delphi-Quellcode:
image1.Canvas.Pen.Color:=clBlack;      // Stift-Farbe, bei Retangle der Rahmen
image1.Canvas.Brush.Color:=clWhite;    // Pinselfarbe, bei Retangle die Füllung
image1.Canvas.Rectangle(0,0,image1.Width,image1.Height); // Retangle = rechteck
image1.Canvas.Brush.Color:=clBlack;    // Vorbeitung auf nächstes Objekt?
Bei so einfachen Dingen ist aber (r)einlesen sicher die effektivere Methode zu lernen. Erst wenn es komplizierter wird, ist vorkauen manchmal leichter verdaulich ;)

Zeb22 11. Mär 2009 20:16

Re: Zeilen Erklären
 
Also Komplett sieht meine procedure FormCreate so aus.


Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject); // Procedure für die Form
var
 i: Integer;
 j: Integer;
 w: Integer;
begin
 if image1.Width = image1.Height then
 begin
 image1.Canvas.Pen.Color:=clBlack;
 image1.Canvas.Brush.Color:=clWhite;
 image1.Canvas.Rectangle(0,0,image1.Width,image1.Height);
 image1.Canvas.Brush.Color:=clBlack;
 w:=image1.Width div 8;
 for i := 0 to 1 do // Für die Senkrechte Linie
  begin
  for j := 0 to 3 do // Für die waagerechte Linie   / 4 blöcke / 1 block = 2zeilen
   begin
                                 //   X1        Y1         X2         Y2
    Rectangle(image1.Canvas.Handle, 0+i*w,  w+j*2*w-i*w, 1*w+i*w, 2*w+j*2*w-i*w);
    Rectangle(image1.Canvas.Handle, 2*w+i*w, w+j*2*w-i*w, 3*w+i*w, 2*w+j*2*w-i*w);
    Rectangle(image1.Canvas.Handle, 4*w+i*w, w+j*2*w-i*w, 5*w+i*w, 2*w+j*2*w-i*w);
    Rectangle(image1.Canvas.Handle, 6*w+i*w, w+j*2*w-i*w, 7*w+i*w, 2*w+j*2*w-i*w);
   end;
 end;
  Form1.Top:=((Screen.Monitors[0].Height div 2)-(Form1.Height div 2));
  Form1.Left:=((Screen.Monitors[0].Width div 2)-(Form1.Width div 2));




  Label6.Caption := DateToStr(Date); // Datum


 end;
end;

mkinzler 11. Mär 2009 20:20

Re: Zeilen Erklären
 
Man sollte allerdings nur in der Paint()-Methode auf dem Canvas zeichnen.
http://www.delphipraxis.net/internal...t.php?t=153682

Zeb22 11. Mär 2009 20:20

Re: Zeilen Erklären
 
Aber es Stimmt diese if Abfage(Width=Hight) brauch ich nicht


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