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

IHM Discussion :

Mettre certains mots en couleur dans un texte (affichage uniquement)


Sujet :

IHM

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 24
    Points : 20
    Points
    20
    Par défaut Mettre certains mots en couleur dans un texte (affichage uniquement)
    Bonjour à tous,

    On m'a demandé de réaliser un moteur de recherche sur une base Access par mots clefs. Et il faudrait que je mette les mots qui ont été recherchés en couleur (ou en gras) dans les résultats. Par exemple si on a cherché "recherche" :

    Ceci est le résultat de ma recherche, bienvenue sur Access.

    Je n'ai pas besoin d'éditer les résultats, il y aura un bouton qui ouvre un formulaire de détails. Il me semble donc qu'utiliser un Rich TextBox est un peu lourd. Je pensais m'en sortir avec le Microsoft Web Control qui affiche un petit texte HTML généré pour chaque enregistrement mais il s'avère qu'on ne peut en voir qu'un seul à la fois (celui de l'enregistrement en cours).

    Je me demandais si quelqu'un avait déjà eu affaire au problème (ca me semble assez classique) et comment pouvait-on implémenter ça ?

    Merci de votre Aide !

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Sur un formulaire continu, ça me parait impossible

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 24
    Points : 20
    Points
    20
    Par défaut
    Bon...

    Je vais émettre quelques pistes, dites-moi ce que vous en pensez

    On pourrait...
    - Enregistrer les résultats dans une table temporaire et générer une image à chaque fois avec le texte mis en valeur
    - Ne faire qu'une grande page html avec tous les résultats mais il faudrait mettre des liens dans le html qui ouvrent le formulaire de détail...
    - Ecrire en vba mot par mot avec des étiquettes
    - Se jeter par la fenêtre en criant que c'était la dernière fois que je voyais à peine un controle et que je répondais "Oui, ca devrait pas poser de problème"

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 24
    Points : 20
    Points
    20
    Par défaut
    Une piste un peu plus sérieuse : c'est ajouter un champs OLE dans la base.
    A la main je peux ainsi insérer un OLE Wordpad qui semble assez léger et il s'affiche sans problème dans le formulaire continu (avec le gras et la couleur ) Je l'édite comme je veux en double-cliquant dessus !

    Reste à le faire en vba : insérer le OLE Wordpad et l'éditer !
    Quelqu'un sait-il où je peux trouver quelque chose qui m'aiderait ? la classe OLE Wordpad ?

    Suite au prochain numéro...

  5. #5
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Le problème est que WordPad n'est pas un server automation (a ma connaissance), c'est à dire que tu peux l'utiliser pour afficher ou saisir du RTF, mais tu ne peux pas le piloter pas access pour afficher ce que tu veux.

    Sinon pour insérer un object wordpad dans un cadre d'object dépendant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      Cadre2.Value = Null
      Cadre2.Class = "Wordpad.Document.1"
      Cadre2.SourceDoc = ""
      Cadre2.Action = acOLECreateNew ' acOLECreateEmbed
    Après en double cliquant sur le controle on peut mettre à jour le contenu.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 24
    Points : 20
    Points
    20
    Par défaut
    Oui effectivement j'ai rien trouvé sur le pilotage de Wordpad. J'ai donc utilisé Excel.

    Je crée un document Excel par recherche, sur chaque ligne j'écris le texte avec la mise en forme et je sauve.

    Ensuite, je dois lier ce document aux enregistrements. J'aurais aimé utiliser la propriété SourceItem pour que chaque enregistrement pointe vers la bonne cellule mais elle ne fonctionne pas, dès que je l'utilise j'ai l'erreur "Le Serveur OLE n'a pas pu ouvrir l'objet" (et si je ne le précise pas ça marche... Mais sur la première cellule)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            [contenu_mots].value = Null
            [contenu_mots].Class = "Excel.sheet"
            [contenu_mots].OLETypeAllowed = acOLELinked
            [contenu_mots].SourceDoc = Application.CurrentProject.Path & "rech.xls"
            [contenu_mots].SourceItem = "R1C1"
            [contenu_mots].Action = acOLECreateLink

  7. #7
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Ben je viens de trouver pourquoi R1C1 marche pas. Parce qu'il faut mettre L1C1, encore un truc francisé et qui pose problème ^^
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  8. #8
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 24
    Points : 20
    Points
    20
    Par défaut
    Le système marche maintenant : le formulaire crée un document Excel en écrivant dans une cellule, pour chaque enregistrement, le champs texte avec la mise en forme sur les mots demandés.
    Ensuite il parcoure tous les enregistrements pour lier le doc Excel sur la cellule correspondante.

    Le seul problème est que c'est assez lent (c'est au niveau de la création de la liaison que c'est long...) Mais bon, le résultat est là !

  9. #9
    Membre à l'essai
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 33
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par DelphiManiac Voir le message
    Ben je viens de trouver pourquoi R1C1 marche pas. Parce qu'il faut mettre L1C1, encore un truc francisé et qui pose problème ^^
    Merci!!! depuis le temps que je cherchais! 7 ans plus tard, le problème demeure!

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/09/2011, 15h45
  2. Mettre des mots en surbrillance dans un texte
    Par Moloc'h dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 0
    Dernier message: 14/02/2011, 19h03
  3. Mettre un mot à une position dans un texte
    Par lodan dans le forum Langage
    Réponses: 6
    Dernier message: 01/09/2009, 12h15
  4. mettre certain mot en couleur dans un textArea
    Par lilou77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 06/10/2006, 12h01
  5. [C#] Comment mettre une ligne en couleur dans mon DataGrid ?
    Par vandeyy dans le forum Windows Forms
    Réponses: 7
    Dernier message: 19/07/2004, 10h03

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