Progressbar défilante [Résolu]

Messages postés
236
Date d'inscription
jeudi 30 septembre 2004
Dernière intervention
26 juin 2011
- - Dernière réponse :  Francky23012301 - 22 juin 2010 à 15:16
bonjour à tous :)
En ce dimanche j'ai une petite question.

Ne pouvant mesurer la progression d'un scan, je voudrais mettre une barre de progression dont son contenu défile en continu sans marquer l'état de progression.
Un comme la fonction barreprogression.pulse() en Python.


J'avais vu une source là-dessus mais c'était très lourd pour si peu de chose.
Merci de votre aide.
Afficher la suite 

Votre réponse

20/41 réponses

Meilleure réponse
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Dernière intervention
3 juin 2016
3
Merci
Et voilà.

Tu as Marquee, qui définit si la progressbar est indéfinie ou définie (Marquee = False, comportement standard), Active qui dit si la progressbar doit défiler indéfiniment, et Speed qui donne la vitesse. Met l'unité en dernier dans ton projet (vérifie qu'il n'y ait pas une autre unité qui se soit placée après).

Remarque : les propriétés ne seront pas dans l'inspecteur d'objets, il te faut les appeller depuis le code.

Note : j'ai pas tellement testé mon composant surchargé, à toi de voir si il fonctionne et à le perfectionner.

Cordialement, Bacterius !

Merci Bacterius 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de Bacterius
Messages postés
308
Date d'inscription
jeudi 29 septembre 2005
Dernière intervention
17 septembre 2013
0
Merci
bonjour,

une idée ci-dessous :

type
  TForm1 = class(TForm)
    progressbar1: TProgressBar;
    Button1: TButton;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Button1.Caption = 'SCAN' then
    Button1.Caption := 'STOP'
  else
    Button1.Caption := 'SCAN';
  Timer1.Enabled :Button1.Caption 'STOP';
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  progressbar1.StepIt;
  if progressbar1.Position = 100 then
    progressbar1.Position := 0;
  Application.ProcessMessages;
end;

end.
Commenter la réponse de beckerich
Messages postés
236
Date d'inscription
jeudi 30 septembre 2004
Dernière intervention
26 juin 2011
0
Merci
Pourquoi pas...
Mais je recherche plutôt "l'effet" ou c'est un "morceau" de progression qui défile.


Merci.
Commenter la réponse de cs_JackNUMBER
Messages postés
308
Date d'inscription
jeudi 29 septembre 2005
Dernière intervention
17 septembre 2013
0
Merci
salut,

progressbar1.style := pbstMarquee;
Commenter la réponse de beckerich
Messages postés
236
Date d'inscription
jeudi 30 septembre 2004
Dernière intervention
26 juin 2011
0
Merci
Merci mais Style n'existe pas pour les progressbar.
Je n'ai pas trouvé le moyen d'appliqué simplement pbstMarquee
Mis à part ici qui est très lourd, je trouve.
Commenter la réponse de cs_JackNUMBER
Messages postés
104
Date d'inscription
samedi 23 décembre 2000
Dernière intervention
9 mai 2013
0
Merci
essaie de regarder la jvcl il me semble qu'il y a le composant que tu recherche.
Commenter la réponse de eclems
Messages postés
308
Date d'inscription
jeudi 29 septembre 2005
Dernière intervention
17 septembre 2013
0
Merci
Bonsoir,

je développe avec Delphi 2010, et le composant TProgressbar (package Win32) possède cette propriété. Avec quelle version de Dephi développes-tu ?

Luc.
Commenter la réponse de beckerich
Messages postés
236
Date d'inscription
jeudi 30 septembre 2004
Dernière intervention
26 juin 2011
0
Merci
la version 7
Commenter la réponse de cs_JackNUMBER
Messages postés
308
Date d'inscription
jeudi 29 septembre 2005
Dernière intervention
17 septembre 2013
0
Merci
je ne peux te répondre si cette propriété existe sous D7, mais tu peux vérifier toi-même. Sous D2010, on a un joli scroll de la barre de progression avec le style.
Ciao
Commenter la réponse de beckerich
Messages postés
236
Date d'inscription
jeudi 30 septembre 2004
Dernière intervention
26 juin 2011
0
Merci
Justement sous Delphi 7, Style n'existe pas pour les progressbar.

progressbar1.style := pbstMarquee; n'est donc pas utilisable.
C'est ce que j'ai dis plus haut.
Commenter la réponse de cs_JackNUMBER
Messages postés
308
Date d'inscription
jeudi 29 septembre 2005
Dernière intervention
17 septembre 2013
0
Merci
salut,

alors je ne peux rien pour toi, désolé ;-))
Commenter la réponse de beckerich
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
0
Merci
Salut,

tout simplement:
http://www.swissdelphicenter.ch/torry/showcode.php?id=1680

[hr]@+Cirec
[hr]
Commenter la réponse de Cirec
Messages postés
308
Date d'inscription
jeudi 29 septembre 2005
Dernière intervention
17 septembre 2013
0
Merci
Bonsoir Cirec,

tout simplement... pour toi !!! ;-))

merci pour le code.
Commenter la réponse de beckerich
Messages postés
104
Date d'inscription
samedi 23 décembre 2000
Dernière intervention
9 mai 2013
0
Merci
PROBLEME CE COMPOSANT REAGIT COMME UNE PROGRESSE BAR JE VIEN DE LE TESTER ACTUELLEMENT Y A TIL UN PARAMETRE A CHANGER OU PAS

CORDIALEMENT
Commenter la réponse de eclems
Messages postés
236
Date d'inscription
jeudi 30 septembre 2004
Dernière intervention
26 juin 2011
0
Merci
J'avais essayé de le mettre en place mais je n'avais pas réussi. Je me suis repenché dessus et... non.
Commenter la réponse de cs_JackNUMBER
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
0
Merci
Salut,

Pourquoi s'acharner à vouloir utiliser un «gros» ProgressBar pour lui faire faire un «petit» boulot pour lequel, de plus, il n'est pas du tout prévu ?

Une jolie petite "animation" codée sur quelques lignes ferait mieux l'affaire à tous points de vue, je crois.
Commenter la réponse de Caribensila
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
0
Merci
... Une idée toute simple :

Sur une fiche :
1 TLabel avec propriété AutoSize et enabled à false
1 TButton
1 TTimer réglé à 200
et :

procedure TForm1.Timer1Timer(Sender: TObject);
  Const   Shift = 1;//Le décalage du texte.
begin
  Label1.Caption := Copy(Label1.Caption, Shift + 1, Length(Label1.Caption) - Shift) + Copy(Label1.Caption, 1, Shift);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := 'VEUILLEZ PATIENTER...   ';
Timer1.Enabled := not Timer1.Enabled;
if not Timer1.Enabled then Label1.Caption := '';
end;
Commenter la réponse de Caribensila
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
0
Merci
oups !

Vous aurez rectifié la maladresse du "Button1Click"...
Commenter la réponse de Caribensila
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
0
Merci
@Caribensila:

Salut ;
[quote=Caribensila]Pourquoi s'acharner à vouloir utiliser un «gros» ProgressBar pour lui faire faire un «petit» boulot pour lequel, de plus, il n'est pas du tout prévu ?/quote
sisi il est prévu pour ça ... c'est juste que très peu de personnes sont au courant.
Voir la MSDN à ce sujet

Sinon c'est quoi votre problème ?
vous n'arrivez pas à faire fonctionner ce code ? où quoi ?

[hr]@+Cirec
[hr]
Commenter la réponse de Cirec
Messages postés
236
Date d'inscription
jeudi 30 septembre 2004
Dernière intervention
26 juin 2011
0
Merci
@Caribensila > merci pour la solution alternative...
@cirec > et bien non, j'ai essayé dans tous les sens et non, je n'y arrive pas. Je l'avais déja trouvé durant mes recherches et j'avais été confronté au même problème.
Commenter la réponse de cs_JackNUMBER

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.