AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls TPaintbox löscht Zeichenfläche selbstständig (GDI+)
Thema durchsuchen
Ansicht
Themen-Optionen

TPaintbox löscht Zeichenfläche selbstständig (GDI+)

Ein Thema von SiLo0815 · begonnen am 23. Feb 2017 · letzter Beitrag vom 24. Feb 2017
 
SiLo0815

Registriert seit: 23. Feb 2017
Ort: Essen, NRW
7 Beiträge
 
Delphi XE5 Enterprise
 
#1

TPaintbox löscht Zeichenfläche selbstständig (GDI+)

  Alt 23. Feb 2017, 23:06
Guten Abend zusammen!

Ich möchte mehrere Bilder als Thumbnails auf meine Programmoberfläche zeichnen. Dazu habe ich eine Scrollbox erstellt, welche ein Flowpanel beinhaltet.
Zu diesem Flowpanel füge ich zur Laufzeit TPaintBox-Objekte hinzu und zeichne mit der GDI+-Bibliothek (http://www.bilsen.com/gdiplus/index.shtml) die Thumbnails auf deren Zeichenflächen.

Meine Thumbnail-Klasse speichert zusätzlich den Dateinamen und sieht so aus:
Delphi-Quellcode:
type
  TThumbnail = class(TPaintBox)
    private
      FFilename: String;
    public
      property Filename: String read FFilename write FFilename;
  end;
Die Thumbnails werden (per Schleife über eine Liste von Dateinamen (f)) so erzeugt:
Delphi-Quellcode:
Image := TGPImage.Create(f);
Thumbnail := Image.GetThumbnailImage(150, 150, nil, nil);

OutputImage := TThumbnail.Create(Self);
OutputImage.AlignWithMargins := true;
OutputImage.Height := 150;
OutputImage.Width := 150;
OutputImage.Filename := f;
OutputImage.Cursor := crHandPoint;
OutputImage.OnClick := ThumbnailClick;
OutputImage.Parent := flwpnlImageView;

Graphics := TGPGraphics.Create(OutputImage.Canvas.Handle);
Graphics.DrawImage(Thumbnail, 0, 0, Thumbnail.Width, Thumbnail.Height);
Nun ist das Problem, dass mir die Bilder zwar kurz angezeigt werden, kurz darauf aber wieder verschwinden.
Ich habe die Vermutung, dass sich die Paintboxen bedingt durch die Scrollbox neu zeichnen und dann wieder leer sind.
Interessanterweise funktioniert das ganze, wenn ich TThumbnail von TImage ableite. Ich würde der Geschwindigkeit wegen aber lieber TPaintbox benutzen.
Hat vielleicht jemand eine Idee, was ich versuchen könnte, um die Bilder dauerhaft zu sehen?

Grüße
Simon

Edit2: Sorry für den halbfertigen Post zu Beginn, ich hab' versucht den Code mit TAB einzurücken und hab Enter gedrückt - zack, schon war's abgeschickt...
Simon

Geändert von SiLo0815 (23. Feb 2017 um 23:19 Uhr)
  Mit Zitat antworten Zitat
 


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 16:21 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