1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

TUTO Majuscule sur la première lettre sur une touche relachée

Discussion dans 'Windev Mobile' créé par Man, Mar 4, 2019.

  1. Man

    Man Active Member

    Inscrit:
    Juil 9, 2018
    Messages:
    290
    J'aime reçus:
    67
    [windev]
    Code (Text):

    PROCEDURE MajusculesSurPremièresLettres(PChampDeSaisie est un Champ)
    // on mémorise l'emplacement initial du curseur (important pour plus tard)
    sSource est une chaîne ANSI = PChampDeSaisie..Valeur
    nCurseur est un entier = PChampDeSaisie..Curseur
    sSeparateur est une chaîne = ""
    sResultat est une chaîne = ""
    //nCodeTouche est un entier = _EVE.wParam // on récupère le code de la touche appuyée
    // on distinguera le cas ou l'on est en train d'insérer du texte en milieu de chaine
    bInsertion est un booléen = nCurseur < Taille(PChampDeSaisie..Valeur)

    // on laisse les caractères spéciaux tranquilles
    //SI nCodeTouche<33 ALORS retour
    // on laisse tranquille les flèches directionnelles aussi
    //SI nCodeTouche>= 0x23 _ET_ nCodeTouche <=0x23 ALORS retour
    // pour chaque mot de notre chaine ...
    // (ici différents types de séparateurs tolérés)
    POUR TOUTE CHAÎNE sMot, nPositionSeparateur DE sSource SÉPARÉE PAR [" ","-",";","/",":","_",".","?","!",","]
        /// on met la première lettre en majuscule, et le reste en minuscule
        // un faux séparateur ne nous intéresse pas (avant le premier mot)
        SI nPositionSeparateur <2 ALORS
            sSeparateur = " "
        SINON
            // on récupère le caractère du séparateur (virgule ? espace ? etc ?)
            sSeparateur = Milieu(sSource,nPositionSeparateur-1,1)
           
        FIN
        sResultat+= sSeparateur +  Majuscule(sMot[[1]]) + Minuscule(Milieu(sMot,2))
        //sResultat+= " " + Majuscule(sMot[[1]]) + Minuscule(Milieu(sMot,2))
    FIN
    // on réaffecte la chaine au champ
    PChampDeSaisie = Milieu(sResultat,2) // on retire le premier espace de la boucle
    // en n'oubliant pas de passer le curseur à la position suivante (telle que mémorisée au début + 1)
    SI PAS bInsertion ALORS
        PChampDeSaisie..Curseur = nCurseur+1
    SINON
        // sauf si on est en insertion, ou l'on remet le curseur au même endroit.
        PChampDeSaisie..Curseur = nCurseur
       
    FIN
    //fin
    //fin
    RENVOYER sResultat
     
    [/windev]
    Bonjour j'ai pensé partager avec vous ce tuto
     
    Tags:
    chocolatus, Bip_bip et suenodesign aiment ça.

Partager cette page

Chargement...