Ver Mensaje Individual
  #1  
Antiguo 23-01-2009
Dark_RavenM Dark_RavenM is offline
Miembro
 
Registrado: dic 2007
Posts: 25
Reputación: 0
Dark_RavenM Va por buen camino
Ayuda con Hilos

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 := Comando.Lines;
     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?
Responder Con Cita