Hola gente saludos, queria saber si alguien me puede ayudar tengo un problema con hilos, lo que pasa esque quiero que a la hora de ejecutar un query, hacer que mientras trae todos los registros una barra de progreso se este moviendo en lugar de tener el tipico icono del reloj de arena en el cursor, lo que ise es este codigo que viene enseguida pero a la hora de ejecutarlo se ejecuta primero el query luego empieza el hilo y no se por que.
Código Delphi
[-]
type
TBarraProgreso = class(TThread)
private
protected
procedure Execute; override;
public
end;
var
Form1: TForm1;
hilo:TBarraProgreso;
implementation
var
barra:TProgressBar;cont:integer;
procedure TBarraProgreso.Execute;
begin
while cont<>1 do
begin
barra.StepIt;
sleep(63);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
cont:=0;
hilo:=TBarraProgreso.Create(True);
barra:=ProgressBar1;
end;
procedure TForm1.Execute1Click(Sender: TObject);
var
Row, Column: Integer;
Col, Row2: integer;
begin
hilo.Resume;
if Length(TRim(Comando.Text)) <= 0 then exit;
screen.Cursor:=crHourGlass;
memBarre.Lines.Clear;
memBarre.Lines.Text := Comando.Lines.Text;
ArmaScript;
OracleScript.Lines.Clear;
OracleScript.Output.clear;
OracleScript.Lines := memBarre.Lines;
OracleScript.Execute;
siglinea(OracleScript.Output.Text);
StatusBar.Panels[1].Text := '';
StatusBar.Panels[2].TExt := 'Total Command :'+ IntToStr(OracleScript.CommandIndex) ;
resultado.Dispatch(ScrollMessage);
vgsavestate:=0;
Comando.SelStart:=length(Comando.LineText);
frmHistory.StgLista.Cells[0,frmHistory.StgLista.RowCount - 1 ] := Comando.Text;
frmHistory.StgLista.RowCount := frmHistory.StgLista.RowCount + 1;
frmHistory.StgLista.Row:=frmHistory.StgLista.RowCount-2;
screen.Cursor:=crDefault;
vgopen:=false;
end;
si ven tengo hilo.resume antes de ejecutar y armar el script pero se queda estatico hasta despues de que ejecuto el query y me regresa el resultado hasta entonces empieza a moverse la barra de progreso, alguien que sepa que es lo que esta mal o como hacer esto?