Label como el de los instaladores

Iniciado por SheKeL_C$, 5 Octubre 2008, 20:34 PM

0 Miembros y 1 Visitante están viendo este tema.

SheKeL_C$

Alguna vez cuando habeis estado instalando algo no os habeis fijado en un label del tipo

C:\...\archivo.exe

Me refiero a que corte la ruta del archivo porque es mas larga que la anchura del label.
Alguno conoce si hay alguna clase que lo haga

‭‭‭‭jackl007

porque no haces una pequeña funcion que detecte el ultimo caracterer: \
y luego recortas desde el primero le agregas los 3 puntitos y listo.
yapeeee!!

seba123neo

Hola, pues es un metodo horrible igualmente, prefiero que se vea la ruta entera y no lo ultimo antes que se vea lo ultimo y la ruta no se sepa cual es....igualmente proba con TextWidth te informa cuan ancho es el texto contenido en un control...por ejemplo si haces:

Código (vb) [Seleccionar]
Private Sub Command1_Click()
MsgBox Me.TextWidth(Label1)
End Sub


te tira el ancho...podes hacer que si el ancho es mas grande que un valor pues que haga eso que queres.

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

‭‭‭‭jackl007

bueno la funcion la acabo de hacer, es faciliisima:

Código (vb) [Seleccionar]


Function Recortar(cadena As String)
Dim i As Integer
i = InStrRev(cadena, "\")
Recortar = Mid(cadena, 1, 3) & "..." & Mid(cadena, i, Len(cadena) - i + 1)

End Function

'la llamas asi: MsgBox Recortar("C:\Documentos Personales\fotografia_1265.jpg")
'Resultado:  C:\...\fotografia_1265.jpg

cobein

#4

Private Declare Function PathCompactPathEx Lib "shlwapi.dll" Alias "PathCompactPathExA" (ByVal pszOut As String, ByVal pszSrc As String, ByVal cchMax As Long, ByVal dwFlags As Long) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long

Private Function CompactPath(sPath As String, lChars As Long) As String
    Dim sBuff As String * 260
    PathCompactPathEx sBuff, sPath, lChars, 0
    CompactPath = Left$(sBuff, lstrlen(sBuff))
End Function

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

‭‭‭‭jackl007

PD: cobein como te encantan usar las apis, jaja
es mas profesional... claro

cobein

hehehe, el comportamiento de la funcion esta bastante bueno, si pones una ruta con directorios y sin archivo lo corta de otra manera y eso.

Edite arriba porque le mande fruta en el flag.
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

SheKeL_C$


‭‭‭‭jackl007

normal... yo solo puse lo que tu qerias...
jeje
incluso hay un api que te devuelve la ruta corta del archivo
ShortPath creo que es, no recuerdo donde tenia un ejemplo con uso de esa api...

bisualvasic

io con el de jack,  parece ser mas rapido