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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-09-2007
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 21
basti Va por buen camino
No deberías llamar al procedimiento ShadowDraw desde el Create, es posible que no se hayan cargado todos los controles en el formulario, por eso no te muestra los cambios al ejecutar hasta que cambias una propiedad y vuelves a llamar a ShadowDraw. Además es posible que el error de Access Violation venga también de ahí.

Prueba a sobreescribir el procedimiento Loaded, que se ejecuta una vez se ha cargado el form.

Código Delphi [-]
  protected
    { Protected declarations }
    procedure Loaded; override;
.
.
.
  procedure TCCDShadow.Loaded;
  begin
     ShadowDraw;
  end;
__________________
Saludos.
Responder Con Cita
  #2  
Antiguo 12-09-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 25
maeyanes Va por buen camino
Hola...

Cita:
Empezado por basti Ver Mensaje
No deberías llamar al procedimiento ShadowDraw desde el Create, es posible que no se hayan cargado todos los controles en el formulario, por eso no te muestra los cambios al ejecutar hasta que cambias una propiedad y vuelves a llamar a ShadowDraw. Además es posible que el error de Access Violation venga también de ahí.

Prueba a sobreescribir el procedimiento Loaded, que se ejecuta una vez se ha cargado el form.
Solo una pequeña corrección...

Código Delphi [-]
  protected
    { Protected declarations }
    procedure Loaded; override;
.
.
.
  procedure TCCDShadow.Loaded;
  begin
    inherited;
    ShadowDraw;
  end;
Responder Con Cita
  #3  
Antiguo 12-09-2007
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 21
basti Va por buen camino
Cita:
Empezado por maeyanes Ver Mensaje
Solo una pequeña corrección...
Pequeña no, enorme...
__________________
Saludos.
Responder Con Cita
  #4  
Antiguo 13-09-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.609
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola!

Agregaría que un método virtual redefinido que todo lo que hace es llamar a su versión heredada, es innecesario, como es el caso del destructor:
Código Delphi [-]
destructor TCCDShadow.Destroy();
begin
   inherited Destroy();
end;

Por otra parte, en el constructor, la sentencia
Código Delphi [-]
ParentForm:=TForm(AOwner);
asume que el parámetro AOwner es una forma (lo cual está bien para la mayoría de los casos, donde el objeto es agregado a una forma en tiempo de diseño), pero ¿qué tal si el objeto es instanciado en tiempo de ejecución enviándole como parámetro otro tipo de dueño, incluso un Nil? O bien, el objeto es insertado en tiempo de diseño en un módulo de datos.

Concuerdo en que no debe realizarse una operación de dibujo / despliegue desde el constructor. Es prematuro. Loaded se ejecuta cuando ya toda la forma y sus componentes han sido cargados y están listos para la acción (aunque tomando en cuenta que aún no están visibles).

Un abrazo compuesto.

Al González.
Responder Con Cita
  #5  
Antiguo 13-09-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 25
maeyanes Va por buen camino
Lo del destructor Destroy se lo eliminé del código de ejemplo que le puse. Sobre el Loaded, lo pensé pero por alguna razón no lo puse xDDDD


Saludos...
Responder Con Cita
  #6  
Antiguo 13-09-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 24
José Luis Garcí Va camino a la fama
Siento la tardanza en responder, pero acabo de llegar a casa, vamos por parte Maeyes el error que me da, es
Código Delphi [-]
Undeclared identifier AOwner

en tiempo de compilación.

Voy a probar los cambios propuestos y notifico en lo que quede.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #7  
Antiguo 13-09-2007
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 24
José Luis Garcí Va camino a la fama
Probado de nuevo, cmabiando la parte
Código Delphi [-]
ParentForm:=TForm(AOwner);
que me sigue dando el mismo error
por
Código Delphi [-]
ParentForm:=TForm(nil);
que es lo que entendi, que comentaba Al González, (disculpas si lo entendi mal), logro que se compile, pero la demo ya creada da un error de acces y si creo una nueva, cuando intento aportar el componente, no se arrastra hasta el formulario.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Diseño/ejecución maestro/detalle morta71 Firebird e Interbase 2 03-05-2007 18:51:56
Diseño de reportes en tiempo de ejecución jzginez Impresión 2 17-04-2007 16:46:10
Diseño en tiempo de ejecucion Nelson Alberto Impresión 2 26-01-2006 09:34:12
Paquetes de diseño y ejecución sur-se OOP 4 15-11-2004 17:34:27
Obtener Todo El Registro De Una Tabla Aunque Aunque Este Agrupado Por 2 Campos agova SQL 6 11-08-2004 15:48:14


La franja horaria es GMT +2. Ahora son las 19:38:45.


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