AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 2010 und PNG Ressourcen

Ein Thema von v2afrank · begonnen am 3. Feb 2010 · letzter Beitrag vom 4. Feb 2010
Antwort Antwort
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
571 Beiträge
 
Delphi XE2 Professional
 
#1

Delphi 2010 und PNG Ressourcen

  Alt 3. Feb 2010, 07:49
Hallo,
das Thema gab es zwar schon öfter, und es gab anscheinend auch schon eine Lösung, allerdings benutze ich jetzt Delphi 2010 und damit funktionieren die bisherigen Lösungen nicht.
Und zwar möcht ich ein PNG Bild aus einer Ressource in ein Image laden.
Dazu habe ich eine Ressourcendatei mit folgendem Inhalt erzeugt
Datumsbild PNG "Date.png". Ein Tip den ich hier gelesen hatte besagte, dass ich stattdessen Datumsbild RCDATA "Date.png" nutzen sollte, was aber auch keine Änderung brachte.
Geladen habe ich das Bild folgendermassen
Delphi-Quellcode:
var
 PNG :TPNGObject;
begin
PNG := TPNGObject.Create;
try
  PNG.LoadFromResourceName(Handle,'Datumsbild');
  if PNG <> nil then
  begin
    Image1.Picture.Assign(PNG);
  end;
finally
  FreeAndNil(PNG);
end;
Hier wird mir aber immer eine EResNotFound Exception mit der Meldung 'Ressource Datumsbild nicht gefunden' aufgetreten.
Ist das bei Delphi 2010 anders, ober wo ist mein Fehler.
Ich habe das ganze Projekt auch mal hier als Anhang hochgeladen
Angehängte Dateien
Dateityp: zip test_205.zip (12,0 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: Delphi 2010 und PNG Ressourcen

  Alt 3. Feb 2010, 15:10
ersetze mal die Zeile:
Code:
Datumsbild PNG "Date.png"
wieder durch:
Code:
Datumsbild rcdata "Date.png"
in der Datei "bild.rc".

// Edit:

und Ersetze mal die Zeile:
PNG.LoadFromResourceName(Handle,'Datumsbild'); durch:PNG.LoadFromResourceName(hInstance,'Datumsbild'); damit es auch aus der Resource geladen wird und nicht aus dem Fensterhandle.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#3

Re: Delphi 2010 und PNG Ressourcen

  Alt 3. Feb 2010, 15:50
Warnt dich dein Delphi nicht, dass du TPNGImage nutzen sollst, anstatt TPNGObject!? So mache ich das immer:

Delphi-Quellcode:
var
  png : TPngImage;
begin
  // Hintergrund laden
  png := TPngImage.Create();
  try
    png.LoadFromResourceName(HInstance,'IMAGE_NAME');

    // PNG in Image anzeigen ( imgExample: TImage )
    if (Assigned(png)) then
      imgExample.Picture.Assign(png);
  finally
    FreeAndNil(png);
  end;
end;
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
571 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Delphi 2010 und PNG Ressourcen

  Alt 4. Feb 2010, 06:33
Oh mein Gott. Manchmal sieht man den Wald vor lauter Bäumen nicht. Natürlich muss ich HInstance nehmen. Damit funktioniert es auch problemlos. Und s.h.a.r.k hat auch Recht. Mein Delphi warnt mich, ich habe da aber absolut nicht drauf geachtet.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.021 Beiträge
 
Delphi 12 Athens
 
#5

Re: Delphi 2010 und PNG Ressourcen

  Alt 4. Feb 2010, 07:17
Du kannst die ja auch mal die PngComponents anschauen. Da gibt es eine TPngImageCollection, in der zur Entwurfszeit PngImages unterschiedlicher Größe geladen werden können. Zur Laufzeit hast du dann bereits ein fertiges TPngImage verfügbar. Den Umweg über die Resource kannst du dir dann sparen.
Uwe Raabe
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
571 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Delphi 2010 und PNG Ressourcen

  Alt 4. Feb 2010, 07:24
Werde ich mir anschauen, hat sicherlich seinen Charme, da ich in meiner Anwendung jetzt zwischen verschiedenen PNG Images umschalten muss.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.021 Beiträge
 
Delphi 12 Athens
 
#7

Re: Delphi 2010 und PNG Ressourcen

  Alt 4. Feb 2010, 08:07
Wenn die Images alle gleiche Größe haben, ist auch eine ImageList (TImageList oder TPngImageList) möglich. Die Collection erlaubt auch Bilder unerschiedlicher Größe.
Uwe Raabe
  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 18:51 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