| |
VB.NET - Ein- und UmsteigerDateipfad auf bestimmte Länge (in Pixel) kürzen | | | Autor: keco | Datum: 27.03.10 16:00 |
| Hallo,
ich suche eine Möglichkeit einen Dateipfad auf eine gewisse Länge (angegeben in Pixel) zu kürzen. Ich weiß nur, wie ich einen Dateiname auf eine bestimmte Anzahl auf Zeichen kürzen kann. Das kann ich beispielsweise hiermit machen: <DllImport("shlwapi.dll", CharSet:=CharSet.Auto)> _
Shared Function PathCompactPathEx(ByVal pszOut As System.Text.StringBuilder, _
ByVal szPath As String, ByVal cchMax As Integer, ByVal dwFlags As Integer) _
As Boolean
End Function
Public Function CompactPath(ByVal fullName As String, ByVal length As _
Integer) As String
Dim sb As New System.Text.StringBuilder(length + 1)
Call PathCompactPathEx(sb, fullName, length, 0)
Return sb.ToString
End Function Wie kann ich aber nun bei gegebener Labellänge (eben in Pixel) den Dateipfad so kürzen, dass er mit der maximalen Anzahl an Zeichen darin angezeigt wird? Das Problem ist, dass ich nicht die Länge eines einzelnen Zeichens berechnen kann und dann einfach entsprechend umrechnen, weil die Zeichenlänge ja immer unterschiedlich ist. Weiß jemand Rat? | |
Re: Dateipfad auf bestimmte Länge (in Pixel) kürzen | | | Autor: VB.NET2005 | Datum: 27.03.10 17:20 |
| Erstmal ne Tabelle mit jedem Zeichen und dessen Länge in Pixel erstellen, mit Substring die einzelnen Zeichen durchgehen und die Pixelwerte addieren. | |
Re: Dateipfad auf bestimmte Länge (in Pixel) kürzen | | | Autor: VB.NET2005 | Datum: 27.03.10 17:33 |
| Und die Ungenauigkiet meiner Methode kann doch max. die Größe eines w sein. | |
Re: Dateipfad auf bestimmte Länge (in Pixel) kürzen | | | Autor: keco | Datum: 27.03.10 18:28 |
| @VB.NET2005
Dazu müsste ich durch jedes einzelne Zeichen iterieren und abbrechen, wenn die Länge erreicht/überschritten wurde. Ist das denn auch schnell genug?
@Snoopy
Durch die API erhalte ich bspw diesen gekürzten Pfad: C:\Users\keco\Documents\Visual...\Debug
Durch die Eigenschaft AutoEllipsis wird aber das Ende vom gesamten Pfad abgeschnitten. Der Dateiname bzw. Verzeichnisname ist demnach nicht mehr sofort zu erkennen, sondern nur durch das ToolTip.
Das wollte ich insofern verhindern, dass ich eben die maximal mögliche Anzahl an Zeichen ermittel, damit die API aufrufe, dann erhalte ich eben einen entsprechend gekürzten Pfad. Und das ToolTip erhält den vollständigen Pfad. | |
Re: Dateipfad auf bestimmte Länge (in Pixel) kürzen | | | Autor: keco | Datum: 27.03.10 18:32 |
| Ah ja, genau so etwas meinte ich. Ich kannte nur die MeasureString-Methode der Graphics-Klasse. Ich danke Dir. | |
Re: Dateipfad auf bestimmte Länge (in Pixel) kürzen | | | Autor: keco | Datum: 27.03.10 18:46 |
| Das mit dem ToolTip habe ich bereits, danke.
Auch danke an VB.NET2005 für die Idee. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
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. Weitere InfosTipp des Monats März 2024 Dieter OtterUTF-8 Konvertierung von Dateien und StringsVB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
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.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|