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

Lazarus Pascal Discussion :

Effacer le résultat d'un textout ?


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 49
    Par défaut Effacer le résultat d'un textout ?
    Bonjour à tous,

    J' affiche une chaîne de caractères sur une TpaintBox d'une Tform par l' instruction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PaintBox2.Canvas.TextOut(xcenter-80,ycenter+50,'Voici un rectangle et une ellipse');
    Comment effacer le résultat de cette instruction ?
    Par exemple pour écrire un texte plus court ?
    Mrci d' avance,
    Cordialement,
    Philippe

  2. #2
    Membre expérimenté

    Profil pro
    dirlo
    Inscrit en
    Février 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : dirlo

    Informations forums :
    Inscription : Février 2008
    Messages : 83
    Par défaut
    Bonjour,

    tu dois pouvoir faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    PaintBox2.Canvas.pen.mode := PmXOR;
    PaintBox2.Canvas.TextOut(xcenter-80,ycenter+50,'Voici un rectangle et une ellipse');
    sleep(100);
    PaintBox2.Canvas.TextOut(xcenter-80,ycenter+50,'Voici un rectangle et une ellipse');
    PaintBox2.Canvas.pen.mode := PmCopy

  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Vie,
    Citation Envoyé par parhelie Voir le message
    Bonjour,

    tu dois pouvoir faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    PaintBox2.Canvas.pen.mode := PmXOR;
    PaintBox2.Canvas.TextOut(xcenter-80,ycenter+50,'Voici un rectangle et une ellipse');
    sleep(100);
    PaintBox2.Canvas.TextOut(xcenter-80,ycenter+50,'Voici un rectangle et une ellipse');
    PaintBox2.Canvas.pen.mode := PmCopy
    C'est une solution un peu trop primaire, car le texte ainsi écrit sera multicolore selon l'image de fond.

    Pour que ce soit propre, il faut gérer ça avec un masque. Je te laisse chercher un peu (c'est ce qu'on fait par exemple pour afficher le curseur de la souris ).

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 49
    Par défaut Effacer le résultat de TextOut
    Bonjour à tous,
    Merci à Parhelie et Droggo.
    Je suis confus : je n'ai expérimenté que la solution de Pharhelie. Ca ne change rien du tout.
    Si j' ai compris quelque chose, le principe était de réécrire la même chaîne dans la couleur de fond ? En fait ça n'a aucun effet.
    Où peut-on trouver de la doc sur Textout ?
    J'ai trouvé des exemples sous Google, douteux.

    Je reformule ma question :
    Comment supprimer le résultat d' un Textout. Là le problème est:
    Si je fais un premier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextOut(x,y,'Voici un rectangle et une ellipse')
    il s'affiche bien:
    Voici un rectangle et une ellipse
    Si je fais un second :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextOut(x,y,'Effacement')
    il s' affiche :
    Effacementtangle et une ellipse
    Encore merci,
    Cordialement,
    Philippe

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Cao,

    C'est normal, tu ne fais pas ce que parhelie t'a dit de faire.

    Il faut effacer le 1er texte avant de mettre le nouveau.

  6. #6
    Membre expérimenté

    Profil pro
    dirlo
    Inscrit en
    Février 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : dirlo

    Informations forums :
    Inscription : Février 2008
    Messages : 83
    Par défaut
    Salut,
    Tu es sûr que tu ne peux pas utiliser un composant TLabel? Tu n'aurais alors plus rien à gérer, juste à renseigner son "caption". (pour faire plus simple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    TonLabel.caption := 'Voici un rectangle et une ellipse';
    sleep(100);
    TonLabel.caption := '';
    sleep(100);
    TonLabel.caption := 'hop!';
    La bonne solution est celle de droggo. si d'ailleurs il voulait nous en dire un peu plus... je suis preneur.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 49
    Par défaut
    Bonjour,
    Citation Envoyé par droggo Voir le message
    Cao,
    C'est normal, tu ne fais pas ce que parhelie t'a dit de faire.
    Il faut effacer le 1er texte avant de mettre le nouveau.
    J'ai bien fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    PaintBox2.Canvas.pen.mode := PmXOR;
    PaintBox2.Canvas.TextOut(xcenter-80,ycenter+50,'Voici un rectangle et une ellipse');
    sleep(100);
    PaintBox2.Canvas.TextOut(xcenter-80,ycenter+50,'Voici un rectangle et une ellipse');
    PaintBox2.Canvas.pen.mode := PmCopy
    Ca n'efface rien du tout.
    Où trouver de la doc sur le fonctionnement de Textout ?

    Pour ChPr :

    Je n' affecte aucune largeur max à Textout.
    Et pour cause : je ne sais pas comment faire.

    Encore merci,
    Cordialement,
    Philippe

Discussions similaires

  1. [AJAX] Effacer un résultat précédent
    Par daffy85 dans le forum jQuery
    Réponses: 6
    Dernier message: 20/04/2015, 11h04
  2. Effacer la fenetre des résultats
    Par herkitz dans le forum SAS Base
    Réponses: 2
    Dernier message: 12/05/2010, 17h01
  3. Effacer les résultats d'une requête
    Par Nutrino dans le forum Requêtes
    Réponses: 1
    Dernier message: 05/11/2006, 21h54
  4. TextOut : comment changer de font
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 15/07/2002, 20h46
  5. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26

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