Zitat:
Kann ich die Grafiken, wenn ich sie einzeln in die *.rc (bzw. *.res)- Datei einbinde, auch im png-Format übergeben?
Was meinst du mit "übergeben"? Vielleicht ist das noch nicht ganz klar: mit RCDATA in der .rc-Datei sagst du einfach, dass Daten (eine Folge von Bytes aus der angegebenen Datei) in die .res-Datei gepackt werden sollen. Dabei weiß keiner, ob es sich nun um PNG, BMP, JPEG oder eine Text-Datei handelt. Und diese Folge von Bytes findet sich in der .dll-Datei dann wieder. Sie sind zu dieser Zeit im png-Format. Wenn du diese Daten nun in deinem Programm lädst (mit dem gezeigten Code), ist das erstmal nur eine Folge von Bytes (im TResourceStream), der dann von der PNG-Komponente geladen wird, und von dieser in ein Bild "interpretiert" wird. Ich wüsste nicht, wie das anders gehen soll.
Zitat:
Und muss die *.rc dann nicht 493 Zeilen lang sein?
Wie lang die .rc-Datei wird, hängt davon ab, wieviele Bilder du in diese aufnimmst. So ganz verstehe ich die Frage nicht. Bei einem Bild ist es eben eine Zeile, bei 100 Bildern sind es eben 100 Zeilen. Die .rc-Datei ist ja nur der "Quelltext" für die .res-Datei, die "kompiliert" wird. Und die .res-Datei wächst natürlich mit der Anzahl der Bilder, die in sie hinein "kompiliert" wird.
Zitat:
Okay, das mit dem konvertieren und zurechtschneiden kann man sich dann sparen...
Zurechtschneiden/Konvertieren kannst du machen, bevor du die Dinge in die .res-Datei kloppst, oder eben zur Laufzeit, nachdem das TPNGImage aus dem TResourceStream erstellt wurde. Vernünftiger ist es wohl, das Konvertieren/Zurechtschneiden vor dem "kompilieren" in die .res-Datei zu machen, sofern das Ergebnis der Konvertierung in allen Szenarien (bei allen Benutzern) am Ende das selbe sein soll.
HTH