dot - Sa 30.06.12 19:28
Titel: Rechteck wird nicht gezeichnet!
Hallo,
ich will einfach ein Rechteck auf meiner Form zeichnen aber irgendwie klappt das nicht folgenden Code hab ich geschrieben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TMainForm.FormCreate(Sender: TObject); var pic : TBitmap; begin pic := TBitmap.Create; pic.Height := 100; pic.Width := 100; pic.Canvas.Brush.Color := clRed; pic.Canvas.FillRect(Rect(0, 0, pic.Width, pic.Height)); MainForm.Canvas.Draw(0, (MainForm.Width div 2) - (MainForm.Height div 2), pic); end |
Ich bin leider noch ziemlich unerfahren mit Delphi, hoffe Ihr könnt mir weiterhelfen!
Danke in voraus!
mfg dot
Mathematiker - Sa 30.06.12 19:50
Hallo, :welcome:
ich sehe mehrere Probleme:
1. Während das Formular erzeugt wird (Create) kannst du nicht zeichnen. Ebenso nicht in der Methode Activate.
Möchstest Du, dass nach dem Start das Rechteck sichtbar wird, dann zeichne in der OnPaint-Methode des Formulars.
Ich verwende zwar lieber eine Paintbox, aber am Anfang geht auch das Formular selbst.
2. Bei
Delphi-Quelltext
1:
| MainForm.Canvas.Draw(0, (MainForm.Width div 2) - (MainForm.Height div 2), pic); |
verstehe ich die y-Koordinate nicht. Wo soll es denn hingezeichnet werden? Wie groß ist denn Dein Formular?
Warum verwendest Du Fillrect und nicht Rectangle? z.B.
Delphi-Quelltext
1: 2:
| pic.canvas.brush.color:=clred; pic.canvas.rectangle(0,0,100,100); |
3. Wenn Du das Bitmap pic mit TBitmap.create herstellst, musst Du es am Ende auch mit pic.free löschen.
Beste Größe
Mathematiker