Página 1 de 1

Mismo evento.

Publicado: Sab Mar 26, 2016 5:38 pm
por jvtecheto
Buenas tardes:

Como sabeis no se puede asignar el evento de un botón a una opción de menú y tenemos que hacerlo de manera manual.

METHOD Menu1Item1_1Click( oSender, oMenu ) CLASS TForm1
::Button1Click()
RETURN Nil

Esto ocurre porque descienden de ancestros diferentes... TMenu de TWinObject y TButton de TStdControl, ¿No creeis que seria mejor que ambos descendieran de TStdControl?

¿Me podrias explicar porque TMenu desciende de TWinObject?

Gracias.

Jose Vte.

Re: Mismo evento.

Publicado: Sab Mar 26, 2016 7:58 pm
por jfgimenez
José Vicente,

de forma muy sencilla y simple, estas son las características de las clases "base" de Xailer, desde donde parten todas las demás (cada una deriva de la anterior):

- HBObject: es la clase base de todas las clases de Harbour
- TComponent: cualquier objeto que soporte el sistema de eventos de Xailer
- TWinObject: cualquier TComponent que, además, es un objeto de windows, y por lo tanto tiene "Handle"
- TControl: cualquier control
- TStdControl: controles que soportan el "foco de teclado"
- TWinControl: controles que son contenedores de otros controles
- TScrollingWinControl: controles contenedores que tienen barras de scroll
- TForm: formularios

TMenu deriva de TWinObject porque no es ningún control. Es solamente un componente de windows, con su handle. En cambio, TButton deriva de TStdControl porque sí que es un control y además recibe el foco de teclado.

Re: Mismo evento.

Publicado: Dom Mar 27, 2016 10:21 am
por jvtecheto
Buenos dias :

Muchas gracias Jose, aclarado por completo.

Feliz Domingo de Pascua a todos.

Saludos.

Jose Vte.