Problème exercice... [Résolu]

Signaler
Messages postés
6
Date d'inscription
mardi 13 janvier 2009
Statut
Membre
Dernière intervention
26 février 2009
-
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
-
Bonjour,

Je suis étudiant en première année de DUT Informatique, et je trouve le langage delphi super interéssant, donc je m'entraîne, je prends de l'avance sur mes camarades dans les exercices que le professeur nous donne! Le problème, c'est que je n'ai que 2h de Delphi une semaine sur deux et je n'ai pas le mail du professeur en cas de problème...

L'exercice sur lequel je bloque est énoncé de la manière suivante :

"Ce programme est composé de 2 Edits.
Dans le premier, l'utilisateur peut taper des lettres qui sont transformées en majuscules et affichées au fur et à mesure dans le deuxième Edit.

La fonction UPCASE retourne la majuscule correspondant à un caractère de l'alphabet.
Pour les lettres accentuées, il faut analyser tous les cas et utiliser pour cela un case of.
Pour le traitement du BackSpace(#8), utiliser la procédure DELETE et la fonction LENGTH concernant les chaînes de caractères."

Là où je bloque, c'est pour afficher au fur et à mesure, puis pour faire le case of, et enfin je ne comprends pas ce que je dois faire avec le BackSpace ni pourquoi ni comment utiliser DELETE et LENGTH...

Je voudrais bien que vous m'expliquiez la méthode à faire, sans me donner la solution.
Vous pouvez me donner la solution mais si vous pouviez mettre des commentaires pour que je comprenne comment marche les éléments sur lesquels je bloque ce serais sympathique. Je ne viens pas pour qu'on me donne juste la solution, je voudrais surtout comprendre ce que je fais.

Merci bien!
A bientôt

6 réponses

Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
Bonjour,

La piste à suivre est de mettre ton traitement sur l'évènement OnChange du premier Edit
et aussi utiliser les évènement OnKeyPress (ou OnKeyDown) pour le delete et BackSpace

Pour le reste tu trouveras tout ce dont tu as besoin sur le site...

bon courage

cantador
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
On va faire un compromis..

Voilà une fonction qui ne règle pas tout :

FUNCTION SupprAccents(S: STRING): STRING;
VAR i: Integer;
BEGIN
  FOR i := 1 TO Length(S) DO
    CASE Ord(S[i]) OF
      192..197: S[i] : = 'A';
      200..203: S[i] := 'E';
      204..207: S[i] := 'I';
      210..214: S[i] := 'O';
      217..220: S[i] := 'U';
      224..228: S[i] := 'a';
      232..235: S[i] := 'e';
      236..239: S[i] := 'i';
      242..246: S[i] := 'o';
      249..252: S[i] := 'u';
      253: S[i] := 'y';
      255: S[i] := 'y';
    END;
  Result := S;
END;

A toi de chercher pour la suite...

cantador
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
cantador
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
Inutile de dépenser trop d'énergie dans cet exercice...

Je te propose ceci :

PROCEDURE TForm1.Edit1Change(Sender: TObject);
BEGIN
  Edit2.text := AnsiUpperCase(Edit1.Text);
END;

cantador
Messages postés
6
Date d'inscription
mardi 13 janvier 2009
Statut
Membre
Dernière intervention
26 février 2009

Merci, je connaissais cette procédure mais ce n'est pas ce qui est demandé alors je l'ai pas fait lol
Mais je crois que je n'ai pas le choix parce que je n'arrive toujours pas à faire avec ce que tu m'as indiqué lol, si tu pouvais mettre le code source avec la méthode que tu m'as indiquée, ce serait sympathique! Merci

Non ca va pas être possible : On demande pas des codes tout cuit (voir le règlement). Puis c'est pas en faisant ton boulot que tu apprendras : Donc a toi de te creuser les neuronnes.