|
Ahora si es posible contestarte "efectivamente".
Al poner esa línea de código en cada ventana, el Hint se mostrará en la última ventana que se abra, hasta ahí correcto. Si cerramos esa ventana, ¿el hint donde se mostrará?.... pues mientras no se cree otra ventana nueva, el hint se intentará mostrar en esa última ventana que ya ha sido cerrada, es decir, liberada de memoria RAM... o lo que es lo mismo, está intentando acceder a una zona de memoria donde ya no reside la ventana; supongo que ahora entiendes el "access violation".
Si puedes, me gustaría que comentases qué tipo de interfaz usas, es decir, si es SDI ó MDI.
Si es SDI, abres una ventana y después otra y después otra.. controlar el hint en este escenario puede ser "incómodo para ti".
Si es MDI, la solución es muy fácil. El Hint se muestra en un statusbar de la ventana MDI; como esta ventana siempre está creada y mostrándose, se verá siempre el hint sin problemas. En este escenario la asignación Application.Onhint := hint sólo es necesario hacerlo en el OnCreate del formulario MDI.
Ten en cuenta que estas asignando una propiedad del objeto Application, así que, una sola asignación es válida para todas las ventanas que tengas en tu programa.
Cuando Delphi crea las ventanas, todas las ventanas están creadas y disponibles durante toda la ejecución de la aplicación, por tanto, siempre está disponible el procedimiento "Mihint" de cada ventana, por eso no da error.
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
|