Accueil > > > JUSTILABEL
JUSTILABEL
Information sur la source
Description
Alignement justifié d'un Label.
Source
- 'Nom: JustiLabel
- 'Arguments: Etiquette (Label à justifier)
- 'Description: justifie l'alignement du texte d'un Label.
- 'Remarque: le Label à justifier ne doit pas se trouver dans un contrôle conteneur.
-
- Option Explicit
-
- Public Sub JustiLabel(Etiquette As Label)
- Dim SaveScale As Integer
- Dim Texte As String
- Dim TStr As String
- Dim Mot As String
- Dim TInt As Integer
- Dim DebMot As Integer
- Dim NbrMots As Integer
- Dim Intervalle As Double
- Dim TotIntervalle As Double
- Dim CptIntervalle As Long
- Dim TBoo As Boolean
- Dim LastLigne As Boolean
- Dim Forme As Object
- Set Forme = Etiquette.Container
- SaveScale = Forme.ScaleMode
- Forme.ScaleMode = 3
- Etiquette.Visible = False
- Forme.CurrentX = Etiquette.Left
- Forme.CurrentY = Etiquette.Top
- Forme.Font = Etiquette.Font
- Forme.FontBold = Etiquette.FontBold
- Forme.FontItalic = Etiquette.FontItalic
- Forme.FontName = Etiquette.FontName
- Forme.FontSize = Etiquette.FontSize
- Forme.FontStrikethru = Etiquette.FontStrikethru
- Forme.FontUnderline = Etiquette.FontUnderline
- Forme.ForeColor = Etiquette.ForeColor
- Texte = Etiquette.Caption
- LastLigne = False
- Do While (Texte <> "")
- TInt = 0
- TStr = ""
- TBoo = False
- Do While (Forme.TextWidth(TStr) < Etiquette.Width)
- TInt = TInt + 1
- If (TStr = Left(Texte, TInt)) Then
- TBoo = True
- LastLigne = True
- Exit Do
- End If
- TStr = Left(Texte, TInt)
- Loop
- TStr = Left(Texte, TInt - 1)
- Do While (TBoo = False)
- If ((Right(TStr, 1) <> " ") And (Right(TStr, 1) <> "-") And (Right(TStr, 1) <> ",") And (Right(TStr, 1) <> ".") And (Right(TStr, 1) <> ";") And (Right(TStr, 1) <> "?") And (Right(TStr, 1) <> "!")) Then
- TInt = TInt - 1
- TStr = Left(Texte, TInt - 1)
- Else
- TBoo = True
- End If
- Loop
- If (Left(TStr, 1) = " ") Then
- TStr = Right(TStr, TInt - 2)
- End If
- NbrMots = 0
- TInt = 0
- Do While (TInt <> Len(TStr))
- DebMot = TInt
- Do While ((TInt <> Len(TStr)) And (Mid(TStr, TInt + 1, 1) <> " "))
- TInt = TInt + 1
- Loop
- If (TInt <> Len(TStr)) Then
- TInt = TInt + 1
- End If
- NbrMots = NbrMots + 1
- Loop
- If (NbrMots > 1) Then
- Intervalle = (Etiquette.Width - (Forme.TextWidth(TStr))) / (NbrMots - 1)
- Else
- Intervalle = 0
- End If
- CptIntervalle = 0
- TotIntervalle = 0
- DebMot = 0
- TInt = 0
- Do While (TInt <> Len(TStr))
- DebMot = TInt
- Do While ((TInt <> Len(TStr)) And (Mid(TStr, TInt + 1, 1) <> " "))
- TInt = TInt + 1
- Loop
- Mot = Mid(TStr, DebMot + 1, TInt - DebMot)
- Forme.Print Mot;
- Forme.Print " ";
- If (LastLigne = False) Then
- TotIntervalle = TotIntervalle + Intervalle
- Forme.CurrentX = Forme.CurrentX + CInt(TotIntervalle - CptIntervalle)
- CptIntervalle = CptIntervalle + CInt(TotIntervalle - CptIntervalle)
- End If
- If (TInt <> Len(TStr)) Then
- TInt = TInt + 1
- End If
- Loop
- Forme.Print
- Texte = Right(Texte, (Len(Texte) - TInt))
- Forme.CurrentX = Etiquette.Left
- Loop
- Forme.ScaleMode = SaveScale
- End Sub
-
'Nom: JustiLabel
'Arguments: Etiquette (Label à justifier)
'Description: justifie l'alignement du texte d'un Label.
'Remarque: le Label à justifier ne doit pas se trouver dans un contrôle conteneur.
Option Explicit
Public Sub JustiLabel(Etiquette As Label)
Dim SaveScale As Integer
Dim Texte As String
Dim TStr As String
Dim Mot As String
Dim TInt As Integer
Dim DebMot As Integer
Dim NbrMots As Integer
Dim Intervalle As Double
Dim TotIntervalle As Double
Dim CptIntervalle As Long
Dim TBoo As Boolean
Dim LastLigne As Boolean
Dim Forme As Object
Set Forme = Etiquette.Container
SaveScale = Forme.ScaleMode
Forme.ScaleMode = 3
Etiquette.Visible = False
Forme.CurrentX = Etiquette.Left
Forme.CurrentY = Etiquette.Top
Forme.Font = Etiquette.Font
Forme.FontBold = Etiquette.FontBold
Forme.FontItalic = Etiquette.FontItalic
Forme.FontName = Etiquette.FontName
Forme.FontSize = Etiquette.FontSize
Forme.FontStrikethru = Etiquette.FontStrikethru
Forme.FontUnderline = Etiquette.FontUnderline
Forme.ForeColor = Etiquette.ForeColor
Texte = Etiquette.Caption
LastLigne = False
Do While (Texte <> "")
TInt = 0
TStr = ""
TBoo = False
Do While (Forme.TextWidth(TStr) < Etiquette.Width)
TInt = TInt + 1
If (TStr = Left(Texte, TInt)) Then
TBoo = True
LastLigne = True
Exit Do
End If
TStr = Left(Texte, TInt)
Loop
TStr = Left(Texte, TInt - 1)
Do While (TBoo = False)
If ((Right(TStr, 1) <> " ") And (Right(TStr, 1) <> "-") And (Right(TStr, 1) <> ",") And (Right(TStr, 1) <> ".") And (Right(TStr, 1) <> ";") And (Right(TStr, 1) <> "?") And (Right(TStr, 1) <> "!")) Then
TInt = TInt - 1
TStr = Left(Texte, TInt - 1)
Else
TBoo = True
End If
Loop
If (Left(TStr, 1) = " ") Then
TStr = Right(TStr, TInt - 2)
End If
NbrMots = 0
TInt = 0
Do While (TInt <> Len(TStr))
DebMot = TInt
Do While ((TInt <> Len(TStr)) And (Mid(TStr, TInt + 1, 1) <> " "))
TInt = TInt + 1
Loop
If (TInt <> Len(TStr)) Then
TInt = TInt + 1
End If
NbrMots = NbrMots + 1
Loop
If (NbrMots > 1) Then
Intervalle = (Etiquette.Width - (Forme.TextWidth(TStr))) / (NbrMots - 1)
Else
Intervalle = 0
End If
CptIntervalle = 0
TotIntervalle = 0
DebMot = 0
TInt = 0
Do While (TInt <> Len(TStr))
DebMot = TInt
Do While ((TInt <> Len(TStr)) And (Mid(TStr, TInt + 1, 1) <> " "))
TInt = TInt + 1
Loop
Mot = Mid(TStr, DebMot + 1, TInt - DebMot)
Forme.Print Mot;
Forme.Print " ";
If (LastLigne = False) Then
TotIntervalle = TotIntervalle + Intervalle
Forme.CurrentX = Forme.CurrentX + CInt(TotIntervalle - CptIntervalle)
CptIntervalle = CptIntervalle + CInt(TotIntervalle - CptIntervalle)
End If
If (TInt <> Len(TStr)) Then
TInt = TInt + 1
End If
Loop
Forme.Print
Texte = Right(Texte, (Len(Texte) - TInt))
Forme.CurrentX = Etiquette.Left
Loop
Forme.ScaleMode = SaveScale
End Sub
Conclusion
Ce n''est pas grand chose, mais j'ai créé ce module parce que je devais "justifier" l'alignement d'un Label dans un Splash Screen.
Historique
- 25 novembre 2005 11:17:21 :
- Mise à jour de la source suite à la sympathique remarque de juju62611.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Alignement d'un label [ par tbdams ]
Salut,Je veux afficher le chemin complet d'un fichier dans un label. Je veux voir apparaitre en priorité la fin du chemin(si le chemin complet est tro
Justifier un texte dans un label? [ par lucky2222 ]
est'il possible de justifier un texte dans un label comme dans wod par exemple? c'est a dire d'avoir un alignement du texte a gauche et a droit du tex
label autosize printer [ par MrDogbert ]
Un label avec la propriete autosize contenant plusieurs lignes (caption contient plusieurs fois chr(13)) s'imprime sans problemes lorsque je fais form
Label au dessus d'une video [ par Kato ]
Je souhaite afficher un control Label avec un fond transparent (jusque là ok) en premier plan d'une video (Avec l'ocx de Media Player) à l'instar d'un
souligne comme WEB [ par ronando ]
Je veux que quand je passe ma souris sur un label le texte se souligne. Comme ds un site web en fait. Ca j'y arrive avec la propriété underline et la
probleme label [ par damd ]
salut tout le mondej'aurai aime savoir s'il etait possible de definir un emplacement du texte sur in label.par exemple placer le texte en haut a gauch
petitS problemeS [ par damd ]
salut a tousj'ai trois petits problemes a resoudre:- j'aimerai savoir s'il est possible d'ecrire verticalement le texte d'un label.- j'ai aussi un aut
manipuler un objet dont le nom est stocké dans une variable [ par poiskail ]
Bonjour,Je possède un prog qui créer des labels dont le nom est est formé de cette façon : "label" & nomFichier ou nomFichier est un String. Pour
comment tester l'existence d'un objet?? [ par poiskail ]
Bonjour, je cherche à savoir si par exemple, il est possible de tester l'existence d'un label (avec son nom) :if Controls(nomLabel).Exists = false th
Propriété Controltiptext [ par iena ]
J'aimerais savoir comment fonction la propriété ControlTiptext pour un Label.Car quand je donne une valeur à cette propriété, il ne se passe absolumen
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
ACCES ODBCACCES ODBC par yannickcottin
Cliquez pour lire la suite par yannickcottin
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|