In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Avanzando con Xailer

Foro público de Xailer en español
George
Posts: 35
Joined: Wed Dec 17, 2008 7:35 pm

Avanzando con Xailer

Postby George » Mon Dec 29, 2008 5:40 am

Estoy desarrollando una aplicacion con Xailer y hasta ahora he podido
avanzar bastante rapido, considerando que estoy comenzando a usar este
producto, pero ya estoy requiriendo de su ayuda compañeros :)
He aqui mis primeras preguntas:
A) Es posible asignar un color por default a todos los GETS de la aplicacion
cuando estos tengan foco? Lo que quiero evitar es ir GET por GET a cambiar
sus atributos.
B) Tengo dos Forms abierto el 5 y el 4. Si estoy en el formulario 5 y quiero
hacer referencia a los controles del formulario 4, (esto es para actualizar
uno de los controles de Form4 desde una operacion en el Form5). Como hago
referencia a esos controles?. Como hago el "refresh" del Form4 desde el
Form5?
He tratado con WITH OBJECT ... END sin exito. Un ejemplo seria bienvenido
C) Es posible cambiar el Font (o ponerle el atributo Bold) solo a los
headers del TDBBrowse y no a todos los datos de la columna? Cual propiedad
debo usar?
Saludos
George
new_indika
Posts: 32
Joined: Thu Oct 16, 2008 12:59 pm

Avanzando con Xailer

Postby new_indika » Mon Dec 29, 2008 10:41 am

Puedo responderte a la pregunta b) George. Cuando he querido
utilizar/modificar propiedades de un formulario cuando éste no es el
formulario activo, simplemente a la hora de crearlos los he añadido a
AppData de ésta manera.
Desde el formulario 4, por ejemplo, se hace esta llamada:
Method MiMetodo CLASS MiClase
WITH OBJECT AppData:oFormulario:=NombreDeLaClase():CreateForm()
//Espacio para codigo
//...
//...
:Show()
END WITH
Return nil
Habiendo declarado previamente la variable oFormulario en AppData.
Puedes encontrar como en TAppdata en la ayuda.
Despues desde cualquier formulario de la aplicación, puedes acceder a
cualquiera de sus variables a partir de la variable pública oFormulario.
Un saludo
jrcpoli
Posts: 240
Joined: Wed Oct 25, 2006 8:55 pm

Avanzando con Xailer

Postby jrcpoli » Mon Dec 29, 2008 2:52 pm

Saludos:
Yo te pedirí­a que cuando preguntes en lo posible mandes algo de codigo
con el fí­n de ver como haces la llamda a la pregunta B por ejemplo y de esa
forma a lo mejor es mas facil de responderte, por que resulta que en ese
caso no se ve claro desde donde haces la llamada de un formulario a otro y
si uno es el padre del otro esto es :oForm1()New( Self ) y dentro de este
llamas a ::oForm2():New(Self) con lo que :oForm1 serí­a el padre de
::oForm2WITH OBJECT Nombre de la clase del formulario 4:New( Self )
Por lo tanto a la pregunta B no puedo decirte demas cosas.
"George" <noreply@noreply.com> escribió en el mensaje de noticias
news:495854a2@svctag-j7w3v3j....
> Estoy desarrollando una aplicacion con Xailer y hasta ahora he podido
> avanzar bastante rapido, considerando que estoy comenzando a usar este
> producto, pero ya estoy requiriendo de su ayuda compañeros :)
>
> He aqui mis primeras preguntas:
> A) Es posible asignar un color por default a todos los GETS de la
> aplicacion cuando estos tengan foco? Lo que quiero evitar es ir GET por
> GET a cambiar sus atributos.
Pon esto que te adjunto en cualquier parte de tu proyecto a ser posible en
el PRG que sirva de inicio a la aplicación, esot se llama sobrecargar la
Clase con una clase X.
CLASS TEdit FROM XEdit
PUBLISHED:
PROPERTY nClrPaneFocus INIT RGB( 255, 255, 192 )
PROPERTY nClrBorder INIT RGB( 73, 218, 120) EDITOR PE_Color
PUBLIC:
METHOD WMKeyDown( nKey, nFlags )
METHOD WMNCPaint()
ENDCLASS
//---------------------------------------------------------- --------------------
METHOD WMKeyDown( nKey, nFlags ) CLASS TEdit
IF nKey == VK_UP
::GoPrevControl()
ELSEIF nKey == VK_DOWN
::GoNextControl()
ELSE
RETURN Super:WMKeyDown( nKey, nFlags )
ENDIF
RETURN 0
//---------------------------------------------------------- ---------------------
>
> B) Tengo dos Forms abierto el 5 y el 4. Si estoy en el formulario 5 y
> quiero hacer referencia a los controles del formulario 4, (esto es para
> actualizar uno de los controles de Form4 desde una operacion en el Form5).
> Como hago referencia a esos controles?. Como hago el "refresh" del Form4
> desde el Form5?
> He tratado con WITH OBJECT ... END sin exito. Un ejemplo seria bienvenido
>
> C) Es posible cambiar el Font (o ponerle el atributo Bold) solo a los
> headers del TDBBrowse y no a todos los datos de la columna? Cual propiedad
> debo usar?
En los Eventos del TdbBrowse:OnDrawRow se puede hacer algunas cosas según se
pinta la columna, no se si será posible hacer lo que pides pero debes de
usar el objeto THeader y el Objeto TFont y ademas debes de activar o
desactivar la propiedad lParentFont del objeto TdbBrowse, hay un hilo en el
Xailer:local:Pro del año 2005 con el encabezamiento "font en browse" en el
cual se explica algo de este asunto pero no exactamente lo que tú quieres
hacer, pero si como activar y desactivar el Bold de clase TFont, si desde el
otro ordenador te puedo mandar el ejemplo que puso IGNACIO te lo pongo luego
cuando vaya al despacho.
>
> Saludos
>
>
> George
>
>
>
>
José Ramón Castro
José Ramón Castro.
jrcpoli
Posts: 240
Joined: Wed Oct 25, 2006 8:55 pm

Avanzando con Xailer

Postby jrcpoli » Mon Dec 29, 2008 3:01 pm

Saludos:
Se me olvido ponerte el metodo WMNCPAINT(), por lo tanto lo debes de
poner en el mismo sitio.
#pragma BEGINDUMP
#include "windows.h"
#include "xailer.h"
#include "colors.ch"
XA_FUNC_STATIC( TEDIT_WMNCPAINT )
{
PHB_ITEM Self = hb_stackSelfItem();
HWND hWnd = GetHandleOf( Self );
if( XA_ObjGetL( Self, "lFocused" ) )
{
HDC hdc = GetWindowDC( hWnd );
RECT rect;
HBRUSH hbr = CreateSolidBrush( (COLORREF) XA_ObjGetNL( Self,
"nClrBorder" ) );
GetWindowRect( hWnd, &rect );
rect.right -= rect.left;
rect.bottom -= rect.top;
rect.left = 0;
rect.top = 0;
FrameRect( hdc, &rect, hbr );
InflateRect( &rect, -1, -1 );
FrameRect( hdc, &rect, hbr );
DeleteObject( hbr );
}
else
PrevWindowProc( hWnd, WM_NCPAINT, hb_parnl( 1 ), 0 );
hb_retnl( 0 );
}
#pragma ENDDUMP
José Ramón Castro.
"José Ramón Castro" <jrcpoli@terra.es> escribió en el mensaje de noticias
news:4958d614@svctag-j7w3v3j....
> Saludos:
>
> Yo te pedirí­a que cuando preguntes en lo posible mandes algo de codigo
> con el fí­n de ver como haces la llamda a la pregunta B por ejemplo y de
> esa forma a lo mejor es mas facil de responderte, por que resulta que en
> ese caso no se ve claro desde donde haces la llamada de un formulario a
> otro y si uno es el padre del otro esto es :oForm1()New( Self ) y dentro
> de este llamas a ::oForm2():New(Self) con lo que :oForm1 serí­a el padre de
> ::oForm2WITH OBJECT Nombre de la clase del formulario 4:New( Self )
>
> Por lo tanto a la pregunta B no puedo decirte demas cosas.
>
> "George" <noreply@noreply.com> escribió en el mensaje de noticias
> news:495854a2@svctag-j7w3v3j....
>> Estoy desarrollando una aplicacion con Xailer y hasta ahora he podido
>> avanzar bastante rapido, considerando que estoy comenzando a usar este
>> producto, pero ya estoy requiriendo de su ayuda compañeros :)
>>
>> He aqui mis primeras preguntas:
>> A) Es posible asignar un color por default a todos los GETS de la
>> aplicacion cuando estos tengan foco? Lo que quiero evitar es ir GET por
>> GET a cambiar sus atributos.
>
> Pon esto que te adjunto en cualquier parte de tu proyecto a ser posible en
> el PRG que sirva de inicio a la aplicación, esot se llama sobrecargar la
> Clase con una clase X.
>
>
> CLASS TEdit FROM XEdit
> PUBLISHED:
> PROPERTY nClrPaneFocus INIT RGB( 255, 255, 192 )
> PROPERTY nClrBorder INIT RGB( 73, 218, 120) EDITOR PE_Color
>
> PUBLIC:
> METHOD WMKeyDown( nKey, nFlags )
> METHOD WMNCPaint()
>
> ENDCLASS
>
> //---------------------------------------------------------- --------------------
>
> METHOD WMKeyDown( nKey, nFlags ) CLASS TEdit
>
> IF nKey == VK_UP
> ::GoPrevControl()
> ELSEIF nKey == VK_DOWN
> ::GoNextControl()
> ELSE
> RETURN Super:WMKeyDown( nKey, nFlags )
> ENDIF
>
> RETURN 0
>
> //---------------------------------------------------------- ---------------------
>>
>> B) Tengo dos Forms abierto el 5 y el 4. Si estoy en el formulario 5 y
>> quiero hacer referencia a los controles del formulario 4, (esto es para
>> actualizar uno de los controles de Form4 desde una operacion en el
>> Form5). Como hago referencia a esos controles?. Como hago el "refresh"
>> del Form4 desde el Form5?
>> He tratado con WITH OBJECT ... END sin exito. Un ejemplo seria bienvenido
>>
>> C) Es posible cambiar el Font (o ponerle el atributo Bold) solo a los
>> headers del TDBBrowse y no a todos los datos de la columna? Cual
>> propiedad debo usar?
>
> En los Eventos del TdbBrowse:OnDrawRow se puede hacer algunas cosas según
> se pinta la columna, no se si será posible hacer lo que pides pero debes
> de usar el objeto THeader y el Objeto TFont y ademas debes de activar o
> desactivar la propiedad lParentFont del objeto TdbBrowse, hay un hilo en
> el Xailer:local:Pro del año 2005 con el encabezamiento "font en browse" en
> el cual se explica algo de este asunto pero no exactamente lo que tú
> quieres hacer, pero si como activar y desactivar el Bold de clase TFont,
> si desde el otro ordenador te puedo mandar el ejemplo que puso IGNACIO te
> lo pongo luego cuando vaya al despacho.
>>
>> Saludos
>>
>>
>> George
>>
>>
>>
>>
>
> José Ramón Castro
José Ramón Castro.
George
Posts: 35
Joined: Wed Dec 17, 2008 7:35 pm

Avanzando con Xailer

Postby George » Mon Dec 29, 2008 5:23 pm

Gracias Angel y Jose por contestar mi post.
Lo que sucede es que estoy en el proceso de aprendizaje de Xailer y alguna
veces no se exactamente como enfocar algunas situaciones.
Si les puedo decir que estoy impresionado con la facilidad y la potencia que
nos ofrece Xailer, sobre todo con el manejo de las base de datos.
Nunca me imagine que fuera tan facil y tan rapido desarrollar una
aplicacion.
Modulos que me llevan dias desarrollar con otras herramientas, con Xailer
los estoy completando en unas pocas horas.
Jose con relacion a tu pregunta te puedo decir que lo que me falta es
aplicar el concepto 'Xaileriano' de como manejar los controles de un
formulario padre a traves de un formulario hijo.
En el caso especifico del problema que tengo es que desde un formulario
(Form6), que tiene un folder con una imagen (una foto), haciendo click en un
boton de dicho folder me trae un formulario hijo (Form7) donde estan los
controles de la camara digital. Todo esto funciona perfectamente.
El problema es que si tomo una nueva foto desde Form7, no se como
actualizar desde Form7 el Folder que esta en Form6 donde se encuentra la
foto para que aparezca la nueva imagen en Form6.
Tengo que cerrar Form7 y Form6 y luego al abrir de nuevo Form6 entonces si
aparece la nueva foto.
Espero que me hayan entendido.
Saludos y gracias de nuevo a ambos por su apoyo.
George
..
"José Ramón Castro" <jrcpoli@terra.es> wrote in message
news:4958d614@svctag-j7w3v3j....
> Saludos:
>
> Yo te pediría que cuando preguntes en lo posible mandes algo de codigo
> con el fín de ver como haces la llamda a la pregunta B por ejemplo y de
> esa forma a lo mejor es mas facil de responderte, por que resulta que en
> ese caso no se ve claro desde donde haces la llamada de un formulario a
> otro y si uno es el padre del otro esto es :oForm1()New( Self ) y dentro
> de este llamas a ::oForm2():New(Self) con lo que :oForm1 sería el padre de
> ::oForm2WITH OBJECT Nombre de la clase del formulario 4:New( Self )
>
> Por lo tanto a la pregunta B no puedo decirte demas cosas.
>
> "George" <noreply@noreply.com> escribió en el mensaje de noticias
> news:495854a2@svctag-j7w3v3j....
>> Estoy desarrollando una aplicacion con Xailer y hasta ahora he podido
>> avanzar bastante rapido, considerando que estoy comenzando a usar este
>> producto, pero ya estoy requiriendo de su ayuda compañeros :)
>>
>> He aqui mis primeras preguntas:
>> A) Es posible asignar un color por default a todos los GETS de la
>> aplicacion cuando estos tengan foco? Lo que quiero evitar es ir GET por
>> GET a cambiar sus atributos.
>
> Pon esto que te adjunto en cualquier parte de tu proyecto a ser posible en
> el PRG que sirva de inicio a la aplicación, esot se llama sobrecargar la
> Clase con una clase X.
>
>
> CLASS TEdit FROM XEdit
> PUBLISHED:
> PROPERTY nClrPaneFocus INIT RGB( 255, 255, 192 )
> PROPERTY nClrBorder INIT RGB( 73, 218, 120) EDITOR PE_Color
>
> PUBLIC:
> METHOD WMKeyDown( nKey, nFlags )
> METHOD WMNCPaint()
>
> ENDCLASS
>
> //---------------------------------------------------------- --------------------
>
> METHOD WMKeyDown( nKey, nFlags ) CLASS TEdit
>
> IF nKey == VK_UP
> ::GoPrevControl()
> ELSEIF nKey == VK_DOWN
> ::GoNextControl()
> ELSE
> RETURN Super:WMKeyDown( nKey, nFlags )
> ENDIF
>
> RETURN 0
>
> //---------------------------------------------------------- ---------------------
>>
>> B) Tengo dos Forms abierto el 5 y el 4. Si estoy en el formulario 5 y
>> quiero hacer referencia a los controles del formulario 4, (esto es para
>> actualizar uno de los controles de Form4 desde una operacion en el
>> Form5). Como hago referencia a esos controles?. Como hago el "refresh"
>> del Form4 desde el Form5?
>> He tratado con WITH OBJECT ... END sin exito. Un ejemplo seria bienvenido
>>
>> C) Es posible cambiar el Font (o ponerle el atributo Bold) solo a los
>> headers del TDBBrowse y no a todos los datos de la columna? Cual
>> propiedad debo usar?
>
> En los Eventos del TdbBrowse:OnDrawRow se puede hacer algunas cosas según
> se pinta la columna, no se si será posible hacer lo que pides pero debes
> de usar el objeto THeader y el Objeto TFont y ademas debes de activar o
> desactivar la propiedad lParentFont del objeto TdbBrowse, hay un hilo en
> el Xailer:local:Pro del año 2005 con el encabezamiento "font en browse" en
> el cual se explica algo de este asunto pero no exactamente lo que tú
> quieres hacer, pero si como activar y desactivar el Bold de clase TFont,
> si desde el otro ordenador te puedo mandar el ejemplo que puso IGNACIO te
> lo pongo luego cuando vaya al despacho.
>>
>> Saludos
>>
>>
>> George
>>
>>
>>
>>
>
> José Ramón Castro
jrcpoli-quitar
Posts: 558
Joined: Tue Feb 09, 2010 2:26 pm

Avanzando con Xailer

Postby jrcpoli-quitar » Mon Dec 29, 2008 6:10 pm

José Ramón Castro escribió:
> Saludos:
>
> Yo te pedirí­a que cuando preguntes en lo posible mandes algo de
> codigo con el fí­n de ver como haces la llamda a la pregunta B por
> ejemplo y de esa forma a lo mejor es mas facil de responderte, por que
> resulta que en ese caso no se ve claro desde donde haces la llamada de
> un formulario a otro y si uno es el padre del otro esto es :oForm1()New(
> Self ) y dentro de este llamas a ::oForm2():New(Self) con lo que :oForm1
> serí­a el padre de ::oForm2WITH OBJECT Nombre de la clase del formulario
> 4:New( Self )
>
> Por lo tanto a la pregunta B no puedo decirte demas cosas.
>
> "George" <noreply@noreply.com> escribió en el mensaje de noticias
> news:495854a2@svctag-j7w3v3j....
>> Estoy desarrollando una aplicacion con Xailer y hasta ahora he podido
>> avanzar bastante rapido, considerando que estoy comenzando a usar este
>> producto, pero ya estoy requiriendo de su ayuda compañeros :)
>>
>> He aqui mis primeras preguntas:
>> A) Es posible asignar un color por default a todos los GETS de la
>> aplicacion cuando estos tengan foco? Lo que quiero evitar es ir GET
>> por GET a cambiar sus atributos.
>
> Pon esto que te adjunto en cualquier parte de tu proyecto a ser posible
> en el PRG que sirva de inicio a la aplicación, esot se llama sobrecargar
> la Clase con una clase X.
>
>
> CLASS TEdit FROM XEdit
> PUBLISHED:
> PROPERTY nClrPaneFocus INIT RGB( 255, 255, 192 )
> PROPERTY nClrBorder INIT RGB( 73, 218, 120) EDITOR PE_Color
>
> PUBLIC:
> METHOD WMKeyDown( nKey, nFlags )
> METHOD WMNCPaint()
>
> ENDCLASS
>
> //---------------------------------------------------------- --------------------
>
>
> METHOD WMKeyDown( nKey, nFlags ) CLASS TEdit
>
> IF nKey == VK_UP
> ::GoPrevControl()
> ELSEIF nKey == VK_DOWN
> ::GoNextControl()
> ELSE
> RETURN Super:WMKeyDown( nKey, nFlags )
> ENDIF
>
> RETURN 0
>
> //---------------------------------------------------------- ---------------------
>
>>
>> B) Tengo dos Forms abierto el 5 y el 4. Si estoy en el formulario 5 y
>> quiero hacer referencia a los controles del formulario 4, (esto es
>> para actualizar uno de los controles de Form4 desde una operacion en
>> el Form5). Como hago referencia a esos controles?. Como hago el
>> "refresh" del Form4 desde el Form5?
>> He tratado con WITH OBJECT ... END sin exito. Un ejemplo seria bienvenido
>>
>> C) Es posible cambiar el Font (o ponerle el atributo Bold) solo a los
>> headers del TDBBrowse y no a todos los datos de la columna? Cual
>> propiedad debo usar?
>
> En los Eventos del TdbBrowse:OnDrawRow se puede hacer algunas cosas
> según se pinta la columna, no se si será posible hacer lo que pides pero
> debes de usar el objeto THeader y el Objeto TFont y ademas debes de
> activar o desactivar la propiedad lParentFont del objeto TdbBrowse, hay
> un hilo en el Xailer:local:Pro del año 2005 con el encabezamiento "font
> en browse" en el cual se explica algo de este asunto pero no exactamente
> lo que tú quieres hacer, pero si como activar y desactivar el Bold de
> clase TFont, si desde el otro ordenador te puedo mandar el ejemplo que
> puso IGNACIO te lo pongo luego cuando vaya al despacho.
>>
>> Saludos
>>
>>
>> George
>>
>>
>>
>>
>
> José Ramón Castro
Respuesta al C)
Esta es la pregunta que en su momento hicieron:
es un dbfbrowse, y como puedo hacer para cambiar el font de una de las
lineas en funcion del valor logico de uno de los campos de la tabla ?, o
por
ejemplo, en los t reeview se puede controlar con lBold, pues supongo que
con
el browse seria :oFont:lBold := .T., pero como lo hago para unas lineas si
otras no?
puse esto :oFont:lBold := iif( ( ::aAliasTEMP[1] )->l_grupo == .T., .T.,
..F. ) pero me lo toma en todas las filas,
Esta es la respuesta:
Francisco,
Lo más correcto serí­a tener dos fonts ya que sino estas creando y
destruyendo fonts constantemente que puede ser muy lento. A continuación te
propongo una forma de hacerlo. Fijate en la definición de cada método que
indica claramente sobre que eventos actuan.
Un saludo,
//---------------------------------------------------------- --------------------
METHOD FormCreate( oSender ) CLASS TForm1
With Object ::oFontBold := ::oFont:Clone()
:lBold := .t.
End with
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD FormDestroy( oSender ) CLASS TForm1
::oFontBold:Destroy()
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD DbfBrowse1DrawRow( oSender, nRowPos ) CLASS TForm1
With Object oSender
if nRowPos % 2 == 0
:lParentFont := .f.
:oFont := ::oFontBold
else
:oFont := nil
:lParentFont := .t.
endif
End with
RETURN Nil
//---------------------------------------------------------- --------------------
La variable ::oFontBold es una DATA
José Ramón Castro.
User avatar
jfgimenez
Site Admin
Posts: 5620
Joined: Mon Apr 06, 2015 8:48 pm
Contact:

Avanzando con Xailer

Postby jfgimenez » Mon Dec 29, 2008 6:26 pm

George,
> A) Es posible asignar un color por default a todos los GETS de la
> aplicacion cuando estos tengan foco? Lo que quiero evitar es ir GET por
> GET a cambiar sus atributos.
Sí. Ya veo que te han contestado correctamente. No obstante, para que tengas
un poco más claro el concepto de clases X y clases T, échale un vistazo a
este artículo: http://xailer.info/esp/?p=21
> B) Tengo dos Forms abierto el 5 y el 4. Si estoy en el formulario 5 y
> quiero hacer referencia a los controles del formulario 4, (esto es para
> actualizar uno de los controles de Form4 desde una operacion en el Form5).
> Como hago referencia a esos controles?. Como hago el "refresh" del Form4
> desde el Form5?
> He tratado con WITH OBJECT ... END sin exito. Un ejemplo seria bienvenido
Depende de cómo hayas creado uno y otro formulario. Si el segundo formulario
es hijo del primero, es decir, que lo creaste con TForm5():New( Self ), de
forma que su 'oParent' es el primer formulario, pues sólo tienes que hacer
referencia a ::oParent:<control>, donde <control> es cualquier control o
componente del formulario padre. P.ej.:
::oParent:cTitle := "Cambiando el título del formulario padre"
::oParent:oLabel1:cText := "Texto del primer label del formulario padre"
> C) Es posible cambiar el Font (o ponerle el atributo Bold) solo a los
> headers del TDBBrowse y no a todos los datos de la columna? Cual propiedad
> debo usar?
Bueno, ya te lo he contestado en el otro mensaje.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
User avatar
jfgimenez
Site Admin
Posts: 5620
Joined: Mon Apr 06, 2015 8:48 pm
Contact:

Avanzando con Xailer

Postby jfgimenez » Mon Dec 29, 2008 6:29 pm

Ángel,
> WITH OBJECT AppData:oFormulario:=NombreDeLaClase():CreateForm()
Cuidado con esto. No se debe llamar nunca a CreateForm() directamente, ya
que de ello se encarga el méotod New() del formulario. Lo correcto sería
algo así:
WITH OBJECT AppData:oFormulario:=NombreDeLaClase():New( <padre> )
donde <padre> es el formulario padre de 'NombreDeLaClase', usualmente Self.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
jrcpoli-quitar
Posts: 558
Joined: Tue Feb 09, 2010 2:26 pm

Avanzando con Xailer

Postby jrcpoli-quitar » Mon Dec 29, 2008 7:03 pm

Saludos:
Si desde el (Form6) llamas al formulario (Form7) no hay duda que el
formulario siete es un hijo del formulario 6 por lo tanto si pones
::oParent delante de las variables de los controles tendrás los valores
que contiene el formulario 6.
Prueba desde el formulario siete : LogDisplay(
::oParent:oFolderPage:Variableform6:Value) y mira haber si te da el
valor que tiene en el formulario seis un edit, si te da solo tienes que
hacer que el nuevo valor capturado lo pases al formulario 6 y para que
el mensaje lo asuma Windows le pones posteriormente ProcessMessages()
Espero que te funcione sino lo dices y probamos el evento OnChange del
formulario 6.
José Ramón Castro.
George escribió:
> Gracias Angel y Jose por contestar mi post.
>
> Lo que sucede es que estoy en el proceso de aprendizaje de Xailer y alguna
> veces no se exactamente como enfocar algunas situaciones.
>
> Si les puedo decir que estoy impresionado con la facilidad y la potencia que
> nos ofrece Xailer, sobre todo con el manejo de las base de datos.
> Nunca me imagine que fuera tan facil y tan rapido desarrollar una
> aplicacion.
> Modulos que me llevan dias desarrollar con otras herramientas, con Xailer
> los estoy completando en unas pocas horas.
>
> Jose con relacion a tu pregunta te puedo decir que lo que me falta es
> aplicar el concepto 'Xaileriano' de como manejar los controles de un
> formulario padre a traves de un formulario hijo.
> En el caso especifico del problema que tengo es que desde un formulario
> (Form6), que tiene un folder con una imagen (una foto), haciendo click en un
> boton de dicho folder me trae un formulario hijo (Form7) donde estan los
> controles de la camara digital. Todo esto funciona perfectamente.
> El problema es que si tomo una nueva foto desde Form7, no se como
> actualizar desde Form7 el Folder que esta en Form6 donde se encuentra la
> foto para que aparezca la nueva imagen en Form6.
> Tengo que cerrar Form7 y Form6 y luego al abrir de nuevo Form6 entonces si
> aparece la nueva foto.
> Espero que me hayan entendido.
>
> Saludos y gracias de nuevo a ambos por su apoyo.
>
> George
> .
>
> "José Ramón Castro" <jrcpoli@terra.es> wrote in message
> news:4958d614@svctag-j7w3v3j....
>> Saludos:
>>
>> Yo te pedirí­a que cuando preguntes en lo posible mandes algo de codigo
>> con el fí­n de ver como haces la llamda a la pregunta B por ejemplo y de
>> esa forma a lo mejor es mas facil de responderte, por que resulta que en
>> ese caso no se ve claro desde donde haces la llamada de un formulario a
>> otro y si uno es el padre del otro esto es :oForm1()New( Self ) y dentro
>> de este llamas a ::oForm2():New(Self) con lo que :oForm1 serí­a el padre de
>> ::oForm2WITH OBJECT Nombre de la clase del formulario 4:New( Self )
>>
>> Por lo tanto a la pregunta B no puedo decirte demas cosas.
>>
>> "George" <noreply@noreply.com> escribió en el mensaje de noticias
>> news:495854a2@svctag-j7w3v3j....
>>> Estoy desarrollando una aplicacion con Xailer y hasta ahora he podido
>>> avanzar bastante rapido, considerando que estoy comenzando a usar este
>>> producto, pero ya estoy requiriendo de su ayuda compañeros :)
>>>
>>> He aqui mis primeras preguntas:
>>> A) Es posible asignar un color por default a todos los GETS de la
>>> aplicacion cuando estos tengan foco? Lo que quiero evitar es ir GET por
>>> GET a cambiar sus atributos.
>> Pon esto que te adjunto en cualquier parte de tu proyecto a ser posible en
>> el PRG que sirva de inicio a la aplicación, esot se llama sobrecargar la
>> Clase con una clase X.
>>
>>
>> CLASS TEdit FROM XEdit
>> PUBLISHED:
>> PROPERTY nClrPaneFocus INIT RGB( 255, 255, 192 )
>> PROPERTY nClrBorder INIT RGB( 73, 218, 120) EDITOR PE_Color
>>
>> PUBLIC:
>> METHOD WMKeyDown( nKey, nFlags )
>> METHOD WMNCPaint()
>>
>> ENDCLASS
>>
>> //---------------------------------------------------------- --------------------
>>
>> METHOD WMKeyDown( nKey, nFlags ) CLASS TEdit
>>
>> IF nKey == VK_UP
>> ::GoPrevControl()
>> ELSEIF nKey == VK_DOWN
>> ::GoNextControl()
>> ELSE
>> RETURN Super:WMKeyDown( nKey, nFlags )
>> ENDIF
>>
>> RETURN 0
>>
>> //---------------------------------------------------------- ---------------------
>>> B) Tengo dos Forms abierto el 5 y el 4. Si estoy en el formulario 5 y
>>> quiero hacer referencia a los controles del formulario 4, (esto es para
>>> actualizar uno de los controles de Form4 desde una operacion en el
>>> Form5). Como hago referencia a esos controles?. Como hago el "refresh"
>>> del Form4 desde el Form5?
>>> He tratado con WITH OBJECT ... END sin exito. Un ejemplo seria bienvenido
>>>
>>> C) Es posible cambiar el Font (o ponerle el atributo Bold) solo a los
>>> headers del TDBBrowse y no a todos los datos de la columna? Cual
>>> propiedad debo usar?
>> En los Eventos del TdbBrowse:OnDrawRow se puede hacer algunas cosas según
>> se pinta la columna, no se si será posible hacer lo que pides pero debes
>> de usar el objeto THeader y el Objeto TFont y ademas debes de activar o
>> desactivar la propiedad lParentFont del objeto TdbBrowse, hay un hilo en
>> el Xailer:local:Pro del año 2005 con el encabezamiento "font en browse" en
>> el cual se explica algo de este asunto pero no exactamente lo que tú
>> quieres hacer, pero si como activar y desactivar el Bold de clase TFont,
>> si desde el otro ordenador te puedo mandar el ejemplo que puso IGNACIO te
>> lo pongo luego cuando vaya al despacho.
>>> Saludos
>>>
>>>
>>> George
>>>
>>>
>>>
>>>
>> José Ramón Castro
>
>
George
Posts: 35
Joined: Wed Dec 17, 2008 7:35 pm

Avanzando con Xailer

Postby George » Mon Dec 29, 2008 8:01 pm

Ya estoy comenzando a resolver gracias a sus respuestas.
A) La clase para asignar un color por default a todo los GETS ha funcionado
perfecta. Incluso hice algunos cambios como cambiar el color que traia la
clase y eliminar el borde.
B) Lo del formulario padre-hijo, es que cree el Form7 como dependiente del
Form principal y no como hijo del Form6. Creo que de aqui es que vienen mis
problemas de que no puedo actualizar Form6 desde Form7. Tratare de hacerlo
como me indica Jose F.
C) Lo del Header en el browse no me funciona y me da el siguiente error:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
TFORM5:DBBROWSE1CREATE(47)
Error BASE/1005 Class: 'NIL' has no property: OFONT
Arguments: ( [ 1] = Type: U Val: NIL [ 2] = Type: O Val: )
Estoy usando:
METHOD DBBrowse1Create( oSender ) CLASS TForm5
oSender:nClrAltPane := RGB( 222, 234, 255 )
oSender:nClrSelFocusPane := GetSysColor(29)
oSender:nClrSelPane := GetSysColor(29)
::oDBBrowse1:oHeader:oFont := TFont():Create( "Arial", -10,, 700 )
// Aqui se genera el error
RETURN Nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Los colores alternos en el browse funcionan bien, al igual que otros
mensajes enviado al objeto: :oDBBrowse1 como por ejemplo:
::oDBBrowse1:lRecordSelector := .f. funciona perfecto. Sera que esta
instruccion debe ir el algun otro lado? cambie la propiedad lParentFont a
..F.
hay algo mas en inspector de objeto que debo hacer?
Jose F. te hago notar que estoy usando el datacontrol TDBBrowse
Saludos,
George.
"George" <noreply@noreply.com> wrote in message
news:495854a2@svctag-j7w3v3j....
> Estoy desarrollando una aplicacion con Xailer y hasta ahora he podido
> avanzar bastante rapido, considerando que estoy comenzando a usar este
> producto, pero ya estoy requiriendo de su ayuda compañeros :)
>
> He aqui mis primeras preguntas:
> A) Es posible asignar un color por default a todos los GETS de la
> aplicacion cuando estos tengan foco? Lo que quiero evitar es ir GET por
> GET a cambiar sus atributos.
>
> B) Tengo dos Forms abierto el 5 y el 4. Si estoy en el formulario 5 y
> quiero hacer referencia a los controles del formulario 4, (esto es para
> actualizar uno de los controles de Form4 desde una operacion en el Form5).
> Como hago referencia a esos controles?. Como hago el "refresh" del Form4
> desde el Form5?
> He tratado con WITH OBJECT ... END sin exito. Un ejemplo seria bienvenido
>
> C) Es posible cambiar el Font (o ponerle el atributo Bold) solo a los
> headers del TDBBrowse y no a todos los datos de la columna? Cual propiedad
> debo usar?
>
> Saludos
>
>
> George
>
>
>
>
User avatar
jfgimenez
Site Admin
Posts: 5620
Joined: Mon Apr 06, 2015 8:48 pm
Contact:

Avanzando con Xailer

Postby jfgimenez » Mon Dec 29, 2008 8:11 pm

George,
> B) Lo del formulario padre-hijo, es que cree el Form7 como dependiente del
> Form principal y no como hijo del Form6. Creo que de aqui es que vienen
> mis problemas de que no puedo actualizar Form6 desde Form7. Tratare de
> hacerlo como me indica Jose F.
Siempre puedes asignar el objeto de TForm6 a alguna variable pública o a
algún miembro de AppData como te han comentado. P.ej.
PUBLIC oForm6
WITH OBJECT oForm6 := TForm6():New( Application )
...
y después usar oForm6 tal cual. P.ej.:
oForm6:oImage1:oPicture := "foto.jpg"
> C) Lo del Header en el browse no me funciona y me da el siguiente error:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> TFORM5:DBBROWSE1CREATE(47)
> Error BASE/1005 Class: 'NIL' has no property: OFONT
> Arguments: ( [ 1] = Type: U Val: NIL [ 2] = Type: O Val: )
>
> Estoy usando:
> METHOD DBBrowse1Create( oSender ) CLASS TForm5
> oSender:nClrAltPane := RGB( 222, 234, 255 )
> oSender:nClrSelFocusPane := GetSysColor(29)
> oSender:nClrSelPane := GetSysColor(29)
>
> ::oDBBrowse1:oHeader:oFont := TFont():Create( "Arial", -10,, 700 )
> // Aqui se genera el error
>
> RETURN Nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>
> Los colores alternos en el browse funcionan bien, al igual que otros
> mensajes enviado al objeto: :oDBBrowse1 como por ejemplo:
> ::oDBBrowse1:lRecordSelector := .f. funciona perfecto. Sera que esta
> instruccion debe ir el algun otro lado? cambie la propiedad lParentFont a
> .F.
> hay algo mas en inspector de objeto que debo hacer?
Durante el evento OnCreate del browse todavía no se ha creado el header, por
eso te da el error. Debes utilizar el evento OnInitialize del formulario,
que en ese momento ya sí están creados todos los controles.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
George
Posts: 35
Joined: Wed Dec 17, 2008 7:35 pm

Avanzando con Xailer

Postby George » Mon Dec 29, 2008 8:54 pm

Jose,
Si coloco la instruccion en el evento OnInitialize del Form5 no funciona.
Es como si no ejecutara este evento ya que coloque un msginfo() y tampoco lo
ejecuta.
Colocandola en el evento FormActive si funciona pero los cambios al Header
solo se realizan despues de pasar el "mouse" por el header.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
METHOD FormActivate( oSender, oCtl ) CLASS TForm5
::oDBBrowse1:oHeader:oFont := TFont():Create( "Arial", -11,, 700 )
RETURN Nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Saludos,
George
"Jose F. Gimenez" <jfgimenez@wanadoo.es> wrote in message
news:495920e6$1@svctag-j7w3v3j....
> George,
>
>> B) Lo del formulario padre-hijo, es que cree el Form7 como dependiente
>> del Form principal y no como hijo del Form6. Creo que de aqui es que
>> vienen mis problemas de que no puedo actualizar Form6 desde Form7.
>> Tratare de hacerlo como me indica Jose F.
>
> Siempre puedes asignar el objeto de TForm6 a alguna variable pública o a
> algún miembro de AppData como te han comentado. P.ej.
>
> PUBLIC oForm6
> WITH OBJECT oForm6 := TForm6():New( Application )
> ...
>
> y después usar oForm6 tal cual. P.ej.:
>
> oForm6:oImage1:oPicture := "foto.jpg"
>
>
>
>> C) Lo del Header en el browse no me funciona y me da el siguiente error:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>> TFORM5:DBBROWSE1CREATE(47)
>> Error BASE/1005 Class: 'NIL' has no property: OFONT
>> Arguments: ( [ 1] = Type: U Val: NIL [ 2] = Type: O Val: )
>>
>> Estoy usando:
>> METHOD DBBrowse1Create( oSender ) CLASS TForm5
>> oSender:nClrAltPane := RGB( 222, 234, 255 )
>> oSender:nClrSelFocusPane := GetSysColor(29)
>> oSender:nClrSelPane := GetSysColor(29)
>>
>> ::oDBBrowse1:oHeader:oFont := TFont():Create( "Arial", -10,, 700 )
>> // Aqui se genera el error
>>
>> RETURN Nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>
>> Los colores alternos en el browse funcionan bien, al igual que otros
>> mensajes enviado al objeto: :oDBBrowse1 como por ejemplo:
>> ::oDBBrowse1:lRecordSelector := .f. funciona perfecto. Sera que esta
>> instruccion debe ir el algun otro lado? cambie la propiedad lParentFont a
>> .F.
>> hay algo mas en inspector de objeto que debo hacer?
>
> Durante el evento OnCreate del browse todavía no se ha creado el header,
> por eso te da el error. Debes utilizar el evento OnInitialize del
> formulario, que en ese momento ya sí están creados todos los controles.
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
> http://www.xailer.info
>
User avatar
jfgimenez
Site Admin
Posts: 5620
Joined: Mon Apr 06, 2015 8:48 pm
Contact:

Avanzando con Xailer

Postby jfgimenez » Mon Dec 29, 2008 9:10 pm

George,
> Si coloco la instruccion en el evento OnInitialize del Form5 no funciona.
> Es como si no ejecutara este evento ya que coloque un msginfo() y tampoco
> lo ejecuta.
El evento OnInitialize tiene que funcionar. Asegúrate de que estás creando
el formulario correctamente, con TForm5():New( <loquesea> ). Ojo con llamar
directamente al Create() o al CreateForm() de un formulario. Eso no se debe
hacer.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
George
Posts: 35
Joined: Wed Dec 17, 2008 7:35 pm

Avanzando con Xailer

Postby George » Mon Dec 29, 2008 9:17 pm

Correcto maestro!
El problema es que estaba llamando al Form5 con el mensaje Createform();
despues que cambie a New() trabaja todo perfecto.
Gracias
George.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> wrote in message
news:49592e9e@svctag-j7w3v3j....
> George,
>
>> Si coloco la instruccion en el evento OnInitialize del Form5 no funciona.
>> Es como si no ejecutara este evento ya que coloque un msginfo() y tampoco
>> lo ejecuta.
>
> El evento OnInitialize tiene que funcionar. Asegúrate de que estás creando
> el formulario correctamente, con TForm5():New( <loquesea> ). Ojo con
> llamar directamente al Create() o al CreateForm() de un formulario. Eso no
> se debe hacer.
>
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
> http://www.xailer.info
>
George
Posts: 35
Joined: Wed Dec 17, 2008 7:35 pm

Avanzando con Xailer

Postby George » Tue Dec 30, 2008 2:05 am

He aqui la solucion, gracias a la ayuda de Angel fernandez, Jose Ramon
Castro y Jose F. Gimenez
A) Es posible asignar un color por default a todos los GETS de la aplicacion
> cuando estos tengan foco? Lo que quiero evitar es ir GET por GET a cambiar
>sus atributos.
Respuesta:
// Clase para cambiar el color a todos los GETS de la aplicacion cuando
tienen foco.
CLASS TEdit FROM XEdit
PUBLISHED:
PROPERTY nClrPaneFocus INIT RGB( 226, 236, 247 ) //RGB( 255, 255, 192 )
PROPERTY nClrBorder INIT RGB( 73, 218, 120) EDITOR PE_Color
PUBLIC:
METHOD WMKeyDown( nKey, nFlags )
METHOD WMNCPaint()
ENDCLASS
//---------------------------------------------------------- -------------------- METHOD WMKeyDown( nKey, nFlags ) CLASS TEdit IF nKey == VK_UP ::GoPrevControl() ELSEIF nKey == VK_DOWN ::GoNextControl() ELSE RETURN Super:WMKeyDown( nKey, nFlags ) ENDIF RETURN 0#pragma BEGINDUMP#include "windows.h"#include "xailer.h"#include "colors.ch"XA_FUNC_STATIC( TEDIT_WMNCPAINT ){ PHB_ITEM Self = hb_stackSelfItem(); HWND hWnd = GetHandleOf( Self ); if( XA_ObjGetL( Self, "lFocused" ) ) { HDC hdc = GetWindowDC( hWnd ); RECT rect; HBRUSH hbr = CreateSolidBrush( (COLORREF) XA_ObjGetNL( Self,"nClrBorder" ) ); GetWindowRect( hWnd, &rect ); rect.right -= rect.left; rect.bottom -= rect.top; rect.left = 0; rect.top = 0; FrameRect( hdc, &rect, hbr ); InflateRect( &rect, -1, -1 ); FrameRect( hdc, &rect, hbr ); DeleteObject( hbr ); } else PrevWindowProc( hWnd, WM_NCPAINT, hb_parnl( 1 ), 0 ); hb_retnl( 0 );}#pragma ENDDUMPB) Tengo dos Forms abierto el 5 y el 4. Si estoy en el formulario 5 y quiero> hacer referencia a los controles del formulario 4, (esto es paraactualizar uno de los controles de Form4 desde una operacion en el Form5).Como hago referencia a esos controles?. Como hago el "refresh" del Form4desde el Form5?> He tratado con WITH OBJECT ... END sin exito. Un ejemplo seria bienvenidoRespuesta:El problema era debido a que estaba llamando al Form5 (desde el Form4) deforma incorrecta.Estaba usando WITH OBJECT oFrm := TForm5():CreateForm( )..... y debo usarWITH OBJECT oFrm := TForm5():New( Self ).....Ahora solo necesito usar: ::oParent:oImage2:oPicture := "Mi_Imagen.bmp" ,desde el Form5 y se actualiza automaticamente la imagen en el Form4 C) Es posible cambiar el Font (o ponerle el atributo Bold) solo a los> headers del TDBBrowse y no a todos los datos de la columna? Cual propiedaddebo usar?Respuesta:Debo colocar en el evento OnFormInitalize, del formulario que contiene elBrowse, la siguiente instruccion:::oDBBrowse1:oHeader:oFont := TFont():Create( "Arial", -11,, 700 )Aqui consigo un font diferente en los headers (en este caso el Arial) ytambien esta bold.Gracias compañeros por su ayuda .George
new_indika
Posts: 32
Joined: Thu Oct 16, 2008 12:59 pm

Avanzando con Xailer

Postby new_indika » Tue Dec 30, 2008 9:14 am

Jose F. Gimenez escribió:
> íngel,
>
>> WITH OBJECT AppData:oFormulario:=NombreDeLaClase():CreateForm()
>
> Cuidado con esto. No se debe llamar nunca a CreateForm() directamente, ya
> que de ello se encarga el méotod New() del formulario. Lo correcto serí­a
> algo así­:
>
> WITH OBJECT AppData:oFormulario:=NombreDeLaClase():New( <padre> )
>
> donde <padre> es el formulario padre de 'NombreDeLaClase', usualmente Self.
Jose,
En principio yo el método CreateForm lo llevo utilizando desde mis
comienzos en Xailer y hasta dí­a de hoy no me ha dado ningún problema.
Podrí­a decir que lo uso en todas las aplicaciones para crear los
formularios. Es más, recuerdo haber tenido errores al lanzarlos con
New() aunque supongo que puede haber sido por no pasarle un parámetro
'padre'.
¿Cuales son las "consecuencias imprevistas" de utilizar CreateForm() en
vez de New()? Estoy particularmente interesado porque todos mis
programas lo hacen y quiero rectificar a tiempo.
Un saludo y felices fiestas.
User avatar
jfgimenez
Site Admin
Posts: 5620
Joined: Mon Apr 06, 2015 8:48 pm
Contact:

Avanzando con Xailer

Postby jfgimenez » Tue Dec 30, 2008 1:52 pm

Ángel,
> ¿Cuales son las "consecuencias imprevistas" de utilizar CreateForm() en
> vez de New()? Estoy particularmente interesado porque todos mis programas
> lo hacen y quiero rectificar a tiempo.
En primer lugar, no estás asignando su 'padre', aunque la verdad es que
podrías estar haciendolo manualmente por otro lado. Tampoco se dispara el
evento OnInitialize del formulario, y en el caso de ventanas MDIFRAME, no se
crea el área para las MDICHILD. Además, en cualquier momento podemos añadir
más cosas que te podrían afectar.
Mi consejo es que cambies todas las llamadas a CreateForm() por New(
<loquesea> ) cuanto antes.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
new_indika
Posts: 32
Joined: Thu Oct 16, 2008 12:59 pm

Avanzando con Xailer

Postby new_indika » Tue Dec 30, 2008 2:25 pm

Jose F. Gimenez escribió:
> íngel,
>
>> ¿Cuales son las "consecuencias imprevistas" de utilizar CreateForm() en
>> vez de New()? Estoy particularmente interesado porque todos mis programas
>> lo hacen y quiero rectificar a tiempo.
>
> En primer lugar, no estás asignando su 'padre', aunque la verdad es que
> podrí­as estar haciendolo manualmente por otro lado. Tampoco se dispara el
> evento OnInitialize del formulario, y en el caso de ventanas MDIFRAME, no se
> crea el área para las MDICHILD. Además, en cualquier momento podemos añadir
> más cosas que te podrí­an afectar.
>
> Mi consejo es que cambies todas las llamadas a CreateForm() por New(
> <loquesea> ) cuanto antes.
Muchas gracias!
De hecho hará unos dí­as me extrañé porque en mis formularios no se
disparaba OnInitialize y me las he tenido que apañar a dí­a de hoy para
sustituir este valioso evento por los OnCreate.
Empezaré a sustituir código ya mismo ;-)
George
Posts: 35
Joined: Wed Dec 17, 2008 7:35 pm

Avanzando con Xailer

Postby George » Tue Dec 30, 2008 4:20 pm

Angel,
Los problemas que yo tenia, tanto con el Header del browse como con la
actualizacion de la imagen, se debian a que usaba :Createform() en lugar de
New(). Despues de hacer esos cambios, gracias a las indicaciones de Jose F.,
todo me funciona perfecto.
Saludos
George
"Ángel Fernández" <new_indika@hotmail.com> wrote in message
news:495a2157$1@svctag-j7w3v3j....
> Jose F. Gimenez escribió:
>> Ángel,
>>
>>> ¿Cuales son las "consecuencias imprevistas" de utilizar CreateForm() en
>>> vez de New()? Estoy particularmente interesado porque todos mis
>>> programas lo hacen y quiero rectificar a tiempo.
>>
>> En primer lugar, no estás asignando su 'padre', aunque la verdad es que
>> podrías estar haciendolo manualmente por otro lado. Tampoco se dispara el
>> evento OnInitialize del formulario, y en el caso de ventanas MDIFRAME, no
>> se crea el área para las MDICHILD. Además, en cualquier momento podemos
>> añadir más cosas que te podrían afectar.
>>
>> Mi consejo es que cambies todas las llamadas a CreateForm() por New(
>> <loquesea> ) cuanto antes.
>
> Muchas gracias!
>
> De hecho hará unos días me extrañé porque en mis formularios no se
> disparaba OnInitialize y me las he tenido que apañar a día de hoy para
> sustituir este valioso evento por los OnCreate.
>
> Empezaré a sustituir código ya mismo ;-)

Return to “Spanish”