Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #19  
Antiguo 23-08-2011
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 23
gluglu Va por buen camino
... me siento absoluta y totalmente ignorado !

.... bueno, allá vosotros !

Aun así, os vuelvo a indicar que el código expuesto es imposible que funcione correctamente, ya cambies a Oracle o a superbasededatos Ver 1000.1, oc ambies igualmente cualquier componente a supercomponentes Ver 2021.7.

De nuevo os indico los errores, según mi punto de vista, la mayoría de ellos ya los comenté anteriormente :

Código Delphi [-]
THilo = class(TThread)
  private
    procedure ActualizaMemo;
    procedure PonTag;
  public
    CadenaMostrar: string;
    // Olvídate de este Constructor 
    constructor Create( Suspendido: Boolean );
    // Indica que el procedimiento Execute está en protected
  protected
    procedure Execute; override;
end;

El Thread debe de ser TOTALMENTE encapsulado. A lo mejor a la primera no da problemas, pero a ls segunda o tercera, seguro que dá problemas ...

Código Delphi [-]
procedure THilo.Execute;
begin
     // Aqui no tengo mu claro lo que tengo que poner
     while Self.Terminated = False do begin
           if HPrueba.Tag = 0 then begin
              Synchronize( PonTag );
No debes de acceder a una Variable de HPrueba dentro del propio Thread.

Por qué os empeñais en crear dos hilos diferentes con el mismo nombre de la variable ?
Código Delphi [-]
procedure THPrueba.Button20111Click(Sender: TObject);
var Hilo: THilo;
begin
    Hilo := THilo.Create( True );
    Hilo.FreeOnTerminate := False;
    Hilo.Resume;
    Timer1.Enabled := True;
end;

Por mucho que lo ejecuteis después en un Timer, el Thread se vuelve a crear dentro de Button20111Click con el mismo nombre de la variable, y eso os va a dar problemas porque en ningún caso va a saber referenciar correctamente cualquier llamada.

Por qué no probais :
Código Delphi [-]
procedure THPrueba.Timer1Timer(Sender: TObject);
var Hilo2: THilo;
begin
    Hilo2 := THilo.Create( True );
    Hilo2.FreeOnTerminate := False;
    Hilo2.Resume;
    Timer1.Enabled := False;
end;


Saludos ... !
__________________
Piensa siempre en positivo !
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
threads en dbExpress pborges36 Conexión con bases de datos 5 21-12-2010 16:18:47
Firebird AND Threads Abel Garcia Firebird e Interbase 21 19-03-2008 05:07:21
uso de threads JULIPO API de Windows 2 25-07-2007 16:09:06
Bloqueo Ibx Firebird AND threads Abel Garcia Firebird e Interbase 3 26-02-2007 14:02:27


La franja horaria es GMT +2. Ahora son las 11:33:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi