Página 1 de 1

Nueva beta de Xailer 1.3

Publicado: Mié Mar 07, 2007 2:03 pm
por ignacio
Estimados usuario de Xailer,
Ya podéis descargar si lo deseáis la acutalización de Xailer 1.3 beta de la
siguiente dirección:
http://www.xailer.com/files/xailerlight13beta2.exe
También podéis descargar la versión completa desde:
http://www.xailer.com/files/xailer13beta2.exe
Nota: Las ayudas no han sido actualizadas
Gracias por vuestra colaboración.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com

Nueva beta de Xailer 1.3

Publicado: Mié Mar 07, 2007 4:25 pm
por Xevi
En esta última versión, tengo problemas con los PostEdits de los Browses.
Por lo que creo puede estar pasando es que se lanzen mas de una verz los
Eventos OnPostEdirt y ColumnPostEdit.
Espero que alguien mas pueda reportar el mismo error, pues no se como
averiguar donde está fallando, cuando con la 1.2 me está funcionando
perfectamente.
Incluso en algun Browse en OnPostEdit de una columna cuando SIEMPRE me ha
vuelto a refrescar el Browse manteniendo el registro donde estoy situado,
ahora se va a la primera página del Browse, cambiando de registro sin que yo
haga hecho nada nuevo.
Repito que estos comportamientos no los obtengo con la 1.2.
Gracias,
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:45eeb80a$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Estimados usuario de Xailer,
>
> Ya podéis descargar si lo deseáis la acutalización de Xailer 1.3 beta de
> la siguiente dirección:
>
> http://www.xailer.com/files/xailerlight13beta2.exe
>
> También podéis descargar la versión completa desde:
>
> http://www.xailer.com/files/xailer13beta2.exe
>
> Nota: Las ayudas no han sido actualizadas
>
> Gracias por vuestra colaboración.
>
> Un saludo
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
>

Nueva beta de Xailer 1.3

Publicado: Mié Mar 07, 2007 4:35 pm
por ignacio
Xevi,
Te aconsejo que introduzcas unos cuantos Logdebug() en tus eventos para que
compruebas cuantas veces y en que orden se ejecutan.
En cuanto al problema de cambio de página del browse después de un PostEdit,
dime con que ejemplo puedo reproducirlo. Gracias.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:45eed971$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> En esta última versión, tengo problemas con los PostEdits de los Browses.
> Por lo que creo puede estar pasando es que se lanzen mas de una verz los
> Eventos OnPostEdirt y ColumnPostEdit.
>
> Espero que alguien mas pueda reportar el mismo error, pues no se como
> averiguar donde está fallando, cuando con la 1.2 me está funcionando
> perfectamente.
> Incluso en algun Browse en OnPostEdit de una columna cuando SIEMPRE me ha
> vuelto a refrescar el Browse manteniendo el registro donde estoy situado,
> ahora se va a la primera página del Browse, cambiando de registro sin que
> yo haga hecho nada nuevo.
> Repito que estos comportamientos no los obtengo con la 1.2.
>
> Gracias,
>
> Un Saludo,
> Xevi.
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:45eeb80a$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Estimados usuario de Xailer,
>>
>> Ya podéis descargar si lo deseáis la acutalización de Xailer 1.3 beta de
>> la siguiente dirección:
>>
>> http://www.xailer.com/files/xailerlight13beta2.exe
>>
>> También podéis descargar la versión completa desde:
>>
>> http://www.xailer.com/files/xailer13beta2.exe
>>
>> Nota: Las ayudas no han sido actualizadas
>>
>> Gracias por vuestra colaboración.
>>
>> Un saludo
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> http://www.xailer.com
>>
>>
>>
>
>

Nueva beta de Xailer 1.3

Publicado: Mié Mar 07, 2007 4:48 pm
por Xevi
Ignacio,
Una parte que influye en el comportamiento...
Creo que cuando en el evento OnPostEdit cambio el valor de lCanceled a .T.,
porque me interesa que se "aborte" el Edit no surge efecto y sigue lanzando
el evento OnPostEdit repetidamente.
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:45eedbb7$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Xevi,
>
> Te aconsejo que introduzcas unos cuantos Logdebug() en tus eventos para
> que compruebas cuantas veces y en que orden se ejecutan.
>
> En cuanto al problema de cambio de página del browse después de un
> PostEdit, dime con que ejemplo puedo reproducirlo. Gracias.
>
> Un saludo,
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
> news:45eed971$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> En esta última versión, tengo problemas con los PostEdits de los Browses.
>> Por lo que creo puede estar pasando es que se lanzen mas de una verz los
>> Eventos OnPostEdirt y ColumnPostEdit.
>>
>> Espero que alguien mas pueda reportar el mismo error, pues no se como
>> averiguar donde está fallando, cuando con la 1.2 me está funcionando
>> perfectamente.
>> Incluso en algun Browse en OnPostEdit de una columna cuando SIEMPRE me ha
>> vuelto a refrescar el Browse manteniendo el registro donde estoy situado,
>> ahora se va a la primera página del Browse, cambiando de registro sin que
>> yo haga hecho nada nuevo.
>> Repito que estos comportamientos no los obtengo con la 1.2.
>>
>> Gracias,
>>
>> Un Saludo,
>> Xevi.
>>
>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>> news:45eeb80a$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> Estimados usuario de Xailer,
>>>
>>> Ya podéis descargar si lo deseáis la acutalización de Xailer 1.3 beta de
>>> la siguiente dirección:
>>>
>>> http://www.xailer.com/files/xailerlight13beta2.exe
>>>
>>> También podéis descargar la versión completa desde:
>>>
>>> http://www.xailer.com/files/xailer13beta2.exe
>>>
>>> Nota: Las ayudas no han sido actualizadas
>>>
>>> Gracias por vuestra colaboración.
>>>
>>> Un saludo
>>>
>>> --
>>> Ignacio Ortiz de Zúñiga
>>> http://www.xailer.com
>>>
>>>
>>>
>>
>>
>
>

Nueva beta de Xailer 1.3

Publicado: Mié Mar 07, 2007 5:18 pm
por Xevi
Ignacio,
Creo que he encontrado donde se produce el disparo repetido del evento
OnPostEdit.
Resulta que en el evento OnPostEdit de mis Browses yo vuelvo el foco al
Browse, por si lo ha perdido en alguna ocasión por abrir alguna ventana
Modal.
Si saco esta llamada ::MiBrowse:SetFocus() del evento OnPostEdit funciona
correcto y no se dispara dos o mas veces y además el Browse retorna a la
posición donde estava antes del Edit.
Bien, si este cambio se queda así, tendré que rehacer mi código, en las
llamadas forzadas de foco de objetos, para que no lanzen mas mensajes de los
deseados.
Y me queda la duda de ¿cómo haremos una llamada de un Edit de un Browse que
en OnPostEdit por la causa que sea abra una ventana Modal y al cerrarla
retorne el foco al objeto que le ha llamado???
Por eso hasta ahora en el OnPostEdit retornaba el foco al Browse, pero visto
lo que hay, me parece que va a ser muy incómodo ¿es así???
Gracias.
Un Saludo,
Xevi.

Nueva beta de Xailer 1.3

Publicado: Mié Mar 07, 2007 6:17 pm
por ignacio
Xevi,
Acabo de modificar el ejemplo samplesBrowsesBrwEdit con el siguiente
código:
METHOD ArrayBrowse1Column1PostEdit( oSender, Value, lCanceled, nKey ) CLASS
TForm1
logdebug( 1 )
::oArrayBrowse1:SetFocus()
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD ArrayBrowse1Column2PostEdit( oSender, Value, lCanceled, nKey ) CLASS
TForm1
logdebug( 2 )
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD ArrayBrowse1PostEdit( oSender, lCanceled, nKey ) CLASS TForm1
logdebug( 0 )
RETURN Nil
Y en el logdebug siempre obtengo:
1
2
0
Que es como tiene que ser. Por favor, dime como reproducir ese lanzamiento
masivo de OnPostEdit. Gracias
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:45eee5c4$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Ignacio,
>
> Creo que he encontrado donde se produce el disparo repetido del evento
> OnPostEdit.
> Resulta que en el evento OnPostEdit de mis Browses yo vuelvo el foco al
> Browse, por si lo ha perdido en alguna ocasión por abrir alguna ventana
> Modal.
> Si saco esta llamada ::MiBrowse:SetFocus() del evento OnPostEdit funciona
> correcto y no se dispara dos o mas veces y además el Browse retorna a la
> posición donde estava antes del Edit.
>
> Bien, si este cambio se queda así, tendré que rehacer mi código, en las
> llamadas forzadas de foco de objetos, para que no lanzen mas mensajes de
> los
> deseados.
> Y me queda la duda de ¿cómo haremos una llamada de un Edit de un Browse
> que
> en OnPostEdit por la causa que sea abra una ventana Modal y al cerrarla
> retorne el foco al objeto que le ha llamado???
> Por eso hasta ahora en el OnPostEdit retornaba el foco al Browse, pero
> visto
> lo que hay, me parece que va a ser muy incómodo ¿es así???
>
> Gracias.
>
> Un Saludo,
> Xevi.
>
>

Nueva beta de Xailer 1.3

Publicado: Mié Mar 07, 2007 7:24 pm
por Xevi
Ignacio,
Parece ser que responde bien, casi como antes... solo he detectado un
pequeño detalle...
Un Browse con nMarqueeStyle := bmHIGHLCELL
en OnKeyDown del Browse hago que al pulsar ENTER se desplace a la columna
siguiente
Bien, pues con estos parches que has colgado el Browse no procesa la tecla
RETURN/ENTER
METHOD Browse2KeyDown( oSender, nKey, nFlags ) CLASS TFrmORAlbarans
MSGINFO( NKEY )
....
Creo recordar que en la 1.2 el Browse procesaba todas las teclas, AVPAG
REPAG INICIO FIN RETURN...
Gracias.
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:45eef75b$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Xevi,
>
> Acabo de modificar unas cuantas clases para que todos los GridEdit se
> oculten lo primero de todo y así evitar disparos innecesarios de
> OnPostEdit. Te lo incluyo con este Email.
>
> Un saludo
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:45eef397$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Xevi,
>>
>> Acabo de modificar el ejemplo samplesBrowsesBrwEdit con el siguiente
>> código:
>>
>>
>> METHOD ArrayBrowse1Column1PostEdit( oSender, Value, lCanceled, nKey )
>> CLASS
>> TForm1
>>
>> logdebug( 1 )
>> ::oArrayBrowse1:SetFocus()
>> RETURN Nil
>>
>> //---------------------------------------------------------- --------------------
>>
>> METHOD ArrayBrowse1Column2PostEdit( oSender, Value, lCanceled, nKey )
>> CLASS
>> TForm1
>> logdebug( 2 )
>> RETURN Nil
>>
>> //---------------------------------------------------------- --------------------
>>
>> METHOD ArrayBrowse1PostEdit( oSender, lCanceled, nKey ) CLASS TForm1
>>
>> logdebug( 0 )
>> RETURN Nil
>>
>> Y en el logdebug siempre obtengo:
>> 1
>> 2
>> 0
>>
>> Que es como tiene que ser. Por favor, dime como reproducir ese
>> lanzamiento
>> masivo de OnPostEdit. Gracias
>>
>> Un saludo
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> http://www.xailer.com
>>
>>
>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>> news:45eee5c4$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> Ignacio,
>>>
>>> Creo que he encontrado donde se produce el disparo repetido del evento
>>> OnPostEdit.
>>> Resulta que en el evento OnPostEdit de mis Browses yo vuelvo el foco al
>>> Browse, por si lo ha perdido en alguna ocasión por abrir alguna ventana
>>> Modal.
>>> Si saco esta llamada ::MiBrowse:SetFocus() del evento OnPostEdit
>>> funciona
>>> correcto y no se dispara dos o mas veces y además el Browse retorna a la
>>> posición donde estava antes del Edit.
>>>
>>> Bien, si este cambio se queda así, tendré que rehacer mi código, en las
>>> llamadas forzadas de foco de objetos, para que no lanzen mas mensajes de
>>> los
>>> deseados.
>>> Y me queda la duda de ¿cómo haremos una llamada de un Edit de un Browse
>>> que
>>> en OnPostEdit por la causa que sea abra una ventana Modal y al cerrarla
>>> retorne el foco al objeto que le ha llamado???
>>> Por eso hasta ahora en el OnPostEdit retornaba el foco al Browse, pero
>>> visto
>>> lo que hay, me parece que va a ser muy incómodo ¿es así???
>>>
>>> Gracias.
>>>
>>> Un Saludo,
>>> Xevi.
>>>
>>>
>>
>>
>
>
>

Nueva beta de Xailer 1.3

Publicado: Mié Mar 07, 2007 7:32 pm
por ignacio
Xevi,
Es que esa tecla se procesa por el evento cuando lAllowEdit es .T., pasalo a
..F. y te tiene que llegar.
Cuando se pulsa Intro en el browse, si el nMarqueeStyle es de tipo columna
completa se edita la línea completa, en caso contrario se edita la columna
activa, pero siempre que lAllowEdit este a .T.
Además si en el evento OnEdit de la columna devuelves .F. igualmente debería
llegarte el evento, siempre y cuando no estuvieses en edición previamente.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:45ef0351$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Ignacio,
>
> Parece ser que responde bien, casi como antes... solo he detectado un
> pequeño detalle...
> Un Browse con nMarqueeStyle := bmHIGHLCELL
> en OnKeyDown del Browse hago que al pulsar ENTER se desplace a la columna
> siguiente
> Bien, pues con estos parches que has colgado el Browse no procesa la tecla
> RETURN/ENTER
>
> METHOD Browse2KeyDown( oSender, nKey, nFlags ) CLASS TFrmORAlbarans
> MSGINFO( NKEY )
> ...
>
> Creo recordar que en la 1.2 el Browse procesaba todas las teclas, AVPAG
> REPAG INICIO FIN RETURN...
>
> Gracias.
>
> Un Saludo,
> Xevi.
>
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:45eef75b$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Xevi,
>>
>> Acabo de modificar unas cuantas clases para que todos los GridEdit se
>> oculten lo primero de todo y así evitar disparos innecesarios de
>> OnPostEdit. Te lo incluyo con este Email.
>>
>> Un saludo
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> http://www.xailer.com
>>
>>
>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>> news:45eef397$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> Xevi,
>>>
>>> Acabo de modificar el ejemplo samplesBrowsesBrwEdit con el siguiente
>>> código:
>>>
>>>
>>> METHOD ArrayBrowse1Column1PostEdit( oSender, Value, lCanceled, nKey )
>>> CLASS
>>> TForm1
>>>
>>> logdebug( 1 )
>>> ::oArrayBrowse1:SetFocus()
>>> RETURN Nil
>>>
>>> //---------------------------------------------------------- --------------------
>>>
>>> METHOD ArrayBrowse1Column2PostEdit( oSender, Value, lCanceled, nKey )
>>> CLASS
>>> TForm1
>>> logdebug( 2 )
>>> RETURN Nil
>>>
>>> //---------------------------------------------------------- --------------------
>>>
>>> METHOD ArrayBrowse1PostEdit( oSender, lCanceled, nKey ) CLASS TForm1
>>>
>>> logdebug( 0 )
>>> RETURN Nil
>>>
>>> Y en el logdebug siempre obtengo:
>>> 1
>>> 2
>>> 0
>>>
>>> Que es como tiene que ser. Por favor, dime como reproducir ese
>>> lanzamiento
>>> masivo de OnPostEdit. Gracias
>>>
>>> Un saludo
>>>
>>> --
>>> Ignacio Ortiz de Zúñiga
>>> http://www.xailer.com
>>>
>>>
>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>> news:45eee5c4$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>> Ignacio,
>>>>
>>>> Creo que he encontrado donde se produce el disparo repetido del evento
>>>> OnPostEdit.
>>>> Resulta que en el evento OnPostEdit de mis Browses yo vuelvo el foco al
>>>> Browse, por si lo ha perdido en alguna ocasión por abrir alguna ventana
>>>> Modal.
>>>> Si saco esta llamada ::MiBrowse:SetFocus() del evento OnPostEdit
>>>> funciona
>>>> correcto y no se dispara dos o mas veces y además el Browse retorna a
>>>> la
>>>> posición donde estava antes del Edit.
>>>>
>>>> Bien, si este cambio se queda así, tendré que rehacer mi código, en las
>>>> llamadas forzadas de foco de objetos, para que no lanzen mas mensajes
>>>> de
>>>> los
>>>> deseados.
>>>> Y me queda la duda de ¿cómo haremos una llamada de un Edit de un Browse
>>>> que
>>>> en OnPostEdit por la causa que sea abra una ventana Modal y al cerrarla
>>>> retorne el foco al objeto que le ha llamado???
>>>> Por eso hasta ahora en el OnPostEdit retornaba el foco al Browse, pero
>>>> visto
>>>> lo que hay, me parece que va a ser muy incómodo ¿es así???
>>>>
>>>> Gracias.
>>>>
>>>> Un Saludo,
>>>> Xevi.
>>>>
>>>>
>>>
>>>
>>
>>
>>
>
>

Nueva beta de Xailer 1.3

Publicado: Mié Mar 07, 2007 8:26 pm
por Xevi
Ignacio,
OK!!!
Ahora ya puedo probar a fondo mi aplicación con la 1.3
Gracias.
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:45ef0551$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Xevi,
>
> Es que esa tecla se procesa por el evento cuando lAllowEdit es .T., pasalo
> a .F. y te tiene que llegar.
>
> Cuando se pulsa Intro en el browse, si el nMarqueeStyle es de tipo columna
> completa se edita la línea completa, en caso contrario se edita la columna
> activa, pero siempre que lAllowEdit este a .T.
>
> Además si en el evento OnEdit de la columna devuelves .F. igualmente
> debería llegarte el evento, siempre y cuando no estuvieses en edición
> previamente.
>
> Un saludo,
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
> news:45ef0351$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Ignacio,
>>
>> Parece ser que responde bien, casi como antes... solo he detectado un
>> pequeño detalle...
>> Un Browse con nMarqueeStyle := bmHIGHLCELL
>> en OnKeyDown del Browse hago que al pulsar ENTER se desplace a la columna
>> siguiente
>> Bien, pues con estos parches que has colgado el Browse no procesa la
>> tecla RETURN/ENTER
>>
>> METHOD Browse2KeyDown( oSender, nKey, nFlags ) CLASS TFrmORAlbarans
>> MSGINFO( NKEY )
>> ...
>>
>> Creo recordar que en la 1.2 el Browse procesaba todas las teclas, AVPAG
>> REPAG INICIO FIN RETURN...
>>
>> Gracias.
>>
>> Un Saludo,
>> Xevi.
>>
>>
>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>> news:45eef75b$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> Xevi,
>>>
>>> Acabo de modificar unas cuantas clases para que todos los GridEdit se
>>> oculten lo primero de todo y así evitar disparos innecesarios de
>>> OnPostEdit. Te lo incluyo con este Email.
>>>
>>> Un saludo
>>>
>>> --
>>> Ignacio Ortiz de Zúñiga
>>> http://www.xailer.com
>>>
>>>
>>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>>> news:45eef397$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>> Xevi,
>>>>
>>>> Acabo de modificar el ejemplo samplesBrowsesBrwEdit con el siguiente
>>>> código:
>>>>
>>>>
>>>> METHOD ArrayBrowse1Column1PostEdit( oSender, Value, lCanceled, nKey )
>>>> CLASS
>>>> TForm1
>>>>
>>>> logdebug( 1 )
>>>> ::oArrayBrowse1:SetFocus()
>>>> RETURN Nil
>>>>
>>>> //---------------------------------------------------------- --------------------
>>>>
>>>> METHOD ArrayBrowse1Column2PostEdit( oSender, Value, lCanceled, nKey )
>>>> CLASS
>>>> TForm1
>>>> logdebug( 2 )
>>>> RETURN Nil
>>>>
>>>> //---------------------------------------------------------- --------------------
>>>>
>>>> METHOD ArrayBrowse1PostEdit( oSender, lCanceled, nKey ) CLASS TForm1
>>>>
>>>> logdebug( 0 )
>>>> RETURN Nil
>>>>
>>>> Y en el logdebug siempre obtengo:
>>>> 1
>>>> 2
>>>> 0
>>>>
>>>> Que es como tiene que ser. Por favor, dime como reproducir ese
>>>> lanzamiento
>>>> masivo de OnPostEdit. Gracias
>>>>
>>>> Un saludo
>>>>
>>>> --
>>>> Ignacio Ortiz de Zúñiga
>>>> http://www.xailer.com
>>>>
>>>>
>>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>>> news:45eee5c4$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>>> Ignacio,
>>>>>
>>>>> Creo que he encontrado donde se produce el disparo repetido del evento
>>>>> OnPostEdit.
>>>>> Resulta que en el evento OnPostEdit de mis Browses yo vuelvo el foco
>>>>> al
>>>>> Browse, por si lo ha perdido en alguna ocasión por abrir alguna
>>>>> ventana
>>>>> Modal.
>>>>> Si saco esta llamada ::MiBrowse:SetFocus() del evento OnPostEdit
>>>>> funciona
>>>>> correcto y no se dispara dos o mas veces y además el Browse retorna a
>>>>> la
>>>>> posición donde estava antes del Edit.
>>>>>
>>>>> Bien, si este cambio se queda así, tendré que rehacer mi código, en
>>>>> las
>>>>> llamadas forzadas de foco de objetos, para que no lanzen mas mensajes
>>>>> de
>>>>> los
>>>>> deseados.
>>>>> Y me queda la duda de ¿cómo haremos una llamada de un Edit de un
>>>>> Browse
>>>>> que
>>>>> en OnPostEdit por la causa que sea abra una ventana Modal y al
>>>>> cerrarla
>>>>> retorne el foco al objeto que le ha llamado???
>>>>> Por eso hasta ahora en el OnPostEdit retornaba el foco al Browse, pero
>>>>> visto
>>>>> lo que hay, me parece que va a ser muy incómodo ¿es así???
>>>>>
>>>>> Gracias.
>>>>>
>>>>> Un Saludo,
>>>>> Xevi.
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>
>

Nueva beta de Xailer 1.3

Publicado: Mié Mar 07, 2007 8:47 pm
por Xevi
Ignacio,
Hasta ahora tenía mi Browse que pulsando RETURN cambiaba a la siguiente de
la derecha y si pulsaba otra tecla entraba en edición de la celda.
Al poner la propiedad AllowEdit a .F. obtengo el efecto de que procese la
tecla RETURN y me cambie de columna, pero ahora no puedo entrar en
EdiciónAutomática, o sea enviando la tecla pulsada como primer carácter al
Edit.
METHOD Browse2KeyDown( oSender, nKey, nFlags ) CLASS TFrmORAlbarans
....
ElseIf nKey == VK_RETURN
::oBrowse2:GoDown()
Else
::oBrowse2:lFastEdit := .T.
....
He probado de cambiar ::oBrowse2:lFastEdit := .T. por ::oBrowse2:Edit() pero
claro está, no recibe el caracter pulsado.
Gracias.
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:45ef0551$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Xevi,
>
> Es que esa tecla se procesa por el evento cuando lAllowEdit es .T., pasalo
> a .F. y te tiene que llegar.
>
> Cuando se pulsa Intro en el browse, si el nMarqueeStyle es de tipo columna
> completa se edita la línea completa, en caso contrario se edita la columna
> activa, pero siempre que lAllowEdit este a .T.
>
> Además si en el evento OnEdit de la columna devuelves .F. igualmente
> debería llegarte el evento, siempre y cuando no estuvieses en edición
> previamente.
>
> Un saludo,
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
> news:45ef0351$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Ignacio,
>>
>> Parece ser que responde bien, casi como antes... solo he detectado un
>> pequeño detalle...
>> Un Browse con nMarqueeStyle := bmHIGHLCELL
>> en OnKeyDown del Browse hago que al pulsar ENTER se desplace a la columna
>> siguiente
>> Bien, pues con estos parches que has colgado el Browse no procesa la
>> tecla RETURN/ENTER
>>
>> METHOD Browse2KeyDown( oSender, nKey, nFlags ) CLASS TFrmORAlbarans
>> MSGINFO( NKEY )
>> ...
>>
>> Creo recordar que en la 1.2 el Browse procesaba todas las teclas, AVPAG
>> REPAG INICIO FIN RETURN...
>>
>> Gracias.
>>
>> Un Saludo,
>> Xevi.
>>
>>
>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>> news:45eef75b$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> Xevi,
>>>
>>> Acabo de modificar unas cuantas clases para que todos los GridEdit se
>>> oculten lo primero de todo y así evitar disparos innecesarios de
>>> OnPostEdit. Te lo incluyo con este Email.
>>>
>>> Un saludo
>>>
>>> --
>>> Ignacio Ortiz de Zúñiga
>>> http://www.xailer.com
>>>
>>>
>>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>>> news:45eef397$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>> Xevi,
>>>>
>>>> Acabo de modificar el ejemplo samplesBrowsesBrwEdit con el siguiente
>>>> código:
>>>>
>>>>
>>>> METHOD ArrayBrowse1Column1PostEdit( oSender, Value, lCanceled, nKey )
>>>> CLASS
>>>> TForm1
>>>>
>>>> logdebug( 1 )
>>>> ::oArrayBrowse1:SetFocus()
>>>> RETURN Nil
>>>>
>>>> //---------------------------------------------------------- --------------------
>>>>
>>>> METHOD ArrayBrowse1Column2PostEdit( oSender, Value, lCanceled, nKey )
>>>> CLASS
>>>> TForm1
>>>> logdebug( 2 )
>>>> RETURN Nil
>>>>
>>>> //---------------------------------------------------------- --------------------
>>>>
>>>> METHOD ArrayBrowse1PostEdit( oSender, lCanceled, nKey ) CLASS TForm1
>>>>
>>>> logdebug( 0 )
>>>> RETURN Nil
>>>>
>>>> Y en el logdebug siempre obtengo:
>>>> 1
>>>> 2
>>>> 0
>>>>
>>>> Que es como tiene que ser. Por favor, dime como reproducir ese
>>>> lanzamiento
>>>> masivo de OnPostEdit. Gracias
>>>>
>>>> Un saludo
>>>>
>>>> --
>>>> Ignacio Ortiz de Zúñiga
>>>> http://www.xailer.com
>>>>
>>>>
>>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>>> news:45eee5c4$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>>> Ignacio,
>>>>>
>>>>> Creo que he encontrado donde se produce el disparo repetido del evento
>>>>> OnPostEdit.
>>>>> Resulta que en el evento OnPostEdit de mis Browses yo vuelvo el foco
>>>>> al
>>>>> Browse, por si lo ha perdido en alguna ocasión por abrir alguna
>>>>> ventana
>>>>> Modal.
>>>>> Si saco esta llamada ::MiBrowse:SetFocus() del evento OnPostEdit
>>>>> funciona
>>>>> correcto y no se dispara dos o mas veces y además el Browse retorna a
>>>>> la
>>>>> posición donde estava antes del Edit.
>>>>>
>>>>> Bien, si este cambio se queda así, tendré que rehacer mi código, en
>>>>> las
>>>>> llamadas forzadas de foco de objetos, para que no lanzen mas mensajes
>>>>> de
>>>>> los
>>>>> deseados.
>>>>> Y me queda la duda de ¿cómo haremos una llamada de un Edit de un
>>>>> Browse
>>>>> que
>>>>> en OnPostEdit por la causa que sea abra una ventana Modal y al
>>>>> cerrarla
>>>>> retorne el foco al objeto que le ha llamado???
>>>>> Por eso hasta ahora en el OnPostEdit retornaba el foco al Browse, pero
>>>>> visto
>>>>> lo que hay, me parece que va a ser muy incómodo ¿es así???
>>>>>
>>>>> Gracias.
>>>>>
>>>>> Un Saludo,
>>>>> Xevi.
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>
>

Nueva beta de Xailer 1.3

Publicado: Mié Mar 07, 2007 11:01 pm
por Xevi
Ignacio,
Ya lo he solucionado!!!
Se trata de tener lFastEdit y lAllowEdit en .F. cuando no estamos editando y
poner lFastEdit y lAllowEdit a .T. para entrar a editar.
Asi pues...
METHOD Browse2KeyDown( oSender, nKey, nFlags ) CLASS TFrmORAlbarans
....
ElseIf nKey == VK_RETURN
::oBrowse2:GoDown()
Else
::oBrowse2:lFastEdit := ::oBrowse2:lAllowEdit := .T.
....
Y en el Evento OnPostEdit del Browse
::oBrowse2:lFastEdit := ::oBrowse2:lAllowEdit := .F.
De esta manera OnKeyDown procesa todas las teclas
Sería bueno saber si finalmente el Browse va a ser tratado de esta manera,
pues aplico los cambios a mi aplicación o sigo con la 1.2 que es muy
estable.
Gracias.
Un Saludo,
Xevi.
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:45ef16ce$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Ignacio,
>
> Hasta ahora tenía mi Browse que pulsando RETURN cambiaba a la siguiente de
> la derecha y si pulsaba otra tecla entraba en edición de la celda.
> Al poner la propiedad AllowEdit a .F. obtengo el efecto de que procese la
> tecla RETURN y me cambie de columna, pero ahora no puedo entrar en
> EdiciónAutomática, o sea enviando la tecla pulsada como primer carácter al
> Edit.
>
> METHOD Browse2KeyDown( oSender, nKey, nFlags ) CLASS TFrmORAlbarans
> ...
> ElseIf nKey == VK_RETURN
> ::oBrowse2:GoDown()
> Else
> ::oBrowse2:lFastEdit := .T.
> ...
>
> He probado de cambiar ::oBrowse2:lFastEdit := .T. por ::oBrowse2:Edit()
> pero claro está, no recibe el caracter pulsado.
>
> Gracias.
>
>
> Un Saludo,
> Xevi.
>
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:45ef0551$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Xevi,
>>
>> Es que esa tecla se procesa por el evento cuando lAllowEdit es .T.,
>> pasalo a .F. y te tiene que llegar.
>>
>> Cuando se pulsa Intro en el browse, si el nMarqueeStyle es de tipo
>> columna completa se edita la línea completa, en caso contrario se edita
>> la columna activa, pero siempre que lAllowEdit este a .T.
>>
>> Además si en el evento OnEdit de la columna devuelves .F. igualmente
>> debería llegarte el evento, siempre y cuando no estuvieses en edición
>> previamente.
>>
>> Un saludo,
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> http://www.xailer.com
>>
>>
>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>> news:45ef0351$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> Ignacio,
>>>
>>> Parece ser que responde bien, casi como antes... solo he detectado un
>>> pequeño detalle...
>>> Un Browse con nMarqueeStyle := bmHIGHLCELL
>>> en OnKeyDown del Browse hago que al pulsar ENTER se desplace a la
>>> columna siguiente
>>> Bien, pues con estos parches que has colgado el Browse no procesa la
>>> tecla RETURN/ENTER
>>>
>>> METHOD Browse2KeyDown( oSender, nKey, nFlags ) CLASS TFrmORAlbarans
>>> MSGINFO( NKEY )
>>> ...
>>>
>>> Creo recordar que en la 1.2 el Browse procesaba todas las teclas, AVPAG
>>> REPAG INICIO FIN RETURN...
>>>
>>> Gracias.
>>>
>>> Un Saludo,
>>> Xevi.
>>>
>>>
>>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>>> news:45eef75b$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>> Xevi,
>>>>
>>>> Acabo de modificar unas cuantas clases para que todos los GridEdit se
>>>> oculten lo primero de todo y así evitar disparos innecesarios de
>>>> OnPostEdit. Te lo incluyo con este Email.
>>>>
>>>> Un saludo
>>>>
>>>> --
>>>> Ignacio Ortiz de Zúñiga
>>>> http://www.xailer.com
>>>>
>>>>
>>>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>>>> news:45eef397$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>>> Xevi,
>>>>>
>>>>> Acabo de modificar el ejemplo samplesBrowsesBrwEdit con el
>>>>> siguiente
>>>>> código:
>>>>>
>>>>>
>>>>> METHOD ArrayBrowse1Column1PostEdit( oSender, Value, lCanceled, nKey )
>>>>> CLASS
>>>>> TForm1
>>>>>
>>>>> logdebug( 1 )
>>>>> ::oArrayBrowse1:SetFocus()
>>>>> RETURN Nil
>>>>>
>>>>> //---------------------------------------------------------- --------------------
>>>>>
>>>>> METHOD ArrayBrowse1Column2PostEdit( oSender, Value, lCanceled, nKey )
>>>>> CLASS
>>>>> TForm1
>>>>> logdebug( 2 )
>>>>> RETURN Nil
>>>>>
>>>>> //---------------------------------------------------------- --------------------
>>>>>
>>>>> METHOD ArrayBrowse1PostEdit( oSender, lCanceled, nKey ) CLASS TForm1
>>>>>
>>>>> logdebug( 0 )
>>>>> RETURN Nil
>>>>>
>>>>> Y en el logdebug siempre obtengo:
>>>>> 1
>>>>> 2
>>>>> 0
>>>>>
>>>>> Que es como tiene que ser. Por favor, dime como reproducir ese
>>>>> lanzamiento
>>>>> masivo de OnPostEdit. Gracias
>>>>>
>>>>> Un saludo
>>>>>
>>>>> --
>>>>> Ignacio Ortiz de Zúñiga
>>>>> http://www.xailer.com
>>>>>
>>>>>
>>>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>>>> news:45eee5c4$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>>>> Ignacio,
>>>>>>
>>>>>> Creo que he encontrado donde se produce el disparo repetido del
>>>>>> evento
>>>>>> OnPostEdit.
>>>>>> Resulta que en el evento OnPostEdit de mis Browses yo vuelvo el foco
>>>>>> al
>>>>>> Browse, por si lo ha perdido en alguna ocasión por abrir alguna
>>>>>> ventana
>>>>>> Modal.
>>>>>> Si saco esta llamada ::MiBrowse:SetFocus() del evento OnPostEdit
>>>>>> funciona
>>>>>> correcto y no se dispara dos o mas veces y además el Browse retorna a
>>>>>> la
>>>>>> posición donde estava antes del Edit.
>>>>>>
>>>>>> Bien, si este cambio se queda así, tendré que rehacer mi código, en
>>>>>> las
>>>>>> llamadas forzadas de foco de objetos, para que no lanzen mas mensajes
>>>>>> de
>>>>>> los
>>>>>> deseados.
>>>>>> Y me queda la duda de ¿cómo haremos una llamada de un Edit de un
>>>>>> Browse
>>>>>> que
>>>>>> en OnPostEdit por la causa que sea abra una ventana Modal y al
>>>>>> cerrarla
>>>>>> retorne el foco al objeto que le ha llamado???
>>>>>> Por eso hasta ahora en el OnPostEdit retornaba el foco al Browse,
>>>>>> pero
>>>>>> visto
>>>>>> lo que hay, me parece que va a ser muy incómodo ¿es así???
>>>>>>
>>>>>> Gracias.
>>>>>>
>>>>>> Un Saludo,
>>>>>> Xevi.
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>

Nueva beta de Xailer 1.3

Publicado: Jue Mar 08, 2007 9:43 am
por ignacio
Xevi,
Cuando el browse está en edición, la tecla RETURN la procesa el propio
Browse para pasarle el foco a la siguiente columna. Por lo tanto, es
incompatible con el hecho de que al puslar RETURN tu quieras ir a una línea
más abajo. Lo único que podría hacer es que recibieras también la pulsación
cuando la edición NO es del tipo MultiEdit, pero no me parece lo más
adecuado ya que realmente la pulsación de la tecla RETURN lo que hace es
provocar la salida de la edición, por lo tanto, la tecla se procesa por el
browse.
Después de ver tus mensajes, creo entender que tu problema radica
exclusivamente en la captura de la tecla RETURN cuando el Browse se
encuentra en modo edición. Por favor, confirmamelo. Si es así el Browse te
ofrece una mejor técnica para actuar en dicho caso y es utilizando el propio
evento OnPostEdit, pues él te da información de la última tecla pulsada, y
por lo tanto sólo tendrías que hacer algo como esto:
METHOD ArrayBrowse1PostEdit( oSender, lCanceled, nKey ) CLASS TForm1
IF nKey == VK_RETURN
oSender:PostMsg( WM_KEYDOWN, VK_DOWN )
ENDIF
RETURN Nil
Observa como utiliza PosMsg() para permitir que todo el proceso de grabación
termine antes de moverse una línea para abajo.
Saludos,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:45ef16ce$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Ignacio,
>
> Hasta ahora tenía mi Browse que pulsando RETURN cambiaba a la siguiente de
> la derecha y si pulsaba otra tecla entraba en edición de la celda.
> Al poner la propiedad AllowEdit a .F. obtengo el efecto de que procese la
> tecla RETURN y me cambie de columna, pero ahora no puedo entrar en
> EdiciónAutomática, o sea enviando la tecla pulsada como primer carácter al
> Edit.
>
> METHOD Browse2KeyDown( oSender, nKey, nFlags ) CLASS TFrmORAlbarans
> ...
> ElseIf nKey == VK_RETURN
> ::oBrowse2:GoDown()
> Else
> ::oBrowse2:lFastEdit := .T.
> ...
>
> He probado de cambiar ::oBrowse2:lFastEdit := .T. por ::oBrowse2:Edit()
> pero claro está, no recibe el caracter pulsado.
>
> Gracias.
>
>
> Un Saludo,
> Xevi.
>
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:45ef0551$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Xevi,
>>
>> Es que esa tecla se procesa por el evento cuando lAllowEdit es .T.,
>> pasalo a .F. y te tiene que llegar.
>>
>> Cuando se pulsa Intro en el browse, si el nMarqueeStyle es de tipo
>> columna completa se edita la línea completa, en caso contrario se edita
>> la columna activa, pero siempre que lAllowEdit este a .T.
>>
>> Además si en el evento OnEdit de la columna devuelves .F. igualmente
>> debería llegarte el evento, siempre y cuando no estuvieses en edición
>> previamente.
>>
>> Un saludo,
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> http://www.xailer.com
>>
>>
>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>> news:45ef0351$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> Ignacio,
>>>
>>> Parece ser que responde bien, casi como antes... solo he detectado un
>>> pequeño detalle...
>>> Un Browse con nMarqueeStyle := bmHIGHLCELL
>>> en OnKeyDown del Browse hago que al pulsar ENTER se desplace a la
>>> columna siguiente
>>> Bien, pues con estos parches que has colgado el Browse no procesa la
>>> tecla RETURN/ENTER
>>>
>>> METHOD Browse2KeyDown( oSender, nKey, nFlags ) CLASS TFrmORAlbarans
>>> MSGINFO( NKEY )
>>> ...
>>>
>>> Creo recordar que en la 1.2 el Browse procesaba todas las teclas, AVPAG
>>> REPAG INICIO FIN RETURN...
>>>
>>> Gracias.
>>>
>>> Un Saludo,
>>> Xevi.
>>>
>>>
>>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>>> news:45eef75b$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>> Xevi,
>>>>
>>>> Acabo de modificar unas cuantas clases para que todos los GridEdit se
>>>> oculten lo primero de todo y así evitar disparos innecesarios de
>>>> OnPostEdit. Te lo incluyo con este Email.
>>>>
>>>> Un saludo
>>>>
>>>> --
>>>> Ignacio Ortiz de Zúñiga
>>>> http://www.xailer.com
>>>>
>>>>
>>>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>>>> news:45eef397$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>>> Xevi,
>>>>>
>>>>> Acabo de modificar el ejemplo samplesBrowsesBrwEdit con el
>>>>> siguiente
>>>>> código:
>>>>>
>>>>>
>>>>> METHOD ArrayBrowse1Column1PostEdit( oSender, Value, lCanceled, nKey )
>>>>> CLASS
>>>>> TForm1
>>>>>
>>>>> logdebug( 1 )
>>>>> ::oArrayBrowse1:SetFocus()
>>>>> RETURN Nil
>>>>>
>>>>> //---------------------------------------------------------- --------------------
>>>>>
>>>>> METHOD ArrayBrowse1Column2PostEdit( oSender, Value, lCanceled, nKey )
>>>>> CLASS
>>>>> TForm1
>>>>> logdebug( 2 )
>>>>> RETURN Nil
>>>>>
>>>>> //---------------------------------------------------------- --------------------
>>>>>
>>>>> METHOD ArrayBrowse1PostEdit( oSender, lCanceled, nKey ) CLASS TForm1
>>>>>
>>>>> logdebug( 0 )
>>>>> RETURN Nil
>>>>>
>>>>> Y en el logdebug siempre obtengo:
>>>>> 1
>>>>> 2
>>>>> 0
>>>>>
>>>>> Que es como tiene que ser. Por favor, dime como reproducir ese
>>>>> lanzamiento
>>>>> masivo de OnPostEdit. Gracias
>>>>>
>>>>> Un saludo
>>>>>
>>>>> --
>>>>> Ignacio Ortiz de Zúñiga
>>>>> http://www.xailer.com
>>>>>
>>>>>
>>>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>>>> news:45eee5c4$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>>>> Ignacio,
>>>>>>
>>>>>> Creo que he encontrado donde se produce el disparo repetido del
>>>>>> evento
>>>>>> OnPostEdit.
>>>>>> Resulta que en el evento OnPostEdit de mis Browses yo vuelvo el foco
>>>>>> al
>>>>>> Browse, por si lo ha perdido en alguna ocasión por abrir alguna
>>>>>> ventana
>>>>>> Modal.
>>>>>> Si saco esta llamada ::MiBrowse:SetFocus() del evento OnPostEdit
>>>>>> funciona
>>>>>> correcto y no se dispara dos o mas veces y además el Browse retorna a
>>>>>> la
>>>>>> posición donde estava antes del Edit.
>>>>>>
>>>>>> Bien, si este cambio se queda así, tendré que rehacer mi código, en
>>>>>> las
>>>>>> llamadas forzadas de foco de objetos, para que no lanzen mas mensajes
>>>>>> de
>>>>>> los
>>>>>> deseados.
>>>>>> Y me queda la duda de ¿cómo haremos una llamada de un Edit de un
>>>>>> Browse
>>>>>> que
>>>>>> en OnPostEdit por la causa que sea abra una ventana Modal y al
>>>>>> cerrarla
>>>>>> retorne el foco al objeto que le ha llamado???
>>>>>> Por eso hasta ahora en el OnPostEdit retornaba el foco al Browse,
>>>>>> pero
>>>>>> visto
>>>>>> lo que hay, me parece que va a ser muy incómodo ¿es así???
>>>>>>
>>>>>> Gracias.
>>>>>>
>>>>>> Un Saludo,
>>>>>> Xevi.
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>

Nueva beta de Xailer 1.3

Publicado: Jue Mar 08, 2007 11:13 am
por Xevi
Ignacio,
Gracias, aplicaré esta técnica, pues nada menos es lo que necesito procesar.
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:45efccba$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Xevi,
>
> Cuando el browse está en edición, la tecla RETURN la procesa el propio
> Browse para pasarle el foco a la siguiente columna. Por lo tanto, es
> incompatible con el hecho de que al puslar RETURN tu quieras ir a una
> línea más abajo. Lo único que podría hacer es que recibieras también la
> pulsación cuando la edición NO es del tipo MultiEdit, pero no me parece lo
> más adecuado ya que realmente la pulsación de la tecla RETURN lo que hace
> es provocar la salida de la edición, por lo tanto, la tecla se procesa por
> el browse.
>
> Después de ver tus mensajes, creo entender que tu problema radica
> exclusivamente en la captura de la tecla RETURN cuando el Browse se
> encuentra en modo edición. Por favor, confirmamelo. Si es así el Browse te
> ofrece una mejor técnica para actuar en dicho caso y es utilizando el
> propio evento OnPostEdit, pues él te da información de la última tecla
> pulsada, y por lo tanto sólo tendrías que hacer algo como esto:
>
>
> METHOD ArrayBrowse1PostEdit( oSender, lCanceled, nKey ) CLASS TForm1
>
> IF nKey == VK_RETURN
> oSender:PostMsg( WM_KEYDOWN, VK_DOWN )
> ENDIF
>
> RETURN Nil
>
> Observa como utiliza PosMsg() para permitir que todo el proceso de
> grabación termine antes de moverse una línea para abajo.
>
> Saludos,
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
> news:45ef16ce$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Ignacio,
>>
>> Hasta ahora tenía mi Browse que pulsando RETURN cambiaba a la siguiente
>> de la derecha y si pulsaba otra tecla entraba en edición de la celda.
>> Al poner la propiedad AllowEdit a .F. obtengo el efecto de que procese la
>> tecla RETURN y me cambie de columna, pero ahora no puedo entrar en
>> EdiciónAutomática, o sea enviando la tecla pulsada como primer carácter
>> al Edit.
>>
>> METHOD Browse2KeyDown( oSender, nKey, nFlags ) CLASS TFrmORAlbarans
>> ...
>> ElseIf nKey == VK_RETURN
>> ::oBrowse2:GoDown()
>> Else
>> ::oBrowse2:lFastEdit := .T.
>> ...
>>
>> He probado de cambiar ::oBrowse2:lFastEdit := .T. por ::oBrowse2:Edit()
>> pero claro está, no recibe el caracter pulsado.
>>
>> Gracias.
>>
>>
>> Un Saludo,
>> Xevi.
>>
>>
>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>> news:45ef0551$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>> Xevi,
>>>
>>> Es que esa tecla se procesa por el evento cuando lAllowEdit es .T.,
>>> pasalo a .F. y te tiene que llegar.
>>>
>>> Cuando se pulsa Intro en el browse, si el nMarqueeStyle es de tipo
>>> columna completa se edita la línea completa, en caso contrario se edita
>>> la columna activa, pero siempre que lAllowEdit este a .T.
>>>
>>> Además si en el evento OnEdit de la columna devuelves .F. igualmente
>>> debería llegarte el evento, siempre y cuando no estuvieses en edición
>>> previamente.
>>>
>>> Un saludo,
>>>
>>> --
>>> Ignacio Ortiz de Zúñiga
>>> http://www.xailer.com
>>>
>>>
>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>> news:45ef0351$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>> Ignacio,
>>>>
>>>> Parece ser que responde bien, casi como antes... solo he detectado un
>>>> pequeño detalle...
>>>> Un Browse con nMarqueeStyle := bmHIGHLCELL
>>>> en OnKeyDown del Browse hago que al pulsar ENTER se desplace a la
>>>> columna siguiente
>>>> Bien, pues con estos parches que has colgado el Browse no procesa la
>>>> tecla RETURN/ENTER
>>>>
>>>> METHOD Browse2KeyDown( oSender, nKey, nFlags ) CLASS TFrmORAlbarans
>>>> MSGINFO( NKEY )
>>>> ...
>>>>
>>>> Creo recordar que en la 1.2 el Browse procesaba todas las teclas, AVPAG
>>>> REPAG INICIO FIN RETURN...
>>>>
>>>> Gracias.
>>>>
>>>> Un Saludo,
>>>> Xevi.
>>>>
>>>>
>>>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>>>> news:45eef75b$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>>> Xevi,
>>>>>
>>>>> Acabo de modificar unas cuantas clases para que todos los GridEdit se
>>>>> oculten lo primero de todo y así evitar disparos innecesarios de
>>>>> OnPostEdit. Te lo incluyo con este Email.
>>>>>
>>>>> Un saludo
>>>>>
>>>>> --
>>>>> Ignacio Ortiz de Zúñiga
>>>>> http://www.xailer.com
>>>>>
>>>>>
>>>>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>>>>> news:45eef397$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>>>> Xevi,
>>>>>>
>>>>>> Acabo de modificar el ejemplo samplesBrowsesBrwEdit con el
>>>>>> siguiente
>>>>>> código:
>>>>>>
>>>>>>
>>>>>> METHOD ArrayBrowse1Column1PostEdit( oSender, Value, lCanceled, nKey )
>>>>>> CLASS
>>>>>> TForm1
>>>>>>
>>>>>> logdebug( 1 )
>>>>>> ::oArrayBrowse1:SetFocus()
>>>>>> RETURN Nil
>>>>>>
>>>>>> //---------------------------------------------------------- --------------------
>>>>>>
>>>>>> METHOD ArrayBrowse1Column2PostEdit( oSender, Value, lCanceled, nKey )
>>>>>> CLASS
>>>>>> TForm1
>>>>>> logdebug( 2 )
>>>>>> RETURN Nil
>>>>>>
>>>>>> //---------------------------------------------------------- --------------------
>>>>>>
>>>>>> METHOD ArrayBrowse1PostEdit( oSender, lCanceled, nKey ) CLASS TForm1
>>>>>>
>>>>>> logdebug( 0 )
>>>>>> RETURN Nil
>>>>>>
>>>>>> Y en el logdebug siempre obtengo:
>>>>>> 1
>>>>>> 2
>>>>>> 0
>>>>>>
>>>>>> Que es como tiene que ser. Por favor, dime como reproducir ese
>>>>>> lanzamiento
>>>>>> masivo de OnPostEdit. Gracias
>>>>>>
>>>>>> Un saludo
>>>>>>
>>>>>> --
>>>>>> Ignacio Ortiz de Zúñiga
>>>>>> http://www.xailer.com
>>>>>>
>>>>>>
>>>>>> "Xevi" <xevicomas@gmail.com> escribió en el mensaje
>>>>>> news:45eee5c4$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>>>>>>> Ignacio,
>>>>>>>
>>>>>>> Creo que he encontrado donde se produce el disparo repetido del
>>>>>>> evento
>>>>>>> OnPostEdit.
>>>>>>> Resulta que en el evento OnPostEdit de mis Browses yo vuelvo el foco
>>>>>>> al
>>>>>>> Browse, por si lo ha perdido en alguna ocasión por abrir alguna
>>>>>>> ventana
>>>>>>> Modal.
>>>>>>> Si saco esta llamada ::MiBrowse:SetFocus() del evento OnPostEdit
>>>>>>> funciona
>>>>>>> correcto y no se dispara dos o mas veces y además el Browse retorna
>>>>>>> a la
>>>>>>> posición donde estava antes del Edit.
>>>>>>>
>>>>>>> Bien, si este cambio se queda así, tendré que rehacer mi código, en
>>>>>>> las
>>>>>>> llamadas forzadas de foco de objetos, para que no lanzen mas
>>>>>>> mensajes de
>>>>>>> los
>>>>>>> deseados.
>>>>>>> Y me queda la duda de ¿cómo haremos una llamada de un Edit de un
>>>>>>> Browse
>>>>>>> que
>>>>>>> en OnPostEdit por la causa que sea abra una ventana Modal y al
>>>>>>> cerrarla
>>>>>>> retorne el foco al objeto que le ha llamado???
>>>>>>> Por eso hasta ahora en el OnPostEdit retornaba el foco al Browse,
>>>>>>> pero
>>>>>>> visto
>>>>>>> lo que hay, me parece que va a ser muy incómodo ¿es así???
>>>>>>>
>>>>>>> Gracias.
>>>>>>>
>>>>>>> Un Saludo,
>>>>>>> Xevi.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>