PDA

Vollständige Version anzeigen : jpg Datein in RessourcenDatei


Byti
25.05.2001, 19:53
Hallo

In den Ressourcen Dateien lassen sich nur BMP Datein einfügen bzw. auf die kann man direkt zugreifen. Welchen Code muß ich einfügen damit ich mit den JPG Datein arbeiten kann?

Stefan Kulpa
25.05.2001, 21:00
<font face="Verdana" size="2">Hallo,

das ist möglich, aber etwas aufwendiger.
Die entsprechende Datei (jgp, gif etc.) muss als benutzerdefinierte Resource eingebunden werden. Der entsprechende Ordner wird dann "CUSTOM" genannt.

Soll nun beispielsweise ein Bild in einer PictureBox angezeigt werden, kann folgende Routine benutzt werden:</font>

<PRE><FONT SIZE=1 FACE=Courier New><FONT COLOR=#000080>Public</FONT> <FONT COLOR=#000080>Function</FONT> LoadPictureResource(<FONT COLOR=#000080>ByVal</FONT> lResourceID <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>, _
<FONT COLOR=#000080>ByVal</FONT> sResourceType <FONT COLOR=#000080>As String</FONT>) <FONT COLOR=#000080>As</FONT> Picture
<FONT COLOR=#008000>'// ============================================================================</FONT>
<FONT COLOR=#008000>'// Funktion: |Gibt ein Picture-Objekt aus dem Resource-Teil zurück.</FONT>
<FONT COLOR=#008000>'// ----------------------------------------------------------------------------</FONT>
<FONT COLOR=#008000>'// Voraussetzungen: |-</FONT>
<FONT COLOR=#008000>'// ----------------------------------------------------------------------------</FONT>
<FONT COLOR=#008000>'// Parameter: |lResourceID = ID der "CUSTOM"-Resource</FONT>
<FONT COLOR=#008000>'// |sResourceType = Typ-Bezeichnung der Resource</FONT>
<FONT COLOR=#008000>'// ----------------------------------------------------------------------------</FONT>
<FONT COLOR=#008000>'// Rückgabe: |Picture-Objekt</FONT>
<FONT COLOR=#008000>'// ----------------------------------------------------------------------------</FONT>
<FONT COLOR=#008000>'// Erstellt: |25.05.2001; Stefan Kulpa von MS Beispiel RESFILE.EXE</FONT>
<FONT COLOR=#008000>'// ----------------------------------------------------------------------------</FONT>
<FONT COLOR=#008000>'// Geändert: |</FONT>
<FONT COLOR=#008000>'// |</FONT>
<FONT COLOR=#008000>'// ============================================================================</FONT>
<FONT COLOR=#008000>'// Beispielaufruf:</FONT>
<FONT COLOR=#008000>'// Set Picture1.Picture = LoadPictureResource(102, "Custom")</FONT>
<FONT COLOR=#008000>'// ============================================================================</FONT>
<FONT COLOR=#000080>Dim</FONT> abtResourceData() <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Byte</FONT>
<FONT COLOR=#000080>Dim</FONT> iFile <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>
<FONT COLOR=#000080>Dim</FONT> sTmpPath <FONT COLOR=#000080>As String</FONT>
<FONT COLOR=#000080>Dim</FONT> sFileName <FONT COLOR=#000080>As String</FONT>
<FONT COLOR=#008000>'// ============================================================================</FONT>
<FONT COLOR=#008000>'// 1. Schritt: Pfad zur einer Temp-Datei erzeugen/ermitteln</FONT>
<FONT COLOR=#008000>'// ============================================================================</FONT>
sTmpPath = Environ$("TEMP") <FONT COLOR=#008000>'etwas rudimentär ...</FONT>
<FONT COLOR=#000080>If</FONT> Right$(sTmpPath, 1) <> "\" <FONT COLOR=#000080>Then</FONT> sTmpPath = sTmpPath & "\"
sFileName = sTmpPath & "~Dummy.tmp" <FONT COLOR=#008000>'Pfad zusammenstellen</FONT>
<FONT COLOR=#000080>If</FONT> Dir(sFileName) <> "" <FONT COLOR=#000080>Then</FONT> Kill sFileName <FONT COLOR=#008000>'auch nicht sehr elegant ...</FONT>
<FONT COLOR=#008000>'// ============================================================================</FONT>
<FONT COLOR=#008000>'// 2. Schritt: Resource laden und in Datei schreiben</FONT>
<FONT COLOR=#008000>'// ============================================================================</FONT>
abtResourceData = LoadResData(lResourceID, sResourceType)
iFile = FreeFile
<FONT COLOR=#000080>Open</FONT> sFileName <FONT COLOR=#000080>For</FONT> <FONT COLOR=#000080>Binary</FONT> <FONT COLOR=#000080>Access</FONT> <FONT COLOR=#000080>Write</FONT> <FONT COLOR=#000080>As</FONT> #iFile
<FONT COLOR=#000080>Put</FONT> #iFile, , abtResourceData
<FONT COLOR=#000080>Close</FONT> #iFile
<FONT COLOR=#008000>'// ============================================================================</FONT>
<FONT COLOR=#008000>'// 3. Schritt: Datei laden und als Picture-Objekt zurückgeben</FONT>
<FONT COLOR=#008000>'// ============================================================================</FONT>
<FONT COLOR=#000080>Set</FONT> LoadPictureResource = LoadPicture(sFileName)
<FONT COLOR=#008000>'// ============================================================================</FONT>
<FONT COLOR=#008000>'// 4. Schritt: Dummydatei kann wieder gelöscht werden</FONT>
<FONT COLOR=#008000>'// ============================================================================</FONT>
Kill sFileName

<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>Function</FONT>

</FONT></PRE>

<font face="Verdana" size="2">HTH</font>

Byti
25.05.2001, 21:30
Ok funktioniert Danke!