![]() |
Kurze Frage zur PaintBox
Nabend zusammen,
kurze frage: Ich versuche mich gerade mal an einem Zeichen-Programm, nur aus reiner neugier, da ich vorher noch nie was mit Grafik in Delphi gemacht habe, jetzt bin ich dabei gerade mal in den Anfängen nämlich beim Laden und öffnen eines Bildes in der PaintBox, klappt auch soweit, habe das wie folgt gemacht:
Delphi-Quellcode:
Mein Problem ist jetzt das wenn ich sage Öffnen und ich das Bild aussuche dann sehe ich das Bild noch nicht, also es wird nicht angezeigt, sondern erst wenn ich es zum zweitenmal öffne, dann sehe ich es wie es sein soll.
procedure Tfrmpaintmaster.ffnen1Click(Sender: TObject);
var Bild:TBitmap; begin if OpenPictureDialog.execute then begin Bild := TBitmap.Create; Bild.LoadFromFile (OpenPictureDialog.FileName); with PaintBox do begin Canvas.Draw(0,0,Bild); PaintBox.Width := Bild.Width; PaintBox.Height := Bild.Height; end; end; end; Habe es schon mit Refresh probiert, aber das klappt auch nicht. Maine Frage jetzt was mache ich falsch oder habe ich was vergessen ? Gruss Darkchild |
Re: Kurze Frage zur PaintBox
Du solltest villeicht erst die Größe setzen, bevor du das Bild auf den Canvas Zeichnen läßt.
|
Re: Kurze Frage zur PaintBox
Hi,
das hatte ich auch schon, also in der Form:
Delphi-Quellcode:
Aber dann Flasht das Bild nur kurz auf und ist dann nicht mehr zu sehen.
procedure Tfrmpaintmaster.ffnen1Click(Sender: TObject);
var Bild:TBitmap; begin if OpenPictureDialog.execute then begin Bild := TBitmap.Create; Bild.LoadFromFile (OpenPictureDialog.FileName); with PaintBox do begin PaintBox.Width := Bild.Width; PaintBox.Height := Bild.Height; Canvas.Draw(0,0,Bild); end; end; end; Also auch erst beim 2ten mal. Gruss Darkchild |
Re: Kurze Frage zur PaintBox
Verlagere den Code mal in die Paint-Methode oder in die Methode der onPaint-Property
|
Re: Kurze Frage zur PaintBox
Habe das jetzt etwas anders:
Delphi-Quellcode:
Damit scheint es jetzt zu funktionieren.
procedure Tfrmpaintmaster.ffnen1Click(Sender: TObject);
begin if OpenPictureDialog.execute then begin Bild := TBitmap.Create; Bild.LoadFromFile (OpenPictureDialog.FileName); with PaintBox do begin PaintBox.Width := Bild.Width; PaintBox.Height := Bild.Height; end; end; end; procedure Tfrmpaintmaster.PaintBoxPaint(Sender: TObject); begin Canvas.Draw(0,0,Bild); end; Danke nochmals. Gruss Darkchild |
Re: Kurze Frage zur PaintBox
Vergiss nicht, Bild irgendwann wieder freizugeben ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 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-2025 by Thomas Breitkreuz