AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Zeichnen und beim Anschauen Fehler
Thema durchsuchen
Ansicht
Themen-Optionen

Zeichnen und beim Anschauen Fehler

Ein Thema von Tormentor32 · begonnen am 18. Dez 2006
Antwort Antwort
Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#1

Zeichnen und beim Anschauen Fehler

  Alt 18. Dez 2006, 15:31
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:
  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
Hab keine Ahnung woran das liegen kann, bitte helft mir!

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
Richard Mahr
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 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