![]() |
PNG aus Stream in TImage einfügen
Hi, ich habe ein wenig gegoogled aber habe nichts gefunden wie man eine *.png Datei aus einem Stream in ein Image laden kann. Kann mir jemand da behilflich sein?
Danke Luki :) |
AW: PNG aus Stream in TImage einfügen
Ganz einfach mit
![]()
Delphi-Quellcode:
Du musst aber auch auf
var
LGraphic : TGraphic; begin LGraphic := TPngImage.Create; try LGraphic.LoadFromStream( DerStreamMitDemPng ); Image1.Picture.Assign( LGraphic ); finally LGraphic.Free; end; end; ![]() LoadFromStream liest immer von der aktuellen Stream Position. |
AW: PNG aus Stream in TImage einfügen
Ok danke. Werde ich mir merken ;)
|
AW: PNG aus Stream in TImage einfügen
Ich habe jetzt noch eine Frage aber zu den Ressourcen DLL's. Muss ich jetzt wirklich einen neuen Thread auf machen? Weil ich hätte dann drei Threads da stehen und das sieht nicht gerade gut aus.. ;)
|
AW: PNG aus Stream in TImage einfügen
Zitat:
Ja - dann einfach hier weiterfragen Nein - Neuer Thread Evtl. suchst du ja auch nach ![]() ![]() |
AW: PNG aus Stream in TImage einfügen
Ja hat es, denke ich mal. Wenn nicht gerade bescheid sagen und ich mache einen neuen Thread auf ;)
Folgendes: Ich habe jetzt geschafft eine *.png File aus der .dll zu laden nur ist das die Falsche und im Moment sind auch nur zwei Grafiken dort hinterlegt. Wenn ich also mein Programm starte wird das falsche Bild angezeigt. Ich weiß nicht wie ich's erklären soll deshalb jetzt hier mein Code um die Datei zu laden:
Delphi-Quellcode:
Also die Variable ort ruft ja die Datei auf bzw. da wo sie gespeichert ist. Wenn ich da eine 1 drinnen habe kommt die falsche Grafik. Mit anderen Zahlen kommt Ressource nicht gefunden nur weiß ich nicht woran das liegt und ich habe auch schon meine Ressourcen-Namen in der DLL in 1 und 2 geändert und trotzdem geht es nicht. Ich denke aber mal ich machen einen tierisch-großen Fehler oder?
procedure TFrmHaupt.LoadPict(ort: Integer);
var myStream: TResourceStream; h: Cardinal; LGraphic: TGraphic; begin h:= LoadLibrary('LW_MP_166.dll'); mystream := TResourceStream.CreateFromID(h, ort, RT_RCDATA); LGraphic := TPngImage.Create; try LGraphic.LoadFromStream(mystream); ImgPlayPau.Picture.Assign(LGraphic); finally mystream.Free; LGraphic.Free; end; end; |
AW: PNG aus Stream in TImage einfügen
Zitat:
|
AW: PNG aus Stream in TImage einfügen
Jap, neu erstellt, liegt im richtigen Ordner bzw. im Verzeichnis meiner *.exe
|
AW: PNG aus Stream in TImage einfügen
Wenn du über ID lädtst dann ist es vonnöten die Resource über ID zu definieren bspw.
Bilder.rc
Code:
Die 1 wird beim compilieren der Ressourcen anstatt von IDS_BILD1 eingesetzt. Du kannst eine Ressource entweder mit einer Zahl praktisch der ID oder dem Namen benennen.
#define ID_BILD1 1
#define ID_BILD2 2 ID_BILD1 RCDATA "Borland.jpg" ID_BILD2 RCDATA "Delphi.jpg" Zitat:
|
AW: PNG aus Stream in TImage einfügen
Jupp, genau so ist es.
Und man könnte natürlich auch ohne "Konstanten" arbeiten.
Code:
Ansonsten wäre es praktisch, wenn man diese Konstanten auch im Delphi definiert und bei LoadPict oder LoadFromResourceId entsprechend verwendet.
1 RCDATA "Borland.jpg"
2 RCDATA "Delphi.jpg"
Delphi-Quellcode:
const
ID_BILD1 = 1; ID_BILD2 = 2; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:46 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