FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Frames. ¿Existe un evento similar a onActivate?
Hola.
Tal como digo en el título, ¿existe en un Frame un evento similar al onActivate de un Form?. El caso es que necesito que, una vez presentado un Frame, se ejecute un cierto código. Pero debe ejecutarse una vez se haya visualizado el Frame y no antes. El evento onResize se ejecuta antes de visualizarse el frame pero no después. Gracias. Adolfo Bonis Barcelona |
#2
|
||||
|
||||
Tuve el mismo problema que tú y la única manera de solucionarlo que encontré fue usar OnEnter
__________________
self.free; |
#3
|
|||
|
|||
Yo lo que hice fue realizar un procedimiento o función, dependiendo del caso, que realice lo que quieres hacer antes de que se muestre y después, invocarla.
Espero que te haya ayudado. Saludos. |
#4
|
||||
|
||||
El frame estará en un contenedor, muy posiblemente un Form, allí puedes usar el OnShow y llamar al procedimiento que hizo kasper.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#5
|
||||
|
||||
Hola adebonis, yo utilizo el OnShow del formulario si es que mi Frame ya esta cargado en el formulario en cuestion y el procedimiento estaría en el Frame, el cual lo llamo en el OnShow del formulario. Ahora si el frame se cargara en ejecución, lo haría justamente despues de haber insertado el Frame en el formulario.
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#6
|
||||
|
||||
Cita:
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#7
|
||||
|
||||
Cita:
pero no me muestra el Frame en el formulario, si lo hago sin sobreescribir el constructor lo muestra. Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#8
|
||||
|
||||
debes forzar la entrada al control usando SetFocus, así puedes controlar el evento OnEnter
Otra solución puede ser creando un derivado de TFrame y creando una función que maneje el mensaje CM_VISIBLECHANGED, con un poco de código lo tienes resuelto.
__________________
self.free; |
#9
|
||||
|
||||
En ese caso concreto no vale mi respuesta, ¡tenías que poner la excepción que cumple la regla!
La función a ejecutar debe estar definida dentro del Frame. InsertControl (en este caso concreto) pertenece a la ventana donde será insertada el frame. Tu código es equivalente a :
que podría ejecutarse así:
Cita:
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#10
|
||||
|
||||
A mi me gustaría ver cuál es la operación que usa Caro en el constructor. Según yo entendí, no es que ahí use InsertControl, sinio que ésta es la forma en que inserta el marco.
Yo hice una pequeña prueba redefiniendo el constructor del marco y no tuve ningún problema; se visualiza correctamente, tanto usando InsertControl como asignando el Parent. // Saludos |
#11
|
||||
|
||||
Holitas Roman y Lepe, les adjunto la pruebita que hice, con el parent si funciona, me muestra el Frame, pero con InsertControl no, he probado con InsertControl, self.InsertControl, Form1.InserttControl y nada, no muestra el Frame, tengo una pregunta mas, me he creado dos instancias de TFrame3, pero cuando se crea una y al crear la otra me sale "A component named Frame3 already exists", ¿no se puede crear mas instancias de un Frame?.
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#12
|
||||
|
||||
échale una visual al calendario con frames, es el mismo frame creado 30 veces.
Básicamente, antes de asignar el Parent, debes darle un nombre único en todo ese Form. Puedes usar un contador en esa ventana que se va incrementando:
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 19-11-2008 a las 14:30:17. Razón: completar con código |
#13
|
||||
|
||||
Cita:
¿Sobre el Frame que no aparece con InsertControl, lo has probado? Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. Última edición por Caro fecha: 19-11-2008 a las 14:56:52. |
#14
|
||||
|
||||
Hola,
No hace falta pelearse con nombres únicos. Basta poner Name := ''. // Saludos |
#15
|
||||
|
||||
Que interesante, eso tampoco lo sabía, acabo de hacer la prueba y si funciona, muchas gracias amiguito.
Roman has probado sobre esta parte: Cita:
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#16
|
||||
|
||||
Ya probé y, en efecto, falla, je, je, pero todavía no sé bien porqué. Ayer cuando hice la prueba me limité a poner:
con lo cual no fallaba. Es al poner el método limpiar que falla. Haciendo una traza de SetParent (cuando se pone Parent := Self):
veo que si no se usa limpiar, el condicional de enmedio no se ejecuta, mientras que al usar limpiar, en algún momento se fuerza a crear el Handle del marco lo que obliga la llamada al DestroyHandle. Pero hasta ahí he llegado, todavía no sé en qué parte exactamente afecta. // Saludos |
#17
|
||||
|
||||
Yo me echo a temblar cada vez que leo eso de "Applications should not need to call xxx directly", sobre todo cuando he usado ese xxx desde hace mucho .
Ya me ha pasado "cosas raras" como las que comenta Caro. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#18
|
||||
|
||||
Y sí, claro. Si la documentación lo dice, por algo será . Pero como dice Caro, ya es más que nada por curiosidad.
// Saludos |
#19
|
||||
|
||||
Perdon por responder recien, como les dije no hay problema, con el Parent ya es suficiente, muchas gracias amiguitos.
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#20
|
||||
|
||||
Cita:
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿existe un Extract Week? o algo similar | amadis | SQL | 2 | 05-02-2007 14:19:32 |
Existe algo similar al DBRadioGroup pero con CheckBox ??? | arieliten | Varios | 1 | 18-03-2005 22:24:33 |
dudas evento OnActivate | triniti | OOP | 6 | 26-08-2004 19:57:41 |
existe algo similar a TFileListBox para Http? | miguel_fr | Internet | 1 | 14-04-2004 06:15:35 |
El evento OnActivate | esquerda21 | Varios | 8 | 18-06-2003 18:03:35 |
|