IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

[A-00] Evaluer Taille Texte dans un Etat


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 57
    Points : 59
    Points
    59
    Par défaut [A-00] Evaluer Taille Texte dans un Etat
    Bonjour

    dans un état, j'ai plusieurs contraintes sur une zone de texte à afficher ...
    -> la taille doit être fixe, pas de propriété "AutoExtensible" utilisable...
    -> le texte doit apparaitre centré...

    l'inconvénient est que le texte figurant dans certains enregistrements risque de dépasser la taille de la zone de texte de l'état,
    Soit : pour un texte court, c'est OK..
    mais pour par exemple "ceci est un texte plus long, dont je voudrais connaître la taille", la représentation risque d'être catastrophique...
    aussi j'aimerais connaître la taille du texte à présenter
    et me permettre ainsi d'effectuer un affichage du genre "ceci est un texte..."

    bien évidemment en fonction de la police et des attributs de taille et police à considérer...

    Merci d'avance pour vos tuyaux

  2. #2
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour,

    Une solution : tu affiches un champ calculé qui vérifie la longueur de ton texte et qui agit en conséquence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =VraiFaux(NbCar([MonChamp])>15;[MonChamp] & "...";[MonChamp])
    A adapter bien sûr !
    Gabout

  3. #3
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    Bonjour,

    Suivant la polices et la typographie utilisée ça ne fonctionnera pas tout le temps.

    Il faut calculer la taille en twips du controle et la taille des caractères.

    Voici une petite function qui fait ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Function truncator(Ctrl As Control, ctrl2 As Control) As String
    Dim X As Long
    Dim Xsusp As Long
    Dim y As Long
    Dim cch As Long
    Dim lmax As Long
    Dim sTexte As String
    Dim iNbreCar As Integer
    Dim i As Integer
     
    sTexte = Ctrl.Value
    iNbreCar = Len(Ctrl.Value)
     
    WizHook.Key = 51488399
    WizHook.TwipsFromFont Ctrl.FontName, Ctrl.FontSize, Ctrl.FontWeight, Ctrl.FontItalic, Ctrl.FontUnderline, cch, sTexte, lmax, X, y
     
    ' controle trop court on rajoute les points de suspension
    If ctrl2.Width < X Then
       WizHook.TwipsFromFont Ctrl.FontName, Ctrl.FontSize, Ctrl.FontWeight, Ctrl.FontItalic, Ctrl.FontUnderline, cch, "...", lmax, Xsusp, y
    End If
     
    ' on enlève un caractère à droite jusqu'à ce que ça rentre (avec les points de suspension)
    Do While X + Xsusp > ctrl2.Width
           iNbreCar = iNbreCar - 1
           sTexte = Left(sTexte, iNbreCar)
           WizHook.TwipsFromFont Ctrl.FontName, Ctrl.FontSize, Ctrl.FontWeight, Ctrl.FontItalic, Ctrl.FontUnderline, cch, Left(sTexte, iNbreCar), lmax, X, y
           Debug.Print sTexte, ctrl2.Width, X, Xsusp
    Loop
     
    If Xsusp > 0 Then
       truncator = Left(Ctrl.Value, iNbreCar) & "..."
    Else
       truncator = Left(Ctrl.Value, iNbreCar)
    End If
    End Function
    On cache le controle dépendant de la table (celui contenant le texte entier) et on crée un 2ème controle texte qui affichera la nouvelle transcription.

    l'appel se fait dans l'événement au formatage de la zone détail.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.montexte = truncator(me.monchamp,me.montexte)
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  4. #4
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    A conserver précieusement !
    Gabout

Discussions similaires

  1. biffer texte dans un etat
    Par Jocelin dans le forum Modélisation
    Réponses: 7
    Dernier message: 06/06/2008, 23h12
  2. Réponses: 12
    Dernier message: 31/08/2007, 15h25
  3. Afficher du texte dans un Etat: Message d'erreur dans acces.
    Par nodogeid dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 31/05/2007, 10h20
  4. [CR] fichier texte dans un etat
    Par fab dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 12/09/2003, 10h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo