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 :

Afficher le Canvas d'un Label, plutôt que son 'Caption' [Lazarus]


Sujet :

Lazarus Pascal

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 123
    Par défaut Afficher le Canvas d'un Label, plutôt que son 'Caption'
    Bonjour,
    j'ai un label ou je veux afficher le symbole Delta suivi d'un texte.
    j'ai donc fait une procédure pour afficher ce symbole avant le texte,
    puis centrer le texte horizontalement et verticalement dans le label.

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    //******************************************************************************
    //***************   Ajout de 'Delta.' à la chaine de caractère   ***************
    //******************************************************************************
    Procedure TForm1.AjoutDelta(Lbl: TLabel; Ch: String; Clr: integer);             // Ajout de 'Delta.' à la chaine de caractère
      var
        Offset                   : Tpoint;                                          // décallage du texte, en pixels
        LgTxt                    : Word;                                            // longueur du texte en pixels
        HtTxt                    : Word;                                            // hauteur du texte en pixels
      begin
        With Lbl.Canvas do begin
          brush.Color:=ClBtnFace;                                                   // si la couleur n'est pas celle du fond, ...
          Pen.Color:=ClBtnFace;                                                     // ... un cadre apparaît de la couleur du stylo
          rectangle(0, 0, Lbl.Width, Lbl.Height);                                   // -----> efface le canvas du label
          Font.Style:=[FsBold];
          Font.Color:=Clr;
          Brush.Color:=ClBtnFace;
          LgTxt:=0;                                                                 // initialisation
          HtTxt:=0;                                                                 // ...
          //---------------------------------------------------   Calcul des offsets
          Font.Size:=10;                                                            // longueur/hauteur du Delta
          Font.Name:='Symbol';                                                      // ...
          LgTxt:=TextWidth('D.');                                                   // ...
          HtTxt:=TextHeight('D.');                                                  // ...
          //------
          Font.Name:='Segoe UI';                                                    // longueur du texte
          Font.size:=9;                                                             // ...
          LgTxt:=LgTxt+TextWidth(Ch);                                               // ...
          //------------------------------------------------   Calcul Offset Largeur
          Offset.X:=round((Lbl.Width-LgTxt)/2);
          //------------------------------------------------   Calcul Offset hauteur
          Offset.Y:=round((Lbl.Height-HtTxt)/2)-3;
          //--------------------------------   Affichage de la chaine dans le Canvas
          Font.Size:=11;
          Font.Name:='Symbol';
          TextOut(Offset.X, Offset.y, 'D.');
          Offset:=PenPos;
          Font.Name:='Segoe UI';
          Font.size:=9;
          TextOut(Offset.X, Offset.Y+3, Ch);
        end;
      end;
    //******************************************************************************
    //***********   Fin de l'ajout de 'Delta.' à la chaine de caractère   **********
    //******************************************************************************
    je crée dynamiquement le 'Label',
    puis j'essaye d'afficher ensuite mon texte contenant le 'Delta'.
    mais c'est le 'Caption' qui reste dans le 'Label'


    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
    22
     
    //******************************************************************************
    //************************   Activation de la fenêtre   ************************
    //******************************************************************************
    procedure TForm1.FormActivate(Sender: TObject);
      begin
        LblDelta:=TLabel.create(Form1);                                             // création dynamique du label
        With LblDelta do begin                                                      // ...
          Parent:=Panel1;                                                           // ...
          Name:='LblDelta';                                                         // ...
          Caption:='Je ne veux pas afficher ce texte !!!';                          // ...
          Font.color:=ClBlack;                                                      // ...
          Align:=AlClient;                                                          // ...
          Font.style:=[FsBold];                                                     // ...
          Enabled:=false;                                                           // ...
          visible:=true;                                                            // ...
        end;                                                                        // ...
        AjoutDelta(LblDelta, ' = //', ClRed);                                       // Ajout de 'Delta.' à la chaine de caractère
      end;
    //******************************************************************************
    //********************   Fin de l'activation de la fenêtre   *******************
    //******************************************************************************
    je ne comprends pas pourquoi.
    merci pour votre aide
    bonne journée
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [AC-2002] Afficher le nom original des champs plutôt que leur légende
    Par J1 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 14/05/2014, 13h09
  2. Réponses: 4
    Dernier message: 14/03/2011, 15h29
  3. Réponses: 7
    Dernier message: 29/08/2010, 23h13
  4. Réponses: 4
    Dernier message: 26/09/2008, 09h06
  5. [DOM] Lire ce qu’affiche une fonction javascript plutôt que le script
    Par MaxJenius dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 29/04/2008, 18h15

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