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 :

Recherche vertical dans TMemo


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 60

    Informations forums :
    Inscription : Novembre 2004
    Messages : 669
    Par défaut Recherche vertical dans TMemo
    Bonjour

    SVP
    J'aimerais lancer une recherche dans un TMemo,

    Ce code recherche comme ca " A, B, C ,D ",

    Moi je voudrais rechercher comme ca :
    A
    B
    C
    D
    Mais il y a pas la proprieté " ItemIndex " et " Items " au TMemo
    Y aurait-il un moyen de rajouter ces proprietées au TMemo comme pour la fabrication de composants ?.

    Merci pour votre aide et A++

    Que pourai-je rajouter a ce code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void __fastcall TForm1::Button1Click(TObect* Sender)
    {
     int SelPos = Memo1->Lines->Text.Pos(Edit1->Text);
     if(SelPos > 0)
       {
       Memo1->SetFocus();
       Memo1->SelStart = SelPos -1;
     }
    }

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Tu devrais retrouver la propriété ItemIndex ou équivalent (je ne me souviens plus du nom exact) dans la propriété Lines du TMemo puisque c'est un TStrings.

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Par exemple, pour sélectionner une ligne à l'aide de son index :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int Ligne = 0; // Sélection de la première ligne, par exemple
     
    Memo1->SelStart = SendMessage(Memo1->Handle,    // handle of destination window
                                  EM_LINEINDEX,	    // message to send
                                  Ligne,	        // line number
                                  0);
    Memo1->SelLength = Memo1->Lines->Strings[Ligne].Length();
    A plus !

  4. #4
    Membre chevronné Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 60

    Informations forums :
    Inscription : Novembre 2004
    Messages : 669
    Par défaut
    Bonjour et Merci pour l'aides

    J'ai pas reussi, j'ai essayer toute sorte de trucs avec " Lines "
    il y a bien des mots asser parlant comme Strings[] ou CaretPos ?
    Merci Neilos

    Je ne voit pas comment travailer " SendMessage( ..) " pour obtenir ce resultat ?
    Merci henderson

    Si je trouve pas de soluce, je vais me servir d'un TListBox pour faire cette operation puit retourner le texte dans le TMemo.

    Encore Merci et A++

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    C'est vrai que les informations que j'ai données sont plus exploitables pour un TRichEdit,
    (méthode FindText) celà dit... on peut extraire une ligne du Memo en faisant, comme je
    l'ai montré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AnsiString chaine = Memo1->Lines->Strings[Ligne];
    ou l'index Ligne doit être compris entre 0 et < Memo1->Lines->Count;

    Dans ce cas, il suffit de consulter dans l'aide les méthodes de la classe AnsiString
    (Pos, AnsiPos, probablement, etc...) !

    A plus !

  6. #6
    Membre chevronné Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 60

    Informations forums :
    Inscription : Novembre 2004
    Messages : 669
    Par défaut
    .
    Tres Grand Merci a Neilos et a henderson

    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
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     Memo1->SetFocus();
     
     For(int i=0; i< Memo1->Lines->Count; i++)
      {
     if(Memo1->Lines->Strings[i].Pos(Edit1->Text))
      {
        Memo1->SelStart = SendMessage(Memo1->Handle, EM_LINEINDEX, i, 0);
        Memo1->SelLength = SendMessage(Memo1->Handle, EM_LINEFROMCHAR, i, 0);
        Memo1->Lines->Text.Pos(Edit1->Text);
    }
    }
    }
    //--------------------------------------------------

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/06/2009, 17h49
  2. [Oracle] Recherche nulle dans une base et affichage
    Par GLDavid dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/04/2006, 01h01
  3. Rechercher minuscule dans une table
    Par pmonn dans le forum Access
    Réponses: 3
    Dernier message: 25/10/2004, 14h53
  4. Separateur vertical dans une ListCtrl
    Par jul54 dans le forum MFC
    Réponses: 2
    Dernier message: 15/01/2004, 15h33
  5. recherche enr dans table sur clé primaire
    Par access001 dans le forum Requêtes
    Réponses: 10
    Dernier message: 10/10/2003, 10h45

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