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.

Distintas opciones para modificar una clase.

Foro de Xailer profesional en español
Responder
new_indika
Mensajes: 32
Registrado: Jue Oct 16, 2008 12:59 pm

Distintas opciones para modificar una clase.

Mensaje por new_indika »

Cuando queramos hacer uno de una clase modificada, sobre todo a la hora
de sobrecargar una ya existente, ¿que opciones tenemos?
¿Es suficiente con irse a la clase en el directorio XailerSource y
modificarla o tenemos que agregar la clase modificada al proyecto?
¿Podemos hacerlo sobre la misma clase T sobrecargandola?
En el caso de que se añada el fichero prg de la clase original
modificada al proyecto y al compilarse no se produzca cambio alguno..
¿porque puede ser debido?
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9440
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Distintas opciones para modificar una clase.

Mensaje por ignacio »

Ángel,
1) Sobrecargar la clase T
2) Modificar la clase e incluirla como un OBJ más en su proyecto.
3) Modificar la clase y sustituirla en la propia libreria Xailer.lib.
Requiere conocimientos de uso de la herramienta TLIB.EXE de Borland
En cuanto al error que comenta, no tiene mucho sentido. Siempre un OBJ tiene
precendencia sobre el mismo módulo dentro de una librería. Compruebe que
realmente está enlazando el OBJ correcto, y por último utilice el Depurador
para comprobar que realmente se está ejecutando su clase modificada.
Un saludo,
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"Ángel Fernández" <new_indika@hotmail.com> escribió en el mensaje
news:4937d429$[email=2@svctag-j7w3v3j....]2@svctag-j7w3v3j....[/email]
> Cuando queramos hacer uno de una clase modificada, sobre todo a la hora de
> sobrecargar una ya existente, ¿que opciones tenemos?
>
> ¿Es suficiente con irse a la clase en el directorio XailerSource y
> modificarla o tenemos que agregar la clase modificada al proyecto?
> ¿Podemos hacerlo sobre la misma clase T sobrecargandola?
>
> En el caso de que se añada el fichero prg de la clase original modificada
> al proyecto y al compilarse no se produzca cambio alguno.. ¿porque puede
> ser debido?
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
new_indika
Mensajes: 32
Registrado: Jue Oct 16, 2008 12:59 pm

Distintas opciones para modificar una clase.

Mensaje por new_indika »

Ignacio Ortiz de Zúñiga escribió:
> íngel,
>
> 1) Sobrecargar la clase T
>
> 2) Modificar la clase e incluirla como un OBJ más en su proyecto.
>
> 3) Modificar la clase y sustituirla en la propia libreria Xailer.lib.
> Requiere conocimientos de uso de la herramienta TLIB.EXE de Borland
>
> En cuanto al error que comenta, no tiene mucho sentido. Siempre un OBJ tiene
> precendencia sobre el mismo módulo dentro de una librerí­a. Compruebe que
> realmente está enlazando el OBJ correcto, y por último utilice el Depurador
> para comprobar que realmente se está ejecutando su clase modificada.
>
> Un saludo
Precisamente por eso me extraño el error. De hecho, modifiqué la clase y
la primera vez hizo los cambios correctamente. Pude ver los cambios e
incluso con el debugger fui viendo lí­nea a lí­nea lo que iba ocurriendo.
Pero después, la eliminé para añadir la corrección que José posteo y fue
a partir de entonces cuando ya no hay manera de sustituir la clase
TDBCombobox. Ni añadiendo librerí­a, ni añadiendo el PRG ni añadiendo
cambios en la clase T, es algo realmente muy extraño.
Incluso usé la opción de limpiar el proyecto, reconstruirlo una vez
hecho lo anterior, y sigue haciendo lo mismo. Probé incluso a añadir
MsgInfo dispersos por el código para comprobar que se estaba compilando
la clase ejecutada y mas de lo mismo. No se enlaza. Ya por curiosidad,
creé un proyecto nuevo y añadí­ la clase modificada y los cambios se
hicieron correctamente. ¿?
¿Que puede estar ocurriendo, alguna idea? ¿Hay algo que pueda hacer para
solucionar esto?
Gracias y un saludo.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9440
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Distintas opciones para modificar una clase.

Mensaje por ignacio »

Ángel,
En muy pocas ocasiones, pero ocurre, el enlazador de Borland falla cuando
existen dos módulos con el mismo nombre, en un OBJ y en una LIB. Simpre
debería tener preferencia el OBJ pero a veces se equivoca.
La solución más definitiva es sustituir el OBJ en la libreria:
TLIB XAILER.LIB -+MODULO.OBJ
Un saludo
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"Ángel Fernández" <new_indika@hotmail.com> escribió en el mensaje
news:4938f0d9$[email=2@svctag-j7w3v3j....]2@svctag-j7w3v3j....[/email]
> Ignacio Ortiz de Zúñiga escribió:
>> Ángel,
>>
>> 1) Sobrecargar la clase T
>>
>> 2) Modificar la clase e incluirla como un OBJ más en su proyecto.
>>
>> 3) Modificar la clase y sustituirla en la propia libreria Xailer.lib.
>> Requiere conocimientos de uso de la herramienta TLIB.EXE de Borland
>>
>> En cuanto al error que comenta, no tiene mucho sentido. Siempre un OBJ
>> tiene precendencia sobre el mismo módulo dentro de una librería.
>> Compruebe que realmente está enlazando el OBJ correcto, y por último
>> utilice el Depurador para comprobar que realmente se está ejecutando su
>> clase modificada.
>>
>> Un saludo
>
> Precisamente por eso me extraño el error. De hecho, modifiqué la clase y
> la primera vez hizo los cambios correctamente. Pude ver los cambios e
> incluso con el debugger fui viendo línea a línea lo que iba ocurriendo.
>
> Pero después, la eliminé para añadir la corrección que José posteo y fue a
> partir de entonces cuando ya no hay manera de sustituir la clase
> TDBCombobox. Ni añadiendo librería, ni añadiendo el PRG ni añadiendo
> cambios en la clase T, es algo realmente muy extraño.
>
> Incluso usé la opción de limpiar el proyecto, reconstruirlo una vez hecho
> lo anterior, y sigue haciendo lo mismo. Probé incluso a añadir MsgInfo
> dispersos por el código para comprobar que se estaba compilando la clase
> ejecutada y mas de lo mismo. No se enlaza. Ya por curiosidad, creé un
> proyecto nuevo y añadí la clase modificada y los cambios se hicieron
> correctamente. ¿?
>
> ¿Que puede estar ocurriendo, alguna idea? ¿Hay algo que pueda hacer para
> solucionar esto?
>
> Gracias y un saludo.
>
>
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
new_indika
Mensajes: 32
Registrado: Jue Oct 16, 2008 12:59 pm

Distintas opciones para modificar una clase.

Mensaje por new_indika »

Ignacio Ortiz de Zúñiga escribió:
> íngel,
>
> En muy pocas ocasiones, pero ocurre, el enlazador de Borland falla cuando
> existen dos módulos con el mismo nombre, en un OBJ y en una LIB. Simpre
> deberí­a tener preferencia el OBJ pero a veces se equivoca.
>
> La solución más definitiva es sustituir el OBJ en la libreria:
>
> TLIB XAILER.LIB -+MODULO.OBJ
>
> Un saludo
Se solucióno todo. Solo hubo que eliminar la clase DBComboBox con TLIB
antes de ejecutar el comando que posteaste. Gracias!
Responder