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

 Delphi Discussion :

.TextOut au millieu d'une Ellipse


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de stfanny31
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Par défaut .TextOut au millieu d'une Ellipse
    salut
    je voudrais écrire au milieu d'une Ellipse
    alors j'ai fais le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form1.Canvas.TextOut(x+20,y+20,edit.Text);
    le probléme est que edit.text change a chaque fois de langueur et le texte n'est pas toujour au milieu
    j'ai cherché dans les propriété de .TextOut mais
    si vous pouvé m'aidé

  2. #2
    Expert confirmé

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

    Il faut commencer par calculer la dimension de la sortie du texte en pixel (avec quelque chose comme Canvas.TextExtent), et ajuster la position x,y de sortie.

    Ou jouer avec les options d'alignement, Center (pas exactement ça, je ne sais plus), etc., mais je ne sais plus si ça existe directement pour le Canvas de Delphi. Si ça n'existe pas, voir du côté des API Windows concernées.

  3. #3
    Membre éclairé

    Inscrit en
    Novembre 2002
    Messages
    815
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 815
    Par défaut
    Salut stFanny31,

    tu dois utiliser les méthodes textwidth et textheight, comme dans l'exemple ci-dessous.

    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
     
    procedure TForm33.Button1Click(Sender: TObject);
    var H,W,X1,X2,Y1,Y2:integer;
    begin
        X1:=20;
        Y1:=20;
        X2:=120;
        Y2:=60;
        with paintbox1.canvas do
        begin
            // ellipse
            ellipse(x1,y1,x2,y2);
            W:=textwidth(edit1.Text);// donne largeur du texte
            H:=textheight(edit1.Text);// donne hauteur du texte
            // calcule la position
            W:=(X1+(X2-X1) div 2)-(W div 2);
            H:=(Y1+(Y2-Y1) div 2)-(H div 2);
     
            textout(W,H,edit1.text)
        end;
    end;

  4. #4
    Membre très actif Avatar de stfanny31
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 254
    Par défaut
    merci Mr petitcoucou31
    votre code marche trés bien

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

Discussions similaires

  1. Création colonne au millieu d'une table
    Par bipcpp dans le forum Développement
    Réponses: 16
    Dernier message: 11/01/2016, 22h19
  2. Orientation d'une ellipse
    Par simone.51 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 09/06/2006, 20h04
  3. écrire un titre sur une ellipse
    Par rawda dans le forum Langage
    Réponses: 1
    Dernier message: 16/03/2006, 09h52
  4. Réponses: 3
    Dernier message: 29/06/2005, 14h29
  5. Créer une ellipse
    Par alexthomas dans le forum C++Builder
    Réponses: 9
    Dernier message: 21/04/2004, 09h49

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