Ver Mensaje Individual
  #15  
Antiguo 06-08-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tú te mantienes en tu posición y yo me mantengo en la mía. Y hoy por hoy, no puedes hacer lo que dices desde Delphi. ¿Es un error? ¿Es un problema de Delphi? Tal vez. Sin embargo, yo prefiero que nadie toque mi código, que nadie toque el código sobre el que estoy al cargo, ni siquiera Delphi, puesto que puede hacer cambios que yo no espere y al cabo las cosas vayan peor incluso que sin su ayuda.

Te pondré un ejemplo. Delphi también detecta que un manejador del evento "OnClick" de cualquier componente ya ha dejado de existir, no sé si me explico. Sin embargo, si tú tienes codificado lo que sea en dicho manejador... aunque Delphi detecte que dicho manejador ya no se declara, y por tanto no se usa, ¿debe Delphi eliminar el código que has escrito tú?

La respuesta es que no. No debe hacerlo. Y de hecho no lo hace. El "nombre" de las unidades es un ejemplo más. En definitiva, Delphi no puede ni debe tocar el código que no le pertenece, porque los riesgos son altos. ¿O va Delphi a reescribir el código que yo escribí previamente y que echó a perder? No. Por lo tanto, que tenga cuidado con eso de tocar el código de uno.

Es mi opinión. Tú no compartes mi punto de vista, y yo no comparto el tuyo. Pero, lo cierto es que a día de hoy no puedes "automatizar" lo que dices, y es por eso que he dicho más de una vez "ponte manos a la obra"... acaso tardes menos en tratar de automatizar la tarea que en llevarla a cabo tú mismo. Sé que esto no es extrapolable a otros asuntos, pero, en el caso que nos ocupa puede ser la única solución.

Ahora bien, tómala o déjala. Tú decides. Delphi podrá, como mencionó el compañero JXJ añadir alguna propiedad a los formularios, podrá hacer cosas así, pero, no podrá quitar propiedades (aunque estén obsoletas, no podrá porque yo puedo estar usando dichas propiedades y él no sabe para qué), ni tampoco podrá renombrar determinadas unidades... simplemente no debe hacerlo y no lo hace.

Sin ir más lejos el otro día topé con un componente bastante interesante y que me interesaba particularmente. Dicho componente hacía uso de dos unidades que me llamaban la atención: "Wintyes" y "WinProc" (o algo así). Trabajo con Delphi 2007, o sea que este "actualizó" lo que pudo en dicho componente, pero, dejó dichas unidades tal cual.

Me pregunté qué demonios hacían ahí esas unidades... qué significaban... y bien, se trata de unidades antiguas y obsoletas que ya se sustituyeron por una sola unidad: Windows. ¿Quitó Delphi las unidades? No. ¿Las renombró? Tampoco. Lo que puede hacer Delphi y de hecho hace es que te permite seguir usando dichas unidades, no sé si internamente se incluye la unidad Windows o qué, pero, no quita del medio dichas unidades... que, aunque ya obsoletas, permiten al componente funcionar.

¿Podría hacer esto Delphi, como hize yo, que sustituí ambas unidades obsoletas por una sola unidad, Windows? No; Delphi no puede meterse en ese problema porque yo puedo estar usando algo de dichas unidades que no esté en la unidad Windows, por ejemplo. Y "WinTyes" y "WinProc" son unidades del propio Delphi (algo como "DesignInf"), pero Delphi no las tocó, y mejor que no lo hiciera.

Yo vi las unidades, comprendí que estaban obsoletas, las quité del medio y añadí la unidad Windows. Fui yo quien tuvo que hacerlo, porque Delphi no es lo suficientemente inteligente como para dilucidar si hago uso de dichas unidades hasta el punto de no poder ser sustituidas por otras, y un largo etcétera, supongo.

¿Que Delphi debería hacer cosas así? Yo no estoy seguro. Y, en todo caso, la realidad es que no lo hace. Tal vez, como yo supongo, existen motivos de peso para que esto sea así. De hecho las cosas son como son, y, aunque los desarrolladores de Delphi son humanos, lo cierto es que son muy buenos, y cuando a veces se te pasa por la cabeza "¡es un bug de Delphi, es un bug de Delphi!", generalmente (no siempre), es que algo está mal en tu código.

Quiero decir que a uno le puede parecer que Delphi debería hacer esto mejor que esto otro, y puede que lleve razón, pero, probablemente es un asunto que ya han tratado en Borland / CodeGear (siempre puedes contactar con sus desarrolladores a ver qué te dicen), y han visto de hacer las cosas de un determinado modo porque han estimado que es la mejor manera de hacer las cosas, hasta cierto punto y desde varios puntos de vista, supongo.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 06-08-2007 a las 11:08:09.
Responder Con Cita