Buenas amigos les comparto dos códigos que unidos son dinamita:
El 1ro combina un label dentro de un progressbar (dando una mejor aparciencia).
El 2do muestra el porcentaje del progressbar conforme avanza.
Comenzemos....
Combinar un Label y un progress bar;
Primero colocamos un Label a nuestro form, en la propiedad "Autosize" del label lo ponemos en FALSE, luego cambiar su "Alignment" a "taCenter" y su Layout a "tlCenter", luego ponen los siguientes códigos en el "FormCreate" (o donde más gusten):
Label1.Parent := progressBar1; Label1.AutoSize := False; Label1.Transparent := True; Label1.Top := 0; Label1.Left := 0; Label1.Width := progressBar1.ClientWidth; Label1.Height := progressBar1.ClientHeight; Label1.Alignment := taCenter; Label1.Layout := tlCenter;
Eso es todo cuando creen el form saldra el label en el interior del progressbar centrado
Ahora para obtener el porcentaje conforme avanza el progressbar usan el siguiente código:
var Form1: TForm1; i, total: integer; ------------ procedure TForm1.Button1Click(Sender: TObject); begin total:=15000; // total de archivos for i:=1 to total do // el progressbar se divide en pequeños trozos begin Application.ProcessMessages; // ayuda a no colgarse y que se vean los números de progreso ProgressBar1.Position:=i; Label1.Caption:=inttostr(i); Label2.Caption:= IntToStr(ProgressBar1.Position * 100 div ProgressBar1.Max) + '%'; // funciona, saca el porcentaje //ShowMessage('hola'); // funciona end; end;
Y LISTO , probado en windows 7, algunos códigos fueron sacados de web en inglés y español, espero les pueda servir este mi pequeño aporte, espero sus sugerencias, aportes y correcciones, con permiso.