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

Composants VCL Delphi Discussion :

Recherche de chaine (TFindDialog)


Sujet :

Composants VCL Delphi

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 39
    Points : 33
    Points
    33
    Par défaut Recherche de chaine (TFindDialog)
    Bonjour à tous!
    Voici mon problème: j'ai récupéré dans l'aide de delphi le bout de code suivant:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    procedure TPrincipal.tbChercheClick(Sender: TObject);
    begin
    FindDialog1.Position := Point(Edits.Left + Edits.Width, Edits.Top);
    FindDialog1.Execute;
    end;
     
    procedure TPrincipal.FindDialog1Find(Sender: TObject);
    var
      FoundAt: LongInt;
      StartPos, ToEnd: Integer;
    begin
      with Edits do
      begin
        { commence la recherche après la sélection en cours s'il y en a une }
        { sinon, commence au début du texte }
        if SelLength <> 0 then
     
          StartPos := SelStart + SelLength
        else
     
          StartPos := 0;
     
        { ToEnd indique la longueur entre StartPos et la fin du texte du contrôle éditeur de texte enrichi }
     
        ToEnd := Length(Text) - StartPos;
     
        FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]);
        if FoundAt <> -1 then
        begin
          SetFocus;
          SelStart := FoundAt;
          SelLength := Length(FindDialog1.FindText);
        end;
      end;
    end;
    or, à la compilation, j'ai une erreur disant que "FindText" n'est pas déclaré! j'ai chercher sur le net ce qui pourrait concerner ce probleme mais je n'ai rien trouvé d'interessant... Merci de m'aider!

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 50
    Points : 61
    Points
    61
    Par défaut
    salut,


    a priori, il s'agit d'une fonction de TRichEdit donc le code devrait etre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        FoundAt := richedit1.FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]);
    eventuellement remplace richedit1 par le nom de ton composant richedit.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 39
    Points : 33
    Points
    33
    Par défaut
    sauf que ici j'utilise un Memo de SynEdit et non un TRichEdit! or, normalement mon memo synedit se comporte comme un Tmemo ou TRichEdit normal... mystère...

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 68
    Points : 66
    Points
    66
    Par défaut
    Il ne faut pas le déclarer dans 'type' ?

    Dites-moi si je dis n'importe-quoi.

  5. #5
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    Salut,

    "FindText" n'est pas déclaré
    Sauf erreur, ce genre de message est généralement présent lorsqu'il manque un fichier dans les clauses Uses

    Pour connaitre l'unité concerné pour cette fonction, appuie sur F1.

    A+

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 50
    Points : 61
    Points
    61
    Par défaut
    pourquoi ne pas essayer d'utiliser le compo SynEditSearch ?
    qui est fourni avec le package synedit.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 39
    Points : 33
    Points
    33
    Par défaut
    Thierry G. > c'est ce que je suis en train de faire vu que je n'arrive pas a resoudre mon problème...

    yobenzen > en effet on obtient ce genre de message lorsqu'il manque une declaration dans Uses mais en ce qui concerne FindText, il s'agit de "Dialogs" et je l'ai bien mise...

    En l'attente de trouver une solution, merci d'avoir pris le temps de me répondre!

  8. #8
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    en effet on obtient ce genre de message lorsqu'il manque une declaration dans Uses mais en ce qui concerne FindText, il s'agit de "Dialogs" et je l'ai bien mise...
    Je ne suis pas tout à fait d'accord...
    Il s'agirait plutôt dans ce cas précis de l'unité ComCtrls

    [Edit]Il est vrai que l'aide Delphi n'est pas très précise là-dessus[/Edit]

    J'ai réalisé un petit test pour vérifier et apparamment cela fonctionne.

    [Edit 2]
    Memo de SynEdit
    Oups ... j'avais pas vu...
    [/Edit]

    [Edit 3]
    Je ne connais pas très bien ce composant, cependant il semblerait que cette fonction n'existe pas...

    Mais d'autre part, tu peux regarder dans la démo D4Demo (livrée avec ces composants) qui donne un apercu d'utilisation des différentes fonctionnalitées
    [/Edit]

    A bientot,

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 39
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par yobenzen
    Je ne suis pas tout à fait d'accord...
    Il s'agirait plutôt dans ce cas précis de l'unité ComCtrls
    >> autant pour moi tu a raison, mais le problème ne vient apparement pas de la car "ComCtrls" est bien présent, tout comme ce même message d'erreur!!!!!

    j'avoue que je ne sait vraiment pas pourquoi j'ai ce problème...
    Quant à la démo de SynEdit D4Demo, je vais de ce pas y jeter un oeil! merci!

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 39
    Points : 33
    Points
    33
    Par défaut
    Toujours la même erreur sur "FindText"!!!!!!

  11. #11
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    A priori, si tu utilise TSysMemo (ou TSysEdit), effectivement FindText() n'existe pas.
    Mais il existe la méthode TCustomSynEdit.SearchReplace() qui sert pour la recherche et/ou le remplacement.

    : Si pas résolu, quelle version de SynEdit utilises-tu ? et de quelle classe est ton mémo ?

Discussions similaires

  1. [10gR2] Recherche de chaines et formes flechies
    Par hotkebab99 dans le forum Oracle
    Réponses: 8
    Dernier message: 11/01/2006, 10h50
  2. [vbexcel]Rechercher une chaine dans une autre chaine...
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/12/2005, 14h49
  3. Réponses: 2
    Dernier message: 09/12/2005, 13h23
  4. Comment rechercher une chaine dans plusieurs tables ?
    Par tsing dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/11/2005, 19h04
  5. Recherche de chaine ...
    Par Metal3d dans le forum C
    Réponses: 8
    Dernier message: 27/07/2002, 02h20

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