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 :

c++ builder raffraichir un textout


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 39
    Par défaut c++ builder raffraichir un textout
    bonjour,

    j'utilise des textout pour afficher des valeurs qui changent toute les secondes
    Normalement je les place sur une image et avant de réécrire le textout je raffraichis l'image.

    Par contre dans un cas je suis obligé de ne pas raffraichir le fond sur lequel je place mon textout et je n'arrive pas a trouver la solution pour rafraichir la valeur

    ps: je n'utilise pas de label car le raffraichissement des labels toutes les secondes n'est pas transparent

    Merci d'avance

    YP

  2. #2
    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 !

    Je n'ai pas compris le problème exact.
    Si Brush->Style est bsSolid, le texte précédent s'efface et est remplacé par le nouveau, à ceci près que les chaînes doivent toujours avoir une même dimension.
    Ca se règle en examinant la longueur graphique de la chaine.
    Si la nouvelle chaine est plus longue que la précédente, l'écriture se fait immédiatement.
    Si la nouvelle chaine est plus courte que la précédente, il faut lui ajouter des espaces en fin de chaine de manière à...
    La mesure des dimensions d'un texte se fait avec TextWidth et TextHeight (ou TextExtent qui fait les deux en une seule instruction); voir TCanvas et ses méthodes

    Si tu utilises Brush->Style = bsClear, ... il faudrait des précisions... en particulier sur la nature graphique du fond sur lequel est dessiné le texte.
    - fond uni ? il suffit d'écrire le texte avec une couleur de fonte identique à celle du fond pour effacer l'ancien texte, puis d'écrire le nouveau texte avec sa couleur de fonte.
    - fond quelconque invariable ?
    - fond variable ?

    Pour les deux derniers cas, il faudra probablement utiliser un bitmap pour sauvegarder le fond et le restituer...
    Si le fond est invariable, il suffit de sauvegarder la zone dans un bitmap et la restituer.
    Le dernier cas est le plus compliqué car si le fond peut se modifier, dans ce cas, le bitmap doit être également rafraichi à ce moment là de manière à toujours restituer le bon fond !

    S'il y a d'autres solutions ?

    A plus !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 39
    Par défaut
    Bonjour,

    C'est justement ca le problème mon font varie (je travaille sur le même graphique sité dans un autre post sur la reactualisation d'un label).

    j'ai essayé Brush->bsSolid et Brush->bsClear et pas de changement je réécris toujours sur le textout écris juste avant.
    Le seuil moyen que j'ai trouvé c'est toute les secondes recréér le fond de travail avant d'écrir le textout.
    Ca marche mais ca provoque des scintillement de l'image. Alors j'essaye toutes les solutions

  4. #4
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Citation Envoyé par jamescook
    Ca marche mais ca provoque des scintillement de l'image.
    Bonsoir,

    Les scintillement ne peuvent ils pas être atténués par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoubleBuffered = true;
    ?
    (mais peut être y as tu déja pensé ... )

    @ +

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 39
    Par défaut
    bonjour,

    non les scintillements sont effacé dans le cas des raffraichissement de label ave cette fonction mais pas avec des textouts

Discussions similaires

  1. Choisir Visual c++ ou Borland C++Builder ?
    Par DevEric dans le forum Choisir un environnement de développement
    Réponses: 31
    Dernier message: 14/06/2007, 23h48
  2. Outils, cours et NOUVEAUX tutoriels pour Borland C++Builder
    Par hiko-seijuro dans le forum C++Builder
    Réponses: 10
    Dernier message: 12/03/2006, 22h33
  3. c++ builder JavaDoc :)
    Par JEG dans le forum C++Builder
    Réponses: 8
    Dernier message: 08/06/2002, 13h31
  4. Documentation DirectX dans C++Builder 3
    Par srvremi dans le forum DirectX
    Réponses: 1
    Dernier message: 26/04/2002, 09h59
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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