Ver Mensaje Individual
  #5  
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
ok ise este ejemplo de la sincronizacion

Código Delphi [-]
type
  TBarra = class(TThread)
  private
  protected
    procedure detenlabarra;
    procedure Execute; override;
  public
  end;

  TForm1 = class(TForm)
    Button1: TButton;
    RichEdit1: TRichEdit;
    ProgressBar1: TProgressBar;
    OracleSession1: TOracleSession;
    OracleLogon1: TOracleLogon;
    OracleScript1: TOracleScript;
    OracleQuery1: TOracleQuery;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

var
cont:integer;

{$R *.dfm}

procedure TBarra.detenlabarra;
begin
   sleep(2000);
   cont:=1;
end;

procedure TBarra.Execute;
begin
   Synchronize(detenlabarra);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   hilo:TBarra;
begin
   hilo:=TBarra.Create(False);
   while cont<>1 do
   begin
      ProgressBar1.StepIt;
      sleep(125);
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   cont:=0;
end;

pero nunca se detiene, en cambio si le hago asi si

Código Delphi [-]
type
  TBarra = class(TThread)
  private
  protected
    procedure Execute; override;
  public
  end;

  TForm1 = class(TForm)
    Button1: TButton;
    RichEdit1: TRichEdit;
    ProgressBar1: TProgressBar;
    OracleSession1: TOracleSession;
    OracleLogon1: TOracleLogon;
    OracleScript1: TOracleScript;
    OracleQuery1: TOracleQuery;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

var
cont:integer;

{$R *.dfm}

procedure TBarra.Execute;
begin
   sleep(2000);
   cont:=1;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   hilo:TBarra;
begin
   hilo:=TBarra.Create(False);
   while cont<>1 do
   begin
      ProgressBar1.StepIt;
      sleep(125);
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   cont:=0;
end;

que podra estar mal?

Última edición por Dark_RavenM fecha: 23-01-2009 a las 17:51:44.
Responder Con Cita