Modifier une lettre d'un TEdit

Résolu
SylvainVV Messages postés 17 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 21 mai 2008 - 11 déc. 2007 à 21:19
SylvainVV Messages postés 17 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 21 mai 2008 - 12 déc. 2007 à 19:20
Bonjour,

dans le cadre d'un TP, je dois réaliser un jeu que je situe entre un motus et un pendu.

Un joueur entre un mots de quatre lettre, un autre un deuxième mots de quatre lettres
Si le mots est identique du joueur 2 est identique au mots du joueur 1, le joueur 2 gagne, sinon on remplace les mauvaises lettre par des tirets ( - ) et on garde affiché les bonnes et le joueur 2 retente sa change !

Mon problème intervient quand je remplace les lettres justes par des tirets. J'ai procédé de cette façon :

                  if editMotATrouver.text[1] <> editEssai.text[1]
L90 >            then editEssai.text[1] := ('-');
                  if editMotATrouver.text[2] <> editEssai.text[2]
L92 >            then editEssai.text[2] := ('-');
                  if editMotATrouver.text[3] <> editEssai.text[3]
L94 >            then editEssai.text[3] := ('-');
                  if editMotATrouver.text[4] <> editEssai.text[4]
L96 >            then editEssai.text[4] := ('-');

Voici les messages d'erreur.

[Erreur] codeFenExercice26v2.pas(90): La partie gauche n'est pas affectable
[Erreur] codeFenExercice26v2.pas(92): La partie gauche n'est pas affectable
[Erreur] codeFenExercice26v2.pas(94): La partie gauche n'est pas affectable
[Erreur] codeFenExercice26v2.pas(96): La partie gauche n'est pas affectable

Est-il possible de ne modifier qu'une seule lettre dans un TEdit ? Comment régler ce problème ?

Merci d'avance pour vos réponses !

6 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
11 déc. 2007 à 22:02
Salut,

il te faut passer par une variable intermédiaire :

Var aStr4 : String[4];
begin
  aStr4 := Edit1.Text;
  aStr4[2] := '_';
  Edit1.Text := aStr4;
end;

Comme c'est pour un TP je t'en donne pas plus

sinon on verra que ce n'est pas toi l'auteur

 
@+
Cirec

<hr siz="" />
3
cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
12 déc. 2007 à 09:59
salut,

même si tu début en Delphi/prog, je te recommand cette méthode:

procedure .....
var
 tmp : String; //ton commentaire (et la raison d'exister de cette var)
begin

//lit l'entrée
tmp := editEssai.text;

...
if editMotATrouver.text[1] <> tmp[1]
L90 >            then tmp[1] := ('-');
...
//met à jour l'affichage
editEssai.text := tmp;
end;

bon code,

Loda

PS: fait bien attention à récrire les commentaires dans ton style/voc
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
3
SylvainVV Messages postés 17 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 21 mai 2008
11 déc. 2007 à 22:07
génial ! Ca marche du feu de dieu !

Merci beaucoup pour le conseil, il ne m'en fallait pas plus !
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
11 déc. 2007 à 22:16
:)))

Salut,

Essaie quand même aussi avec une boucle... et tu t'affranchiras de la longueur des mots 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SylvainVV Messages postés 17 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 21 mai 2008
11 déc. 2007 à 22:23
Ce sera pour le prochain TP les boucles ! Celui là parle essentiellement des conditionnelles, le suivant sera sur les itérations ! Mais merci quand même de l'avoir signalé !
0
SylvainVV Messages postés 17 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 21 mai 2008
12 déc. 2007 à 19:20
c'est la méthode que j'ai utilisé, le message de cirec m'a guidé vers cette solution !

Merci bien pour vos réponses !
0
Rejoignez-nous