Harpo   02-07-2023, 13:54
#1
Saludos al foro,

Buscando en el código del IDE cómo implementa una funcionalidad me encontré una clase con el mismo nombre que un control: TabPanel. Dentro no había un "inherits", solo una serie de funciones que luego se usan en el TabPanel interno del Workspace. No conocía esa manera de añadir funcionalidad a un control y me ha picado la curiosidad.

He creado un nuevo proyecto, he añadido una clase TextBox, dentro he creado una función "Digits" que devuelve la cantidad de números en el texto del control y todos los TextBox del proyecto tienen un nuevo método Digits. Y funciona.

[Imagen: dzwcK3V.png]

[Imagen: 4XJSjkC.png]

Supongo que ya conocen esta posibilidad, para mi ha sido todo un descubrimiento.
Un saludo, Harpo.
Shordi   02-07-2023, 19:15
#2
Pues no lo conocía. Gracias por el apunte.

Saludos

No podemos regresar
Shell   03-07-2023, 13:41
#3
Parece que hay solo dos clases en el código fuente que usan esta forma.

TabPanel y TextEditor, ambas no heredan. Se encuentran en el directorio
Exported de las fuentes de Gambas. 

El resto de las clases en ese directorio heredan de UserControl.

Siempre lo había visto en vuestros proyectos ( los que os animáis a crear controles) con herencia.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Harpo   04-07-2023, 10:15
#4
Solo me había fijado en TabPanel, buscaba cómo implementa el IDE el botón para mostrar las carpetas de un proyecto dentro del Workspace.
Soy de los que usan muchos controles personalizados, como Shordi intento cambiar la estética de mis programas, y en todos he usado herencia o los he recodificado partiendo de los fuentes. Por eso me sorprendió esta manera de extender un control, puede dar mucho juego con menos complicaciones.

Un saludo, Harpo.
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.