Soyez le premier à donner votre avis sur cette source.
Vue 5 065 fois - Téléchargée 403 fois
procedure TForm1.Button1Click(Sender: TObject); var //Pour abréger l'écriture : SB : TStatusBar; //Déclaration d'un TProgressBar PB : TProgressBar; //variable de compteur i : integer; //structure de type rectangle Rect : TRect; begin //Sb reprends les valeurs de StatusBar1 Sb := StatusBar1; //Récupération des coordonnées Rect := SB.ClientRect; //Création à l'éxécution PB := TProgressBar.Create(Self); with PB do begin //Le composant qui va accueillir le ProgressBar Parent := StatusBar1; //Définition des coordonnées dynamiquement SetBounds(Rect.Left + 2, Rect.Top + 2, SB.Panels[0].Width - 2, Rect.Bottom - 2); //Paramètrage des valeurs de départ // ici de 0 à 2000 par pas de 5 Min := 0; Max := 20000; Position := Min; Step := 5; //Entrée dans une boucle d'affichage {ATTENTION : en utilisant une boucle FOR car l'incrémentation de i est toujours de 1, alors que celle créée par la méthode StepIt est variable. Celà peut engendrer des effets inattendus !} i:=Min; repeat inc(i, Step); //Déplacement du curseur visuel StepIt; //voir également : Position:= i; {Comme certains traitements peuvent être longs, ne pas oublier de rendre la main au système entre deux} Application.ProcessMessages; until i=max; //Destruction du composant Free; {Libération des ressources allouées à la copie de StatusBar1} SB := NIL; end; end; procedure TForm1.FormPaint(Sender: TObject); begin //Le premier Panel de StatusBar1 occupe les 3/4 de la largeur //et sera dessiné en cas de redimensionnement pendant le traitement //dans la boucle StatusBar1.Panels[0].Width:=round(StatusBar1.Width * 3 / 4) end;
28 déc. 2002 à 12:30
27 déc. 2002 à 15:51
//Création à l'éxécution
PB := TProgressBar.Create(Self);
With PB do
begin
(...)
Free;
sb := nil;
end
Mieux vaut ecrire
//Création à l'éxécution
PB := TProgressBar.Create(Self);
With PB do
try
finally
FreeAndNil(PB);
end
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.