Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
La funzione PathCompactPath (Articolo completo)

La funzione PathCompactPath ha lo scopo di troncare il nome del percorso di un file in modo da adattarlo ad una lunghezza predefinita, ad esempio quella di un'etichetta.
La dichiarazione della funzione è la seguente

Declare Function PathCompactPath Lib "shlwapi" Alias "PathCompactPathA" _ (ByVal hDC As Long, ByVal lpszPath As String, ByVal dx As Long) As Long

La funzione ritorna 1 in caso di successo e 0 in caso di errore. Si può naturalmente visualizzare il valore di ritorno assegnandolo ad una variabile (numerica in questo caso) e visualizzandola in una finestra di messaggio attraverso la funzione MsgBox.
Come si nota dalla dichiarazione poco sopra, i parametri da passare alla funzione sono ben tre: hDC, lpszPath e dx. Vediamoli uno per uno nella seguente tabella:

hDC rappresenta il device context ossia il riferimento alla struttura che contiene le informazioni che regolano la visualizzazione di un testo o di elementi grafici. Per indicare il device context della form nella quale si sta operando non sono necessarie operazioni particolari: basta infatti indicare in modo generico:
Me.hDC
lpszPath rappresenta il percorso da troncare in caso di superamento di un limite in pixel. Il limite può ad esempio essere rappresentato dalla lunghezza del contenitore che visualizza il testo: nel caso del testo in una Label il limite sarà rappresentato proprio dalla lunghezza della Label. La determinazione del limite comunque non è automatica ma viene determinata dal parametro dx
dx Rappresenta la lunghezza in pixel superata la quale si intende troncare il testo.

Facciamo un piccolo esempio.
Iniziamo col dichiarare la funzione all'interno del modulo di codice. A tal fine aggiungiamo alla dichiarazione la parola Private:

Private Declare Function PathCompactPath Lib "shlwapi" Alias "PathCompactPathA" _ (ByVal hDC As Long, ByVal lpszPath As String, ByVal dx As Long) As Long

Adesso aggiungiamo alla form una casella di testo denominata come da impostazione predefinita Command1 ed un'etichetta chiamata Label1.
Introduciamo quindi la routine di apertura della form ed inseriamo il codice che assegna all'etichetta il percorso che vogliamo troncare ossia l'indirizzo di VBItalia ossia http://digilander.iol.it/VBItalia/INDICE.html:

Private Sub Form_Load()
Label1.Caption = "http://digilander.iol.it/VBItalia/INDICE.html"
End Sub

Adesso si provi ad aggiustare la lunghezza della Label in modo che non venga visualizzato tutto il testo per intero, proprio come nella figura sottostante:



Nella routine Command1_Click introduciamo la dichiarazione delle tre variabili che passeremo alla funzione:

Private Sub Command1_Click()
Dim lhDC As Long, Lunghezza As Long
Dim Nome As String

Ora definiamo la prima variabile, Nome, come il percorso che punta a VBItalia ossia:

Nome = "http://digilander.iol.it/VBItalia/INDICE.html"

ora definiamo l'unità di misura di Form1 per le coordinate che definiscono la posizione degli oggetti:

Me.ScaleMode = vbPixels

ora impostiamo la lunghezza limite come la differenza tra la lunghezza del controllo Label e lo spessore della linea che delimita il controllo, linea visibile soltanto impostando un BorderStyle differente da 0:

Lunghezza = Label1.Width - Me.DrawWidth

adesso definiamo il device context già analizzato nel corso di questo articolo:

lhDC = Me.hDC

e per finire richiamiamo la funzione assegnandole i tre valori definiti prima:

PathCompactPath lhDC, Nome, Lunghezza

Mostriamo ora il risultato (ossia il nome troncato) nella Label e chiudiamo la routine:

Label1.Caption = Nome
End Sub

Il risultato, una volta avviata l'applicazione e premuto Command1, sarà il seguente:





Archivio:ndexed
Lezioni Commenta questa lezione Invia la tua guida Avviso per le nuove lezioni
Proponi un argomento

Visual Basic Italia© copyright 2000 - tutti i diritti riservati
E-mail:
vbitalia@libero.it