Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-01-2005
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 21
salvica Va por buen camino
Question Incluir un TMemo definido en el proyecto, a un hilo

Hola a tod@s l@s forer@s

Estoy intentando crear una animación GIF mediante hilo (D-7/RxLib) en el que se presenten los pasos que va recorriendo en un TMemo definido en el proyecto

Por ahora no consigo quitarme de encima una excepción de memoria (en la línea FMemo := AMemo del procedimiento create del hilo), aunque es igual a la que trae la demo del Delphi (FBox := Box;)

Código Delphi [-]
   TMainLoopThread = class(TThread)
   private
     FAnimacion : TGIFImage; //--------> animación a crear "LOOP_"+FCabecera+".GIF"
     FMemo      : TMemo; //------------> donde se saca los mensajes (definido en TForm)
     FLista     : TStringList; //------> lista dinámica de ficheros GIF
     FCabecera  : string; //-----------> sección del .INI donde están los .GIF
     FDirIni    : string; //-----------> directorio del fichero de configuración
     FDirImg    : string; //-----------> directorio de las imágenes
     FDirOut    : string; //-----------> directorio de salida de la animación
     FMensaje   : string; //-----------> mensaje a incluir en el MEMO
   { ¿no se puede llamar directamente a FMemo.Lines.Addd() ¿ }
     procedure DoSynchronizeMSG;
   { escritura del mensaje en "FMensaje" }
     procedure SetMensaje(const Value: string);
   protected
   { ejecutar el THread }
     procedure Execute; override;
   { llamar a "DoSynchronizeMSG" }
     procedure SincronizarMSG( AMensaje:string );
   { añadir las imágenes a la animación, el código en el hilo hijo }
     procedure EjecutarLOOP( var AAnimacion:TGIFImage; AFrame:integer ); virtual; abstract;
   public
     constructor Create( AMemo:TMemo; ACabIni:string );
     destructor  Destroy; override;
     property    Mensaje   : string read FMensaje write SetMensaje;
   end;
 
   TLoopThread = class(TMainLoopThread)
   private
   protected
   { definimos el código para la creación del LOOP "override" por herencia }
     procedure EjecutarLOOP( var AAnimacion:TGIFImage; AFrame:integer ); override;
   public
   end;
El error se encuentra aquí:
Código Delphi [-]
 constructor TMainLoopThread.Create( AMemo:TMemo; ACabIni:string );
 var
   IniFile : TIniFile;
   Cadena  : string;
   Fichero : string;
 begin
   FMemo   := AMemo; // **************** ERROR DE MEMORIA
   FDirIni := DIR_INI;
   FDirImg := DIR_IMG;
   FDirOut := DIR_OUT;
   .....
 end;
He probado con Assign y también

¿Podeis decirme como se hace?
Gracias adelantadas
salvica
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 08:28:13.


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