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.

lReadOnly en TDBEditBtn

Foro de Xailer profesional en español
Responder
jrcpoli
Mensajes: 240
Registrado: Mié Oct 25, 2006 8:55 pm

lReadOnly en TDBEditBtn

Mensaje por jrcpoli »

Saludos:
En las jornadas de xailer presentación de la versión personal, pregunté
como podía hacer para que en una TEditBtn no se pudiera escribir en él pero
en cambio funcionara el evento OnBtnClick, me dijisteís que pusiera la
propiedad lReadOnly a True, vale el concepto está claro lo que ocurre es que
si en lugar de utilizar este control utilizamos TDBEditBtn esa propiedad hay
que inicializarla a mano porque no existe en las propiedades del IDE y por
el contrario si existe en el fichero de Ayuda, y en la propiedades del otro
control, porque en uno sí y en el otro no, espero se me haya entendido.
José R.Castro
jrcpoli@terra.es
José Ramón Castro.
Guest

lReadOnly en TDBEditBtn

Mensaje por Guest »

Jose,
lEditable.
No existe en la clase TDBEditBtn precisamente porque esta clase la ha
ocultado aposta. Exactamente igual ocurre con la propiedad Value.
Saludos,
"José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
news:44928d4c$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Saludos:
>
> En las jornadas de xailer presentación de la versión personal, pregunté
> como podía hacer para que en una TEditBtn no se pudiera escribir en él
> pero
> en cambio funcionara el evento OnBtnClick, me dijisteís que pusiera la
> propiedad lReadOnly a True, vale el concepto está claro lo que ocurre es
> que
> si en lugar de utilizar este control utilizamos TDBEditBtn esa propiedad
> hay
> que inicializarla a mano porque no existe en las propiedades del IDE y por
> el contrario si existe en el fichero de Ayuda, y en la propiedades del
> otro
> control, porque en uno sí y en el otro no, espero se me haya entendido.
>
> José R.Castro
> jrcpoli@terra.es
>
>
jrcpoli
Mensajes: 240
Registrado: Mié Oct 25, 2006 8:55 pm

lReadOnly en TDBEditBtn

Mensaje por jrcpoli »

Ignacio:
Si en el TDBEditBtn pongo la propiedad lEditable a False, no se puede
ejecutar el evento OnBtnClick, se desactiva la linea completa, en cambio si
por código pongo ::oEscudo_Com:lReadOnly := .T. el edit se convierte en no
editable pero el botón se puede ejecutar, así que sigo diciendo que el
efecto no es el mismo para lo que yo pretendo que es que en un campo de una
base de datos se pueda guardar el nombre y extensión de un fichero que
contiene la bandera de la comunidades autonomas, y por lo tanto lo que
interesa es que el nombre sea aportado mediante el disparo de un evento que
lleve a seleccionar el nombre del fichero através de un FileOpenDialog para
que no contenga errores al escribirlo y además se compruebe que existe.
José R.Castro
jrcpoli"@"terra.es
"Ignacio Ortiz" <Noname@ozs.com> escribió en el mensaje
news:4492ae82$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Jose,
>
> lEditable.
>
> No existe en la clase TDBEditBtn precisamente porque esta clase la ha
> ocultado aposta. Exactamente igual ocurre con la propiedad Value.
>
> Saludos,
>
> "José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
> news:44928d4c$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Saludos:
>>
>> En las jornadas de xailer presentación de la versión personal,
>> pregunté
>> como podía hacer para que en una TEditBtn no se pudiera escribir en él
>> pero
>> en cambio funcionara el evento OnBtnClick, me dijisteís que pusiera la
>> propiedad lReadOnly a True, vale el concepto está claro lo que ocurre es
>> que
>> si en lugar de utilizar este control utilizamos TDBEditBtn esa propiedad
>> hay
>> que inicializarla a mano porque no existe en las propiedades del IDE y
>> por
>> el contrario si existe en el fichero de Ayuda, y en la propiedades del
>> otro
>> control, porque en uno sí y en el otro no, espero se me haya entendido.
>>
>> José R.Castro
>> jrcpoli@terra.es
>>
>>
>
>
José Ramón Castro.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9449
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

lReadOnly en TDBEditBtn

Mensaje por ignacio »

José,
Todo depende de cuando pongaso lReadOnly a .T. pero normalemente no sirve
para nada por que con el proceso de bloqueo y desbloqueo se cambia su
estado. Ahora bien si lo pones después de la llamada a Edit() es posible que
te funcione como cuentas.
Realmente estás modificando el comportamiento del control Edit nativo de
Windows que soporta ese flag directamente, y logicamente eso no afecta al
botón que tiene incluido y es precisamente por eso que lReadOnly deja de ser
visible en el inspector, y podriamos haber sido más estrictos y haberlo
pasado a protected para que no se pudiera tocar como lo estás haciendo tu
pero nos parece demasiado.
Cuando se marca lEditable a falso se supone que no quieres editarlo en su
totalidad, incluido el botón. Es más razonable utilizar un label y un botón
que un EditBtn. Si dejasemos pulsar el botón cuando lEditable esta a .F.
algún usuario y con razón diría que eso está mal.
No obstante a continuación te dejo un pequeño código que puedes incluir en
cualquier PRG para que se comporte como tu quieres:
CLASS TDBEditBtn FROM XDbEditBtn
METHOD Click() INLINE ::TEditBtn:Click()
ENDCLASS
Saludos,
"José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
news:4492dca2$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Ignacio:
>
> Si en el TDBEditBtn pongo la propiedad lEditable a False, no se puede
> ejecutar el evento OnBtnClick, se desactiva la linea completa, en cambio
> si
> por código pongo ::oEscudo_Com:lReadOnly := .T. el edit se convierte en no
> editable pero el botón se puede ejecutar, así que sigo diciendo que el
> efecto no es el mismo para lo que yo pretendo que es que en un campo de
> una
> base de datos se pueda guardar el nombre y extensión de un fichero que
> contiene la bandera de la comunidades autonomas, y por lo tanto lo que
> interesa es que el nombre sea aportado mediante el disparo de un evento
> que
> lleve a seleccionar el nombre del fichero através de un FileOpenDialog
> para
> que no contenga errores al escribirlo y además se compruebe que existe.
>
> José R.Castro
> jrcpoli"@"terra.es
>
> "Ignacio Ortiz" <Noname@ozs.com> escribió en el mensaje
> news:4492ae82$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Jose,
>>
>> lEditable.
>>
>> No existe en la clase TDBEditBtn precisamente porque esta clase la ha
>> ocultado aposta. Exactamente igual ocurre con la propiedad Value.
>>
>> Saludos,
>>
>> "José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
>> news:44928d4c$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>> Saludos:
>>>
>>> En las jornadas de xailer presentación de la versión personal,
>>> pregunté
>>> como podía hacer para que en una TEditBtn no se pudiera escribir en él
>>> pero
>>> en cambio funcionara el evento OnBtnClick, me dijisteís que pusiera la
>>> propiedad lReadOnly a True, vale el concepto está claro lo que ocurre es
>>> que
>>> si en lugar de utilizar este control utilizamos TDBEditBtn esa propiedad
>>> hay
>>> que inicializarla a mano porque no existe en las propiedades del IDE y
>>> por
>>> el contrario si existe en el fichero de Ayuda, y en la propiedades del
>>> otro
>>> control, porque en uno sí y en el otro no, espero se me haya entendido.
>>>
>>> José R.Castro
>>> jrcpoli@terra.es
>>>
>>>
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
jrcpoli
Mensajes: 240
Registrado: Mié Oct 25, 2006 8:55 pm

lReadOnly en TDBEditBtn

Mensaje por jrcpoli »

Ignacio:
Efectivamente en la anterior versión del programa que estoy pasando a
Xailer existe un Edit y un Button independientes para realizar esta tarea,
pero creí que usando esta otra forma no estaba inflingiendo ninguna norma de
comportamiento, en fín sopesaremos el volver a colocar el TDBEdit y un
Buttón.
Como tú muy bien dices la aplicación de la instrucción
::oEscudo_Com:lReadOnly := .T. la hago en el formulario de Nuevo/Editar en
el Metodo FormInitialize( oSender ) por lo tanto efectivamente es despues de
la llamada al metodo New o Edit.
Gracias por la clase que me has aportado como te he dicho antes valoraré
utilizar la clase o hacer lo que anteriormente he expuesto, que es hacer un
Edit y un Buttón.
José R. Castro
jrcpoli"@"terra.es
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:4492e45e$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> José,
>
> Todo depende de cuando pongaso lReadOnly a .T. pero normalemente no sirve
> para nada por que con el proceso de bloqueo y desbloqueo se cambia su
> estado. Ahora bien si lo pones después de la llamada a Edit() es posible
> que
> te funcione como cuentas.
>
> Realmente estás modificando el comportamiento del control Edit nativo de
> Windows que soporta ese flag directamente, y logicamente eso no afecta al
> botón que tiene incluido y es precisamente por eso que lReadOnly deja de
> ser
> visible en el inspector, y podriamos haber sido más estrictos y haberlo
> pasado a protected para que no se pudiera tocar como lo estás haciendo tu
> pero nos parece demasiado.
>
> Cuando se marca lEditable a falso se supone que no quieres editarlo en su
> totalidad, incluido el botón. Es más razonable utilizar un label y un
> botón
> que un EditBtn. Si dejasemos pulsar el botón cuando lEditable esta a .F.
> algún usuario y con razón diría que eso está mal.
>
> No obstante a continuación te dejo un pequeño código que puedes incluir en
> cualquier PRG para que se comporte como tu quieres:
>
> CLASS TDBEditBtn FROM XDbEditBtn
> METHOD Click() INLINE ::TEditBtn:Click()
> ENDCLASS
>
> Saludos,
>
> "José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
> news:4492dca2$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Ignacio:
>>
>> Si en el TDBEditBtn pongo la propiedad lEditable a False, no se puede
>> ejecutar el evento OnBtnClick, se desactiva la linea completa, en cambio
>> si
>> por código pongo ::oEscudo_Com:lReadOnly := .T. el edit se convierte en
>> no
>> editable pero el botón se puede ejecutar, así que sigo diciendo que el
>> efecto no es el mismo para lo que yo pretendo que es que en un campo de
>> una
>> base de datos se pueda guardar el nombre y extensión de un fichero que
>> contiene la bandera de la comunidades autonomas, y por lo tanto lo que
>> interesa es que el nombre sea aportado mediante el disparo de un evento
>> que
>> lleve a seleccionar el nombre del fichero através de un FileOpenDialog
>> para
>> que no contenga errores al escribirlo y además se compruebe que existe.
>>
>> José R.Castro
>> jrcpoli"@"terra.es
>>
>> "Ignacio Ortiz" <Noname@ozs.com> escribió en el mensaje
>> news:4492ae82$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>> Jose,
>>>
>>> lEditable.
>>>
>>> No existe en la clase TDBEditBtn precisamente porque esta clase la ha
>>> ocultado aposta. Exactamente igual ocurre con la propiedad Value.
>>>
>>> Saludos,
>>>
>>> "José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
>>> news:44928d4c$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>>> Saludos:
>>>>
>>>> En las jornadas de xailer presentación de la versión personal,
>>>> pregunté
>>>> como podía hacer para que en una TEditBtn no se pudiera escribir en él
>>>> pero
>>>> en cambio funcionara el evento OnBtnClick, me dijisteís que pusiera la
>>>> propiedad lReadOnly a True, vale el concepto está claro lo que ocurre
>>>> es
>>>> que
>>>> si en lugar de utilizar este control utilizamos TDBEditBtn esa
>>>> propiedad
>>>> hay
>>>> que inicializarla a mano porque no existe en las propiedades del IDE y
>>>> por
>>>> el contrario si existe en el fichero de Ayuda, y en la propiedades del
>>>> otro
>>>> control, porque en uno sí y en el otro no, espero se me haya entendido.
>>>>
>>>> José R.Castro
>>>> jrcpoli@terra.es
>>>>
>>>>
>>>
>>>
>>
>>
>
>
>
José Ramón Castro.
Responder