![]() |
dudas con eventos y variables
hola!!tengo el siguiente problema, estoy realizando una aplicacion MDI, cuanod desde la ventana padre llamo a la ventana hijo, justo depues de crear al hijo le modifico los valores de unas variables globales que necesito en el hijo.
childwindow:=TFormSelCantPedCli.create(application); childwindow.numaux:=numaux; //variable globar hijo childwindow.caption:=caption+ ' - Seleccionar Cantidad'; childwindow.numped:=queryPedidos['num']; //variable global hijo childwindow.numlin:=tblinped['numlin']; //variable globar hijo El problema surge cuando tengo que hacer uso de estas variables en el evento 'onactivate' de la ventana hijo, ya que la primera vez que se activa no tienen valor ya que se activa la ventana y posteriormente le da el valor el padre a las variables. Para que funcione bien tengo que salirme de la ventana y volver a entrar , para que haga el evento onactivate con los nuevos valores. Sabe alguien alguna forma de solucionar esto????? muchas gracias!! |
Siguiendo la POO:
Tu ventana hija debería ser así (centrate en GetCaption, SetCaption y Mostrar, cuando funcione, añade más propiedades):
Ahora, cuando hagas esta asignación: automáticamente se ejecuta el procedimiento Set (SetCaption) que modifica el caption de la ventana inmediatamente. Cuando hagas una lectura de la propiedad: Se ejecuta la función Get (GetCaption), que devolverá solo la parte derecha del caption. Saludos |
muchas gracias, ahora probaré a ver que tal va con esa solución. La solución que se me había ocurrido a mi era hacer que justo despues de pasarle los valores a las variables obligo a que ocurra el evento onactivate. pero veo la tuya es mas 'bonita'.
gracias!! |
Hombre, muchas gracias por el alago, pero reconozco que la solución ni es "mía" ni es "bonita", es la forma en que delphi está hecho, mira por ejemplo el código fuente de un label y verás a lo que me refiero.
PD: acabo de ver que SetCaption está mal declarada (porque pasa un integer en lugar de un string), he editado mi mensaje para corregir el error. Saludos |
| La franja horaria es GMT +2. Ahora son las 01:57:12. |
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