In einem unserer früheren Tipps haben wir Ihnen gezeigt, wie sich die Größe eines Bildes unter Verwendung eines Image-Controls ermitteln lässt. Der Nachteil dieser Variante ist, dass man eben auf der Form ein (unsichtbares) Image-Objekt benötigt. Heute möchten wir Ihnen eine Prozedur vorstellen, mit der sich ebenfalls die Größe eines Bildes ermitteln lässt - jedoch ohne hierfür ein Image-Control verwenden zu müssen. Ein weiterer Vorteil ist, dass Sie der Prozedur optional noch mitteilen können, in welcher Maßeinheit Sie die Größe ermittelt haben möchten (Twips, Pixel, usw.). Und hier der Code: ' Größe eines Bildes ermitteln Public Sub GetPictureSize(F As Form, _ pPicture As StdPicture, _ nWidth As Single, nHeight As Single, _ Optional ByVal nScaleMode As _ VBRUN.ScaleModeConstants = vbTwips) With pPicture nWidth = F.ScaleX(.Width, vbHimetric, nScaleMode) nHeight = F.ScaleY(.Height, vbHimetric, nScaleMode) End With End Sub Die Größenermittlung erfolgt über die ScaleX und ScaleY-Eigenschaften. Diese lassen sich jedoch nur auf ein Objekt anwenden, so dass Sie der Prozedur im ersten Parameter einfach ein Form-Objekt übergeben. Wichtig für die korrekte Umrechnung in die gewünschte Maßeinheit ist zu wissen, dass die Maßeinheit eines Standard-Pictures (StdPicture) immer vbHimetric ist. Der zweite Parameter erwartet das Bild. Übergeben Sie entweder die Picture-Eigenschaft eines existierenden Controls oder rufen Sie die Prozedur mit LoadPicture(Dateiname) auf. Im dritten und vierten Parameter bekommen Sie dann von der Prozedur die gewünschte Bildgröße zurückgeliefert. Der letzte Parameter ist optional und legt die gewünschte Maßeinheit fest. Wird nScaleMode nicht angegeben, werden Höhe und Breite des Bildes in Twips zurückgegeben. Beispiel: Dim nWidth As Single Dim nHeight As Single ' Bildgröße in Pixels GetPictureSize Me, LoadPicture("d:\bild1.jpg"), _ nWidth, nHeight, vbPixels MsgBox "Bildgröße: " & Format$(nWidth, "0") & _ Format$(nHeight, "0") Hinweis: Dieser Tipp wurde bereits 25.813 mal aufgerufen.
Anzeige
![]() ![]() ![]() (einschl. Beispielprojekt!) 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. |
sevISDN 1.0 ![]() Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats sevWizard für VB5/6 ![]() Professionelle Assistenten im Handumdrehen Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) |
||||||||||||||||
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. |