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 :

Erreur sur l'utilisation de DrawText


Sujet :

C++Builder

  1. #1
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut Erreur sur l'utilisation de DrawText
    J'essaie d'utiliser la fonction DrawText pour imprimer une chaine de caracteres mais j'ai une erreur que je n'arrive pas a resoudre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    String S;
     
    TRect R;
    R.left = 10;
    R.top = 10;
     
    S = "Calcul rectangle avec DrawText";
     
    DrawText(Printer()->Handle, S.c_str(), S.Length(), R, DT_CALCRECT);
    [C++ Error] Unit1.cpp(30): E2034 Cannot convert 'TRect' to 'tagRECT *'
    [C++ Error] Unit1.cpp(30): E2342 Type mismatch in parameter 'lpRect' (wanted 'tagRECT *', got 'TRect')
    L'erreur est sur TREct mais la je seche

  2. #2
    Membre expert
    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 : 53
    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
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonsoir,

    Ben vi .... comme le dis le message d'erreur, DrawText attends un tagRECT et non un TRect.
    Tu devrais donc essayer de déclarer un tagRECT, en spécifiant toutes ces coordonnées, j'entends par la qqchose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    tagRECT r;
    r.top = //une valeur
    r.bottom = //une valeur
    r.left = //une valeur
    r.rigth = //une valeur
    et lancer DrawText comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DrawText(Printer()->Handle, S.c_str(), S.Length(), &r, DT_CALCRECT);
    @+

  3. #3
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Merci Sunchaser
    Je venais de trouver tu ma Grille
    Il n'est pas necessaire dans ce code de definir " right " et " bottom " car la procedure permet de renvoyer ces valeurs en fonction de la chaine que l'on passe il suffit de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int r = R.right;
    int b = R.bottom;
    a la suite et on a le rectangle dans lequel la chaine va s'inscrire

  4. #4
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Je met le petit resolu
    Avant je post le code
    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
    String S;
     
    TRect R;
    R.left = 10;
    R.top = 10;
     
    S = "Calcul rectangle avec DrawText";
     
    // on defini la dimension du TRect 
    DrawText(Printer()->Handle, S.c_str(), S.Length(), &R, DT_CALCRECT);
     
    // on recupere les valeurs
    int r = R.right;
    int b = R.bottom;

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

Discussions similaires

  1. [Google Maps] Erreur sur utilisation de map.fitBounds
    Par frankspitz dans le forum APIs Google
    Réponses: 4
    Dernier message: 20/01/2014, 12h25
  2. Réponses: 1
    Dernier message: 18/03/2012, 09h59
  3. Erreur sur utilisation d'une GtkEntry / GtkDialog
    Par Slookeur dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 17/08/2010, 00h52
  4. Erreur sur l'utilisation de DECLARE
    Par Jpetrucci dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 08/09/2009, 14h16
  5. Erreur sur une requête en utilisant la fonction somme
    Par TheFantasyRide dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 21/04/2009, 18h55

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