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

Composants VCL Delphi Discussion :

Jauge (gauge) dans une TStatusBar


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Points : 112
    Points
    112
    Par défaut Jauge (gauge) dans une TStatusBar
    bonjour,

    comment faire apparaitre une jauge dans un des panels d'une TStatusBar ?

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 584
    Points : 25 251
    Points
    25 251
    Par défaut
    Tu peux créer un Gestionnaire d'Event pour OnDrawPanel (faut mettre au moins un panel donc pas de simpletext ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TFrmTestProgressBar.StatusBarDrawPanel(StatusBar: TStatusBar;
      Panel: TStatusPanel; const Rect: TRect);
    var
       MyRect: TRect;
    begin
         MyRect.Left := Rect.Left;
         MyRect.Right := Rect.Left + Round((Rect.Right - Rect.Left) * StrToInt(StatusBar.Panels[2].Text) / 100);
         MyRect.Top := Rect.Top;
    		 MyRect.Bottom := Rect.Bottom;
         StatusBar.Canvas.Pen.Color := clNavy;
         StatusBar.Canvas.Brush.Color := clNavy;
         StatusBar.Canvas.FillRect(MyRect);
    end;

    j'ai deux boutons, je change la valeur du text pour gérer le pourcentage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    procedure TFrmTestProgressBar.BtnMoinsClick(Sender: TObject);
    begin
         StatusBar.Panels[2].Text := IntToStr(StrToInt(StatusBar.Panels[2].Text) - 1);
         StatusBar.Refresh();
         Label1.Caption := StatusBar.Panels[2].Text;
    end;
     
    procedure TFrmTestProgressBar.BtnPlusClick(Sender: TObject);
    begin
         StatusBar.Panels[2].Text := IntToStr(StrToInt(StatusBar.Panels[2].Text) + 1);
         StatusBar.Refresh();
         Label1.Caption := StatusBar.Panels[2].Text;
    end;

  3. #3
    Membre habitué
    Développeur .NET
    Inscrit en
    Juin 2002
    Messages
    274
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2002
    Messages : 274
    Points : 174
    Points
    174
    Par défaut
    Salut,
    Un peu plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TForm1.JaugeDansStatus;
    var
      R: TRect;
    begin
      // Récupération des coordonnées du panel 1 de la StatusBar
      MyStatusBar.Perform(SB_GETRECT, 1, Integer(@R));
     
      MyProgressBar.Parent := MyStatusBar;
      MyProgressBar.Top := R.Top;
      MyProgressBar.Left := R.Left;
      MyProgressBar.Width := R.Right - R.Left;
      MyProgressBar.Height := R.Bottom - R.Top;
    end;
    A+

  4. #4
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Points : 112
    Points
    112
    Par défaut
    la seconde solution me parait effectivement assez simple.
    je vais tester.

    merci à tous les deux

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

Discussions similaires

  1. Présentation des résultats dans une Gauge
    Par mamoun_ dans le forum Flex
    Réponses: 2
    Dernier message: 24/09/2009, 16h01
  2. Suivi d'une variable dans une Jauge
    Par labrute dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 07/05/2008, 22h21
  3. Un jauge dans une page HTML
    Par Georgie Boy dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 13/07/2007, 14h56
  4. gauge dans une splash screen
    Par lassmust dans le forum Delphi
    Réponses: 1
    Dernier message: 10/07/2006, 10h24
  5. Une gauge dans un ListView
    Par Thom@s dans le forum Composants VCL
    Réponses: 3
    Dernier message: 22/10/2002, 10h32

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