Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Varios
Register FAQ Members List Calendar Guía de estilo Today's Posts

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 10/01/2006
lucasarts_18's Avatar
lucasarts_18 lucasarts_18 is offline
Miembro
 
Join Date: Mar 2005
Location: Villa Alemana,Chile
Posts: 1,087
Poder: 23
lucasarts_18 Va por buen camino
Evento después de la creación de un control

Hola a todos:

Necesito ver la forma de saber cuando todos los controles de un formulario hayan sido creados.
Estuve leyendo sobre OnPaint pero no me sirve:

Quote:
OnPaint occurs before any controls on the form are painted.
Necesito algún método que se produzca después de haberse creado los controles.

Saludos...
__________________
No todo es como parece ser...
Reply With Quote
  #2  
Old 10/01/2006
vtdeleon's Avatar
vtdeleon vtdeleon is offline
Miembro
 
Join Date: Apr 2004
Location: RD & USA
Posts: 3,236
Poder: 26
vtdeleon Va por buen camino
Saludos

Mira a ver el evento OnActiv del Formulario.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Reply With Quote
  #3  
Old 10/01/2006
lucasarts_18's Avatar
lucasarts_18 lucasarts_18 is offline
Miembro
 
Join Date: Mar 2005
Location: Villa Alemana,Chile
Posts: 1,087
Poder: 23
lucasarts_18 Va por buen camino
Primero que nada, gracias por tu interés nuevamente

Quote:
Originally Posted by vtdeleon
Saludos

Mira a ver el evento OnActiv del Formulario.
Los eventos se generan en este orden

1. OnCreate
2. OnShow
3. OnActivate
4. OnPaint

Por lo tanto el OnActivate está antes del OnPaint y por razones ya mencionadas los controles tampocos estarán disponibles.
A pesar de todo esto, lo que necesito hacer es básico como al momento de inicializarse un form mando a setear los controles (habilitado o deshabilitado, seteo de variables, color, etc..), es una función que tengo en otra unidad y le paso como parametro un tipo TForm y, por ende no puedo acceder a los controles de este form ya que aún sus controles no han sido creados..

Espero haberme explicado bien..

Hasta Luego -
__________________
No todo es como parece ser...

Last edited by lucasarts_18 : 10/01/2006 at 15:32.
Reply With Quote
  #4  
Old 10/01/2006
roman's Avatar
roman roman is offline
Moderador
 
Join Date: May 2003
Location: Ciudad de México
Posts: 20,269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Quote:
Originally Posted by lucasarts_18
Por lo tanto el OnActivate está antes del OnPaint y por razones ya mencionadas los controles tampocos estarán disponibles.
Que no estén pintados no significa que no estén disponibles. En condiciones normales, para cuando ocurre el evento OnCreate del formulario, ya todos los controles han sido creados.

Es posible que se presenten algunos problemas al asignar propiedades que dependan de que los controles ya sean visibles, pero en general puedes ajustar propiedades en el evento OnCreate.

// Saludos

Last edited by roman : 10/01/2006 at 03:56.
Reply With Quote
  #5  
Old 10/01/2006
dec's Avatar
dec dec is offline
Moderador
 
Join Date: Dec 2004
Location: Alcobendas, Madrid, España
Posts: 13,142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Quote:
Originally Posted by lucasarts_18
(...) el OnActivate está antes del OnPaint y por razones ya mencionadas los controles tampocos estarán disponibles. (...)
Creo que habría que tener en cuenta que es posible que los controles ya estén creados, pero no sean visibles aún. De hecho el evento "OnCreate" del formulario ocurre antes que el evento "OnShow", es decir, el formulario es creado antes de que se vea: ¡y parece lógico que sea así!

Quote:
Originally Posted by lucasarts_18
A pesar de todo esto, lo que necesito hacer es básico como al momento de inicializarse un form mando a setear los controles (habilitado o deshabilitado, seteo de variables, color, etc..), es una función que tengo en otra unidad y le paso como parametro un tipo TForm y, por ende no puedo acceder a los controles de este form ya que aún sus controles no han sido creados..
Cuando alguna vez he tenido el mismo problema que tú (función en otra unidad que recibe un formulario sobre el cual hay que llevar a cabo determinadas tareas en sus controles) he utilizado el evento "OnShow" del formulario. Pero, ojo, hay tareas que pueden llevarse a cabo también en el evento "OnCreate".

Desde luego hay tareas que no pueden llevarse a cabo en el evento "OnCreate" y sí en el evento "OnShow", pero, sinceramente, o estoy pensando en otra cosa o no sé porqué ahora mismo no puedo ir más allá en mi explicación, esto es, en la explicación del porqué de lo que trato de explicar. Y olé.

Edito: Ya Román se me ha adelantado y creo que lo ha explicado en menos palabras y mucho mejor que yo mismo.
__________________
David Esperalta
www.decsoftutils.com

Last edited by dec : 10/01/2006 at 03:59.
Reply With Quote
  #6  
Old 10/01/2006
lucasarts_18's Avatar
lucasarts_18 lucasarts_18 is offline
Miembro
 
Join Date: Mar 2005
Location: Villa Alemana,Chile
Posts: 1,087
Poder: 23
lucasarts_18 Va por buen camino
Quote:
Originally Posted by roman
En condiciones normales, para cuando ocurre el evento OnCreate del formulario, ya todos los controles han sido creados.
Los controles estarán creados y me imagino que lógicamente el Formulario también o sino no podría contener esos controles, digo esto porque me sucede lo siguiente..

Código Delphi [-]
procedure TFrm_Clientes.FormShow(Sender: TObject);
begin
  DMMantenedores.MDOTbClientes.Open;
  Controles_Estado(True,Frm_Clientes);//Frm_Cliente está nil
end;

Puse un breakPoint y verifiqué el Frm_Clientes y marca nil...
y cuando llamo a esa rutina hay un momento que hago un Form.controlcount y presenta el problema típico de los objetos no creados aún..

Hasta Luego -
__________________
No todo es como parece ser...

Last edited by lucasarts_18 : 10/01/2006 at 04:54.
Reply With Quote
  #7  
Old 10/01/2006
roman's Avatar
roman roman is offline
Moderador
 
Join Date: May 2003
Location: Ciudad de México
Posts: 20,269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En lugar de

Código Delphi [-]
Controles_Estado(true, Frm_Clientes);

yo pondría

Código Delphi [-]
Controles_Estado(true, Self);

Una cosa es que el objeto ya esté creado y otra que la variable (Frm_Clientes en este caso) ya tenga asignada la referencia a dicho objeto.

No sé si realmente ésta sea la causa del problema, pero sí te comento que los métdos de una clase (TFrm_Clientes) no deben hacer referencias a instancias particulares (Frm_Clientes).

En tu caso, desde el método TFrm_Clientes.FormShow estás tratando de acceder al objeto que se está mostrando, y éste no tiene, en general, porqué coincidir con la variable por defecto que Delphi (uno de sus malos hábitos) crea por defecto.

// Saludos
Reply With Quote
  #8  
Old 10/01/2006
lucasarts_18's Avatar
lucasarts_18 lucasarts_18 is offline
Miembro
 
Join Date: Mar 2005
Location: Villa Alemana,Chile
Posts: 1,087
Poder: 23
lucasarts_18 Va por buen camino
Quote:
Originally Posted by roman
En tu caso, desde el método TFrm_Clientes.FormShow estás tratando de acceder al objeto que se está mostrando, y éste no tiene, en general, porqué coincidir con la variable por defecto que Delphi (uno de sus malos hábitos) crea por defecto.
Este era el problema, caso resuelto, por cierto roman, muy clara tu explicación.
Gracias a todos

Nos vemos...
__________________
No todo es como parece ser...

Last edited by lucasarts_18 : 10/01/2006 at 15:33.
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
evento click de bitbton en la creacion componente satabel Varios 2 02/09/2005 15:47
evento click de un bitbtn creacion componente satabel Varios 3 31/08/2005 16:02
eventos en objetos Nidia H. Ochoa OOP 4 27/02/2004 04:17
asignar evento a control creado dinamicamente jorgeganc Varios 4 17/12/2003 02:47
Evento MDIform despues de cerrar un formulario MDChild ing_alsaac Varios 3 02/06/2003 17:35


All times are GMT +2. The time now is 01:52.


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