bonjour,
comment faire apparaitre une jauge dans un des panels d'une TStatusBar ?
bonjour,
comment faire apparaitre une jauge dans un des panels d'une TStatusBar ?
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;
Salut,
Un peu plus simple :
A+
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;
la seconde solution me parait effectivement assez simple.
je vais tester.
merci à tous les deux
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager