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

C++Builder Discussion :

[BCB6]Complémenté automatiquement une saisie [Débutant(e)]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 149
    Par défaut [BCB6]Complémenté automatiquement une saisie
    Bonjour tout le monde,
    Je suis en train de me faire une nouvelle application et je me heurte à une difficulté.
    Lorsque je saisie du code au format HTML dans un Memo, j'aimerais que si on tape une phrase avec des caractères spéciaux, au simple fait de taper une "&", un menu apparait me proposant directement la suite du code genre "é" pour le caractère "é". Si on viens en revanche à taper "&e" il sera en mesure d'isolé plusieurs groupe de possibilité. En outre le menu doit se présenté sous la forme:

    É É
    &Ecric; Ê
    Ë Ë
    etc...
    Si une sélection est prise soit par la touche "entrée" soit par le clique de la souris, elle réaliser le complément du "&" en "é".
    Dreamweaver sait faire cela oui mais la je travaille hors logiciel d'édition externe à mon programme.

    Un petit point à rajouté et après quelques recherches.
    Si j'utilise le onEvent du TMemo, je peux faire un test sur la saisie en cours à savoir le "&" et afficher un menu à ou se trouve le curseur ?
    Si oui alors comment réaliser le test et comment faire le menu ?

    J'espère que mon post ne sera pas trop compliqué à comprendre.
    J'aimerais vraiment comprendre comment réalisé cela avec BCB6.
    Cordialement.

  2. #2
    Membre confirmé Avatar de Poilou
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 59
    Par défaut
    Bonjour,

    Concernant le test, je propose de créer un liste (TStringList) de toutes les possiblités de code é,è,ë,ê etc...

    Ensuite,je pense que l'evènement OnkeyUp du TMemo est approprié, il va se déclencher à chaque touche de clavier.
    Tu peux, par exemple, tester si le caractere "&" est frappé, stocker les caracteres suivnats (si il y en a) et tester avec le contenu de la stringlist.

    Pour l'affichage du menu, je pense que tu vas trouver des exemples dans la faq et sur le forum

    Bon courage

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 149
    Par défaut
    Bonjour,
    Comment créer une TStringList ?
    Par ce qu'à ce moment la, ca pourrais devenir interressant de voir le code qu'il faudrais généré pour mettre en oeuvre cette fonction.
    Cordialement.

  4. #4
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Pour creer un TStringList c'est simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TStringList *list = new TStringList() ;
    Pour ajouter des élements à la liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    list->Add ("Element1" );
    list->Add ("Element2" );
    list->Add ("Element3" );
    ou alors en chargeant depuis un fichier qui contient toutes les lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list->LoadFromFile( "D:\\MonFichier.txt" ) ;
    Important, ne pas oublier de liberer (détruire) l'objet quand tu n'en a plus besoins :


  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 149
    Par défaut
    Dans le cas ou ca serais un fichier externe, comment serais t il organisé ?
    Je vais parraître un peu noob, je m'en excuse, mais il faut bien que je comprene comment cela fonctionne pour m'améliorer.
    Cordialement.

  6. #6
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Tu a raison de poser des questions...

    La méthode LoadFromFile() charge un fichier par ligne. Chaque ligne de ton fichier sera dans un élement de ta TStringList.

    Par exemple si tu a un fichier texte comme ça :
    aaaaaa
    bbbbbb
    cccccc
    dddddd
    Et que tu utilise la methode list->LoadFromFile("D:\\fichier.txt" ); pour charger ce fichier, se sera équivalant à faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    list->Clear() ;
    list->Add( "aaaaaa" ) ;
    list->Add( "bbbbbb" ) ;
    list->Add( "cccccc" ) ;
    list->Add( "dddddd" ) ;
    Donc chaque ligne de fichier texte = un élément dans ta StringList .

    Ensuite pour accéder aux éléments de ta StringList tu fais :

    i est la position dans la liste (en sachant que le premier élément est a la position 0)

    Pour bien comprendre, créer un texte de quelques lignes et essai :

    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
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    //création de la TStringList
      TStringList *list = new TStringList() ;
     
    //Chargement du fichier
      list->LoadFromFile( "D:\\essai.txt" ) ;
     
    //Affichage de chaque ligne de la TStringList
      for( int i =0; i< list->Count; i++ )
      {
        ShowMessage( list->Strings[i] );
      }
     
    //Libération du TStringList
      delete list ;
    }

  7. #7
    Membre confirmé Avatar de Poilou
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 59
    Par défaut
    Si tu pars d'un fichier, il va créer autant de ligne dans la StringList qu'il y en a dans le fichier.

    N'hésite à utiliser l'aide de builder. Pour ce genre de question, elle remplit parfaitement son rôle
    Description

    La méthode LoadFromFile remplit la liste de l'objet TStrings avec le contenu du fichier spécifié par FileName. Chaque ligne du fichier (séparée par des caractères retour chariot et/ou passage à la ligne) est ajoutée comme une chaîne de la liste
    Aprés, si tu as besoin d'aide sur l'organisation et "l'articulation" de code, il y a le forum

    EDIT : Grillé par la fraicheur

Discussions similaires

  1. Procédures pour une saisie semi automatique
    Par michel71 dans le forum Contribuez
    Réponses: 3
    Dernier message: 15/02/2010, 15h14
  2. [AC-2002] Validation automatique d'une saisie
    Par ROUSSIGNE dans le forum IHM
    Réponses: 2
    Dernier message: 10/11/2009, 10h52
  3. Compléter automatiquement la saisie d'une ville
    Par Dendrite dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/10/2009, 10h10
  4. Valider automatiquement après une saisie ?
    Par nd25 dans le forum Débuter
    Réponses: 3
    Dernier message: 05/08/2008, 13h03
  5. Sous-formulaire créer une saisie automatique
    Par Mimi-des-îles dans le forum Access
    Réponses: 2
    Dernier message: 23/02/2006, 14h47

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