![]() |
Zeichnen und beim Anschauen Fehler
Hallo Leute!
Mir ist kein richtiger Titel für mein Problem eingefallen. Ich habe eine Listbox, in der Dateinamen stehen. Aus diesen Dateinamen sucht sich mein Programm zufällige Einträge und "kachelt" sie auf mein Bild. Soweit so gut, das klappt bis dahin auch, jedoch: Ich habe einmal ein Image, um mir das Bild verkleinert anzuschauen und eine zweite Form, auf der Das Bild in Originalgröße dargestellt wird, wenn ich also mein Bild erstelle, dann werden die kacheln auf das verkleinerte Bild gezeichnet, wenn ich mir jedoch das BIld auf der Zweiten Form anschauen möchte, dann hagelt es AVs! Ich habe noch einen zweiten Algorythmus, bei dem die Bilder zufällig gesetzt werden, da klappts. Hier der Source:
Delphi-Quellcode:
Hab keine Ahnung woran das liegen kann, bitte helft mir!
if (cobxType.Text = 'Kacheln') and (LbxSelectedPictures.Count > 0)
then begin helpBMP := TBitmap.Create; // Das Hilfsbitmap FBuffer.Width := SpedBildx.Value; FBuffer.Height := round(SpedBildx.Value/4*3); FBuffer.Canvas.Brush.Color := pBackground.Color; FBuffer.Canvas.Rectangle(-1,-1,FBuffer.Width+1,FBuffer.Height+1); try for x := 0 to (FBuffer.Width div SpEdKachelnX.Value)+1 do for y := 0 to (FBuffer.Height div SpEdKachelnY.Value)+1 do begin r := random(LbxSelectedPictures.Count); // Random Bild auswählen helpBMP.LoadFromFile(LbxSelectedPictures.Items.Strings[r]); // und ins Bitmap laden FBuffer.Canvas.StretchDraw // Es sollen Kacheln sein, also auf eine einheitliche größe damit (bounds (x*SpEdKachelnX.Value ,y*SpEdKachelnY.Value ,SpEdKachelnX.Value ,SpEdKachelnY.Value) ,HelpBMP); end; imSmallView.Canvas.StretchDraw(bounds(0,0,imSmallView.Width,imSmallView.Height),FBuffer); // Ins Vorschaubild zeichnen finally helpBMP.Free; end; with FrmShowPicture.image1 do // Und hier das Bild in Originalgröße auf die Zweite Form begin width := FBuffer.Width; height := FBuffer.Height; Picture.Bitmap.Width := width; Picture.Bitmap.Height := height; Canvas.Draw(0,0,FBuffer); end; FrmShowPicture.ClientWidth := FrmShowPicture.image1.Width; FrmShowPicture.ClientHeight := FrmShowPicture.image1.Height; FrmShowPicture.ClientWidth := FrmShowPicture.image1.Width; FrmShowPicture.ClientHeight := FrmShowPicture.image1.Height; end; // Wenn ich hier, FrmShowPicture.show aufrufe dann knallts Gruß Richard Edit1: Habe grade bemerkt, dass wenn ich das programm beende, nachdem ich das Bild generiert habe, dann kriege ich ein "EExternalError" aber nur manchmal... ich bin ratlos |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:47 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