hola amigos,
La verdad no he usado threads porque, en teoria, no me han hecho falta
.
tengo una aplicacion que se conecta remotamente a una base de datos firebird y quería poder poner un progressbar mientras se espera que se carguen algunos datos.
Ya estuve mirando sobre los threads con algunos enlaces que habeis recomendado pero no me aclaro mucho.
Mi idea es que saque el progressbar en pantalla mientras se carguen los datos o una animacion, el caso es que no parezca que se ha congelado la aplicacion mientras esta en el proceso.
Estaba probando este ejemplo pero no va muy bien:
Código Delphi
[-]
type
TMiHilo = class(TThread)
private
procedure AvanzaBarra;
protected
procedure Execute; override;
public
constructor Create(CreateSuspended: boolean);
end;
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
ProgressBar1: TProgressBar;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
procedure TForm1.Button1Click(Sender: TObject);
var
MiHilo : TMiHilo;
begin
MiHilo := TMiHilo.Create(True); if Assigned(MiHilo.FatalException) then
raise MiHilo.FatalException;
MiHilo.Start;
end;
procedure TMiHilo.AvanzaBarra;
begin
Form1.ProgressBar1.StepIt;
if Form1.ProgressBar1.Position = Form1.ProgressBar1.Max then begin
Form1.ProgressBar1.Position := 0;
end;
end;
procedure TMiHilo.Execute;
begin
while (not Terminated) and (true) do begin
Synchronize(@AvanzaBarra);
end;
end;
constructor TMiHilo.Create(CreateSuspended: boolean);
begin
FreeOnTerminate := True;
inherited Create(CreateSuspended);
end;
end.
Le doy al botón para que inicie pero no se llena la barra.
Ademas no veo donde puedo colocar el codigo para que mi aplicacion continue.
Si me orientais un poco
.