Autor Beitrag
dot
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Sa 30.06.12 19:28 
Hallo,

ich will einfach ein Rechteck auf meiner Form zeichnen aber irgendwie klappt das nicht folgenden Code hab ich geschrieben:

ausblenden 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(00, 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: 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
ausblenden 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.
ausblenden 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

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 30.06.12 20:37 
Und wieder einmal gibt es doppelte Antworten und dementsprechend doppelten Aufwand für die Antwortenden...
Crosspost: www.delphipraxis.net...nicht-angezeigt.html

Was das Thema angeht, da findest du hier ein Beispiel:
www.michael-puff.de/...ffScreenBitmap.shtml