![]() |
TWinControl en Delphi 2007
Hola a todos ! :)
Estoy intentando pasar código a Delphi 2007. Al parecer antes (al menos en Delphi 2006) la clase TWinControl tenía publicadas entre otras las propiedades Color y Font. Yo al menos lo utilizaba para cambiar el color de fondo y del texto al obtener foco en un control de edición.
Ahora ya en Delphi 2007 estas propiedades no están publicadas y no puedo acceder directamente a ellas. Ello me obliga a hacer el Cast para cada caso, sean po.ej. TLabel's, TEdit's, o cualquier otro Control. Existe alguna manera de evitar esto, es decir, no tener que preguntar cada vez por el tipo de control que quiero manejar ? Quisiera evitar esto precisamente :
Gracias por vuestra ayuda. Saludos ;) |
¡Hola Gluglú!
Tengo dudas sobre si en alguna versión de Delphi las propiedades Color y Font fueron declaradas como públicas o publicadas a nivel de la clase TWinControl. :confused: Mirando la VCL de Delphi 7, en ésta la visibilidad de dichas propiedades en TWinControl es Protected (la misma visibilidad que hereda de TControl). Es decir, tampoco en Delphi 7 TWinControl hace públicas las propiedades Color y Font. ¿Será posible que en Delphi 2006 las hayan hecho públicas y luego en 2007 las hayan regresado a su visibilidad tradicional? Me cuesta trabajo creer que algo así ocurriera. Un favor: preséntanos la declaración completa de las clases TControl y TWinControl que tienes en la unidad Controls.pas de tu Delphi 2006 para salir de dudas. Gracias. Al González. :) P.D. Tampoco veo alguna diferencia relevante en Delphi 2007. Me deja pensando que tal vez en Delphi 2006 utilizabas el truco de "molde de acceso", pero empleando una nueva clase de mismo nombre que TWinControl... |
Pues al parecer tienes toda la razón, amigo Al ! ;)
Por lo que he estado investigando es cierto que nunca han estado publicadas las propiedades Color y Font del TWinControl. Al menos en Win32. Yo utilizaba D2006 en su versión VCL.Net y ahí sí que me permitía utilizarlo de la manera que he espuesto. Al parecer en VCL.Net si es posible y en Win32 no. :( Saludos |
Cita:
|
1 Archivos Adjunto(s)
Pues aqui te adjunto Borland.Vcl.Controls.pas que entiendo es lo que andamos buscando.
Sinceramente, si me pongo a mirar la unidad, yo tampoco veo donde se publica la porpiedad 'Colors'. El hecho claro es que en mi programa en VCL.Net (D2006) lo he utilizado infinitas veces tal y como he descrito. Espero me puedas indicar si encuentras algo más concreto, ya por llegar hasta el 'fondo' del asunto. Saludos |
Cita:
Esto devela el misterio. Ahora, mirando en mi Delphi 2007, encuentro curiosas diferencias: 1. La unidad en la carpeta "...\source\dotNet\vcl" se llama nuevamente Controls.pas, como en Delphi 7. Mi pregunta aquí es ¿por qué se regresó al nombre original? 2. La visibilidad de ambas propiedades está condicionada a la existencia de un símbolo de compilación llamado "CLR", que me parece es algo relacionado a .NET. Supongo que en D2007 es la misma unidad .pas para Win32 y .NET, y el símbolo CLR significa que está compilando para .NET. Y es que sólo cuando es CLR (.NET) declara las propiedades en cuestión como públicas. Con esto se hace compatible hacia atrás tanto en Win32 como en .NET. Pero lo que no me gustó nadita fue que cuando abrí la ayuda de Delphi 2007 para buscar qué es "CLR" (sin encontrar ahí el significado), me apareció un icono en la barra de tareas diciendo algo como "Visual Studio better". Y ahora dicho icono tiene un desagradable comentario emergente que dice "Visual Studio Customer Experience Improvement Program". Lo que no me explico es cómo rayos llegó ese molesto accesorio a mi computadora...:confused:...y quién fue el desgraciado que lo programó para lanzarse cuando se abriera la ayuda de Delphi....:confused: ¡Caramba! Es que es como si abriéramos Firefox (aunque yo uso más IE) y de pronto apareciera un mensaje diciendo "¡Hey! Internet Explorer es mejor, mira, ven a conocerlo". :eek: :eek: :eek: ¿A alguien más le ha aparecido ese programa espía en pantalla? :confused: ¿Saben de dónde proviene esa cosa llamada "Visual Studio Customer Experience Improvement Program"? Quiero pensar que CodeGear no tuvo nada que ver, pero si así fuera significaría que Microsoft está recurriendo a algo de lo más bajo y vil para alejar a la gente de RAD Studio. :mad: Saludos desencajados. Al González. |
:eek: A mi no me sale nada de eso en mi ayuda de RAD 2007 !
Lo cual me sorprende más todavía. Buscando por 'CLR', me salen varias entradas, ninguna de ellas relacionada en manera alguna con lo que describes, y cito aquí la que yo creo que más se acerca : Cita:
|
Cita:
http://qc.codegear.com/wc/qcmain.aspx?d=43088 http://memyselfanddelphi.blogspot.co...1_archive.html Que mal se ve Microsoft con jugarretas como esas. El mensaje se interpreta como "tenemos miedo de que uses el .NET que pudimos crear gracias a exingenieros de Borland, con entornos de desarrollo mejores que el nuestro". ¿A qué personaje de Redmond se le habrá ocurrido hacer que .NET mostrara ese mensaje en pantalla, aún sin tener Visual Studio instalado? ¿A caso pensaron que nadie se molestaría, que nadie interpretaría con un mínimo de inteligencia la sucia maniobra? ¿Y ese es el Visual Studio que dices que va muy bien, Ramiro? ¡Joder! Yo prefiero la dignidad, la calidad y el honor que siguen caracterizando a nuestro Delphi. En la sombra de este mal trago hay un poco de alegría, porque el abusivo monopolio tropieza con la misma bota que usa para intentar aplastar lo bien hecho. Un abrazo despertando conciencia y "haciendo mejor" al mundo entero. Al González. |
La franja horaria es GMT +2. Ahora son las 04:58:00. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi