Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > WinDev
WinDev Forum d'entraide sur la programmation en WinDev
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 09/01/2013, 23h26   #1
kohl37
Invité de passage
 
Homme
Inscription : janvier 2013
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2013
Messages : 10
Points : 3
Points : 3
Par défaut rendre un ou plusieurs caractères insaisissables dans un champ de saisie

Mon gros problème du jour est le suivant:

Je souhaite afficher une chaîne de caractère dans un champ de saisi, seulement je ne veux pas que cette chaîne de caractère soit entièrement modifiable car je veux pas pas que l'utilisateur modifie certains de ces caractères.

Par ailleurs je veux que le curseur se place directement sur le 1er caractère pouvant être modifié et qu'une fois que l'utilisateur modifie se caractère, on le place directement sur le prochain caractère pouvant être modifié.

Je donne un exemple:

J'ai une chaîne de caractère égale à "Chaîne".

Maintenant je veux afficher cette chaîne de caractère dans un champ de saisi pour que l'utilisateur puisse modifier les lettres "h" et "n" uniquement et qu'une fois affiché, la lettre "h" soit sélectionné directement pour pouvoir la modifier. Une fois que la lettre "h" est modifié par l'utilisateur, la lettre "n" est alors sélectionné à son tour.

Et si l'utilisateur tente de modifier un autre caractère, la modification ne serai pas pris en compte.
kohl37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 02h12   #2
kohl37
Invité de passage
 
Homme
Inscription : janvier 2013
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2013
Messages : 10
Points : 3
Points : 3
Le code ci-dessous me permet de sélectionner une partie de la chaîne que j'affiche dans un champ de saisi. Mais est-ce normal que ça ne marche que si mon champ est en RTF??

Code :
1
2
3
//Sélectionne le caractère situé à la position 3 jusqu'a la position 5
SAI_Saisie1..Curseur = 3
SAI_Saisie1..FinCurseur = 5
Ce code sélectionne bien ce que je veux mais il ne me permet pas d'être directement en saisie sur la parti sélectionnée.

Comment faire?
kohl37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 07h56   #3
miripesage
Membre Expert
 
Avatar de miripesage
 
Homme Said
pesage electronique
Inscription : novembre 2009
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Said
Localisation : Algérie

Informations professionnelles :
Activité : pesage electronique
Secteur : Industrie

Informations forums :
Inscription : novembre 2009
Messages : 697
Points : 1 114
Points : 1 114
Bonjour, "Description..onglet détail", décoche "Effacement automatique" et "avec sélection en affichage"(optionnel). Bien sûr, il faut aussi que dans IHM, "En saisie" doit-être coché.
__________________
Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!
miripesage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 13h00   #4
kohl37
Invité de passage
 
Homme
Inscription : janvier 2013
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2013
Messages : 10
Points : 3
Points : 3
J'ai résolu ce problème avec la propriété ..effacementAtuomatique.

Maintenant me manque plus qu'à trouver comment interdire la modification de certains caractères
kohl37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 13h49   #5
Atsibat
Membre expérimenté
 
Développeur informatique
Inscription : mars 2009
Messages : 300
Détails du profil
Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2009
Messages : 300
Points : 574
Points : 574
Voici deux solutions :

solution simple et traditionnellement utilisés (la bonne solution sans doute):
Tu décomposes ta chaine en sous-chaines
Tu mets les sous chaines dans autant de champs de saisie (sans libellés)
que nécessaire avec saisie modifiable pour les parties modifiables.
A la validation tu recompose ta chaine.

solution tordue (et il y en a d'autres)
tu laisse tout en saisie,
à chaque modification tu vérifie que les parties qui ne doivent pas être modifiées n'ont pas changé.
Si elles ont changées tu les remplace par les caractères d'origine.
Tu dois pouvoir faire ça en utilisant ta chaine comme un tableau de caractères
(ce qu'elle est en réalité d'ailleurs)

L'avantage de la première solution est que l'IHM est plus claire pour l'utilisateur qui comprends bien ce que tu attends de lui.
Atsibat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 14h57   #6
kohl37
Invité de passage
 
Homme
Inscription : janvier 2013
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2013
Messages : 10
Points : 3
Points : 3
Ces 2 solutions m'on l'air d'être les bonnes, je vais tester ça voir si ça marche comme je veux.

Merci en tout cas pour les propositions.
kohl37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 15h33   #7
Ry_Yo
Membre confirmé
 
Inscription : mars 2003
Messages : 194
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 194
Points : 272
Points : 272
Bonjour,

sinon une autre solution purement algorithmique : l'utilisation des expressions régulières.

par rapport à votre exemple :
Code :
1
2
3
SI VérifieExpressionRégulière("Chaîne", "C[a-z]aî[a-z]e") = FAUX ALORS
     Erreur("Veuillez modifier le h et le n uniquement")
FIN
Ry_Yo est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h13.


 
 
 
 
Partenaires

Hébergement Web