Wenn Sie ein Programm erstellen, welches viele der speicherfreundlichen JPG-Bilder enthält, gibt es eine Möglichkeit, diese in eine ActiveX-DLL auszulagern. Somit lässt sich die Dateigrösse der eigentliche EXE-Datei auf ein Minimum reduzieren. 1. Erstellen einer Resource-Datei // JPG-Bilder 1000 JPG DISCARDABLE "Testbild.jpg" Anschliessend kompilieren wir diese Datei mit dem VB-Resourcencompiler (rc.exe) und erhalten die ResourcendateiBilder.res 2. Erstellen der DLL Option Explicit ' Benötigte API-Deklarationen Private Declare Function CreateStreamOnHGlobal Lib "ole32.dll" ( _ ByVal hGlobal As Long, _ ByVal fDeleteOnRelease As Long, _ lpIStream As IUnknown) As Long Private Declare Function OleLoadPicture Lib "oleaut32.dll" ( _ ByVal lpStream As IUnknown, _ ByVal lSize As Long, _ ByVal fRunmode As Long, _ riid As Any, _ lpIPicture As IPicture) As Long ' Bild aus RES-Datei laden und ' als StdPicture-Objekt zurückgeben Public Function LoadImageFromRES(ByVal nResID As Long, sType) As StdPicture Dim IID_IPicture(3) As Long Dim oPicture As IPicture Dim bImg() As Byte Dim nResult As Long Dim oStream As IUnknown Dim hGlobal As Long ' Bild als ByteArray aus RES-Datei laden bImg = LoadResData(nResID, sType) ' Array füllen um den KlassenID (CLSID) IID_IPICTURE ' zu simulieren IID_IPicture(0) = &H7BF80980 IID_IPicture(1) = &H101ABF32 IID_IPicture(2) = &HAA00BB8B IID_IPicture(3) = &HAB0C3000 ' Stream erstellen Call CreateStreamOnHGlobal(VarPtr(bImg(LBound(bImg))), 0, oStream) ' OLE IPicture-Objekt erstellen nResult = OleLoadPicture(oStream, 0, 0, IID_IPicture(0), oPicture) If nResult = 0 Then Set LoadImageFromRES = oPicture End If End Function Wir nennen die Klasse clsBilder und fügen dem Projekt die Resourcendatei hinzu. Danach kompilieren wir das Projekt zu unserer Bilder.dll. 3. Auslesen der JGP-Bilder aus der DLL Dim objBild As Bilder.clsBilder ' Name der dll, Name der Klasse Set objBild = New Bilder.clsBilder Set image1.Picture = objBild.LoadImageFromRES(1000, "JPG") Set objBild = Nothing Vergessen Sie nicht, zuerst einen Verweis auf die Bilder.dll (Menü Projekt - Verweise) zu setzten. Auf diese Weise lassen sich die Bilder allesamt in eine DLL-Datei auslagern und bei Bedarf in der eigentlichen Anwendung anzeigen. Dieser Tipp wurde bereits 17.233 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevDTA 3.0 Pro SEPA mit Kontonummernprüfung Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |