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.

Caracteres en un browse

Foro público de Xailer en español
Responder
ssi-estono-
Mensajes: 239
Registrado: Sab Ene 24, 2009 8:23 pm

Caracteres en un browse

Mensaje por ssi-estono- »

Como podrí­a saber el nº de caracteres que se van escribiendo en una
celda de un browse?
Saludos:
Paco V
Avatar de Usuario
XeviCOMAS
Mensajes: 593
Registrado: Sab Mar 12, 2011 8:16 pm

Caracteres en un browse

Mensaje por XeviCOMAS »

Paco,
debes capturar el evento OnEdit de la columna en cuestión.
Así es como lo estoy utilizando en un Browse que me interesa ir mostrando un
"semaforillo" mostrando los caracteres que me quedan por escribir al editar
la columna 2.
METHOD Browse2Column4Edit( oSender, Value, lMultiEdit ) CLASS TFrmORAlbarans
If ::lTextLliure
::oLblLen:nTop := ::oSplitter1:nTop + ::oSplitter1:nHeight +2 +
::oBrowse2:nTop + (::oBrowse2:nRowSel * ::oBrowse2:nRowHeight) +3
::oLblLen:cText := AllTrim( Str( Len( aPictu[1,4] ) - Len( AllTrim(
Value ) ) ) )
::oLblLen:nClrPane := If( Val( ::oLblLen:cText ) < 11, If( Val(
::oLblLen:cText ) < 6, 0x0000EA/*Vermell*/, 0x0080ff/*Taronja*/ ),
0x00FF80/*Verd*/ )
::oLblLen:lVisible := .T.
oSender:oGridEdit:OnChange := {|| ::xEditDescrip(oSender) }
EndIf
::lTextLliure := .F.
RETURN Nil
Ahora bien... simplificando, para saber los caracteres que llevas
escritos...
METHOD Browse2Column4Edit( oSender, Value, lMultiEdit ) CLASS TFrmORAlbarans
LogDebug( Len( AllTrim( Value ) ) )
RETURN Nil
Un Saludo,
Xevi.
"Paco V." <ssi-estono-@ono.com> ha escrit al missatge del grup de discussió:
50b911f1$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Como podría saber el nº de caracteres que se van escribiendo en una celda
> de un browse?
>
> Saludos:
>
> Paco V
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de
> firmas de virus 7751 (20121130) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
>
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 7751 (20121130) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com
Un Saludo,
Xevi.
ssi-estono-
Mensajes: 239
Registrado: Sab Ene 24, 2009 8:23 pm

Caracteres en un browse

Mensaje por ssi-estono- »

Xevi, gracias por tu ayuda, pero no me funciona.
Parece que este evento solo se produce al entrar en edición. Yo necesito
saber el nº de caracteres que van escribiendo.
Paco V
El 30/11/2012 22:36, Xevi escribió:
> Paco,
>
> debes capturar el evento OnEdit de la columna en cuestión.
> Así­ es como lo estoy utilizando en un Browse que me interesa ir mostrando un
> "semaforillo" mostrando los caracteres que me quedan por escribir al editar
> la columna 2.
>
> METHOD Browse2Column4Edit( oSender, Value, lMultiEdit ) CLASS TFrmORAlbarans
> If ::lTextLliure
> ::oLblLen:nTop := ::oSplitter1:nTop + ::oSplitter1:nHeight +2 +
> ::oBrowse2:nTop + (::oBrowse2:nRowSel * ::oBrowse2:nRowHeight) +3
> ::oLblLen:cText := AllTrim( Str( Len( aPictu[1,4] ) - Len( AllTrim(
> Value ) ) ) )
> ::oLblLen:nClrPane := If( Val( ::oLblLen:cText ) < 11, If( Val(
> ::oLblLen:cText ) < 6, 0x0000EA/*Vermell*/, 0x0080ff/*Taronja*/ ),
> 0x00FF80/*Verd*/ )
> ::oLblLen:lVisible := .T.
> oSender:oGridEdit:OnChange := {|| ::xEditDescrip(oSender) }
> EndIf
> ::lTextLliure := .F.
> RETURN Nil
>
>
> Ahora bien... simplificando, para saber los caracteres que llevas
> escritos...
>
> METHOD Browse2Column4Edit( oSender, Value, lMultiEdit ) CLASS TFrmORAlbarans
> LogDebug( Len( AllTrim( Value ) ) )
> RETURN Nil
>
>
> Un Saludo,
> Xevi.
>
> "Paco V." <ssi-estono-@ono.com> ha escrit al missatge del grup de discussió:
> 50b911f1$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>> Como podrí­a saber el nº de caracteres que se van escribiendo en una celda
>> de un browse?
>>
>> Saludos:
>>
>> Paco V
>>
>> __________ Información de ESET NOD32 Antivirus, versión de la base de
>> firmas de virus 7751 (20121130) __________
>>
>> ESET NOD32 Antivirus ha comprobado este mensaje.
>>
>> http://www.eset.com
>>
>>
>>
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 7751 (20121130) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
>
>
Avatar de Usuario
XeviCOMAS
Mensajes: 593
Registrado: Sab Mar 12, 2011 8:16 pm

Caracteres en un browse

Mensaje por XeviCOMAS »

Paco,
perdona...
en mi ejemplo, si te fijas utilizo el evento OnChange() del GridEdit...
>> oSender:oGridEdit:OnChange := {|| ::xEditDescrip(oSender) }
Simplificado...
Hazlo así
METHOD ArrayBrowse1Column1Edit( oSender, Value, lMultiEdit ) CLASS TForm1
oSender:oGridEdit:OnChange := {|| LogDebug( Len(
oSender:oGridEdit:cText ) ) }
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD ArrayBrowse1Column1Exit( oSender, oGridEdit, oNextCtl ) CLASS TForm1
//Retornamos el estado inicial de OnChange del GridEdit, en este caso Nil
oSender:oGridEdit:OnChange := Nil
RETURN Nil
Verás como SI funciona, comprobado!!!
Un Saludo,
Xevi.
"Paco V." <ssi-estono-@ono.com> ha escrit al missatge del grup de discussió:
50b9c4c1$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Xevi, gracias por tu ayuda, pero no me funciona.
> Parece que este evento solo se produce al entrar en edición. Yo necesito
> saber el nº de caracteres que van escribiendo.
>
> Paco V
>
>
> El 30/11/2012 22:36, Xevi escribió:
>> Paco,
>>
>> debes capturar el evento OnEdit de la columna en cuestión.
>> Así es como lo estoy utilizando en un Browse que me interesa ir mostrando
>> un
>> "semaforillo" mostrando los caracteres que me quedan por escribir al
>> editar
>> la columna 2.
>>
>> METHOD Browse2Column4Edit( oSender, Value, lMultiEdit ) CLASS
>> TFrmORAlbarans
>> If ::lTextLliure
>> ::oLblLen:nTop := ::oSplitter1:nTop + ::oSplitter1:nHeight +2 +
>> ::oBrowse2:nTop + (::oBrowse2:nRowSel * ::oBrowse2:nRowHeight) +3
>> ::oLblLen:cText := AllTrim( Str( Len( aPictu[1,4] ) - Len(
>> AllTrim(
>> Value ) ) ) )
>> ::oLblLen:nClrPane := If( Val( ::oLblLen:cText ) < 11, If( Val(
>> ::oLblLen:cText ) < 6, 0x0000EA/*Vermell*/, 0x0080ff/*Taronja*/ ),
>> 0x00FF80/*Verd*/ )
>> ::oLblLen:lVisible := .T.
>> oSender:oGridEdit:OnChange := {|| ::xEditDescrip(oSender) }
>> EndIf
>> ::lTextLliure := .F.
>> RETURN Nil
>>
>>
>> Ahora bien... simplificando, para saber los caracteres que llevas
>> escritos...
>>
>> METHOD Browse2Column4Edit( oSender, Value, lMultiEdit ) CLASS
>> TFrmORAlbarans
>> LogDebug( Len( AllTrim( Value ) ) )
>> RETURN Nil
>>
>>
>> Un Saludo,
>> Xevi.
>>
>> "Paco V." <ssi-estono-@ono.com> ha escrit al missatge del grup de
>> discussió:
>> 50b911f1$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>>> Como podría saber el nº de caracteres que se van escribiendo en una
>>> celda
>>> de un browse?
>>>
>>> Saludos:
>>>
>>> Paco V
>>>
>>> __________ Información de ESET NOD32 Antivirus, versión de la base de
>>> firmas de virus 7751 (20121130) __________
>>>
>>> ESET NOD32 Antivirus ha comprobado este mensaje.
>>>
>>> http://www.eset.com
>>>
>>>
>>>
>>
>>
>> __________ Información de ESET NOD32 Antivirus, versión de la base de
>> firmas de virus 7751 (20121130) __________
>>
>> ESET NOD32 Antivirus ha comprobado este mensaje.
>>
>> http://www.eset.com
>>
>>
>>
>>
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de
> firmas de virus 7752 (20121201) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
>
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 7752 (20121201) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
http://www.eset.com
Un Saludo,
Xevi.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Caracteres en un browse

Mensaje por ignacio »

Recuerda que detrás de cualquier celda de un browse que se encuentra en edición hay un control de nombre oGridEdit y de tipo TGridEdit que es un descendiente de TMaskEdit. Por lo tanto para saber el número de caracteres existentes en una celda en edición, bastarí­a con hacer:
Len( TBrwColumn:oGridEdit:Value )
Saludos
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
ssi-estono-
Mensajes: 239
Registrado: Sab Ene 24, 2009 8:23 pm

Caracteres en un browse

Mensaje por ssi-estono- »

Gracias a Xevi e Ignacio.
Tenia un problema. Hay controles que no tienen eventos visuales y no
podí­a implementar.
Gracia a Juanjo (JJ), el compañero de Bingen que me ha abierto un
poquito los ojos. Bueno, me lo ha hecho él y me lo ha explicado.
Gracias de nuevo.
Paco V
El 01/12/2012 19:08, Xevi escribió:
> Paco,
>
> perdona...
>
> en mi ejemplo, si te fijas utilizo el evento OnChange() del GridEdit...
>>> oSender:oGridEdit:OnChange := {|| ::xEditDescrip(oSender) }
>
> Simplificado...
> Hazlo así­
>
> METHOD ArrayBrowse1Column1Edit( oSender, Value, lMultiEdit ) CLASS TForm1
> oSender:oGridEdit:OnChange := {|| LogDebug( Len(
> oSender:oGridEdit:cText ) ) }
> RETURN Nil
>
> //---------------------------------------------------------- --------------------
>
> METHOD ArrayBrowse1Column1Exit( oSender, oGridEdit, oNextCtl ) CLASS TForm1
> //Retornamos el estado inicial de OnChange del GridEdit, en este caso Nil
> oSender:oGridEdit:OnChange := Nil
> RETURN Nil
>
> Verás como SI funciona, comprobado!!!
>
>
> Un Saludo,
> Xevi.
>
> "Paco V." <ssi-estono-@ono.com> ha escrit al missatge del grup de discussió:
> 50b9c4c1$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>> Xevi, gracias por tu ayuda, pero no me funciona.
>> Parece que este evento solo se produce al entrar en edición. Yo necesito
>> saber el nº de caracteres que van escribiendo.
>>
>> Paco V
>>
>>
>> El 30/11/2012 22:36, Xevi escribió:
>>> Paco,
>>>
>>> debes capturar el evento OnEdit de la columna en cuestión.
>>> Así­ es como lo estoy utilizando en un Browse que me interesa ir mostrando
>>> un
>>> "semaforillo" mostrando los caracteres que me quedan por escribir al
>>> editar
>>> la columna 2.
>>>
>>> METHOD Browse2Column4Edit( oSender, Value, lMultiEdit ) CLASS
>>> TFrmORAlbarans
>>> If ::lTextLliure
>>> ::oLblLen:nTop := ::oSplitter1:nTop + ::oSplitter1:nHeight +2 +
>>> ::oBrowse2:nTop + (::oBrowse2:nRowSel * ::oBrowse2:nRowHeight) +3
>>> ::oLblLen:cText := AllTrim( Str( Len( aPictu[1,4] ) - Len(
>>> AllTrim(
>>> Value ) ) ) )
>>> ::oLblLen:nClrPane := If( Val( ::oLblLen:cText ) < 11, If( Val(
>>> ::oLblLen:cText ) < 6, 0x0000EA/*Vermell*/, 0x0080ff/*Taronja*/ ),
>>> 0x00FF80/*Verd*/ )
>>> ::oLblLen:lVisible := .T.
>>> oSender:oGridEdit:OnChange := {|| ::xEditDescrip(oSender) }
>>> EndIf
>>> ::lTextLliure := .F.
>>> RETURN Nil
>>>
>>>
>>> Ahora bien... simplificando, para saber los caracteres que llevas
>>> escritos...
>>>
>>> METHOD Browse2Column4Edit( oSender, Value, lMultiEdit ) CLASS
>>> TFrmORAlbarans
>>> LogDebug( Len( AllTrim( Value ) ) )
>>> RETURN Nil
>>>
>>>
>>> Un Saludo,
>>> Xevi.
>>>
>>> "Paco V." <ssi-estono-@ono.com> ha escrit al missatge del grup de
>>> discussió:
>>> 50b911f1$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>>>> Como podrí­a saber el nº de caracteres que se van escribiendo en una
>>>> celda
>>>> de un browse?
>>>>
>>>> Saludos:
>>>>
>>>> Paco V
>>>>
>>>> __________ Información de ESET NOD32 Antivirus, versión de la base de
>>>> firmas de virus 7751 (20121130) __________
>>>>
>>>> ESET NOD32 Antivirus ha comprobado este mensaje.
>>>>
>>>> http://www.eset.com
>>>>
>>>>
>>>>
>>>
>>> __________ Información de ESET NOD32 Antivirus, versión de la base de
>>> firmas de virus 7751 (20121130) __________
>>>
>>> ESET NOD32 Antivirus ha comprobado este mensaje.
>>>
>>> http://www.eset.com
>>>
>>>
>>>
>>>
>>
>> __________ Información de ESET NOD32 Antivirus, versión de la base de
>> firmas de virus 7752 (20121201) __________
>>
>> ESET NOD32 Antivirus ha comprobado este mensaje.
>>
>> http://www.eset.com
>>
>>
>>
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 7752 (20121201) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
>
>
Responder