Carla Rincon
Por supuesto que funcionan de forma similar a los que llamas
"predeterminados". De hecho, los componentes tales como el Form o el Button
que disparan dichos eventos, son en realidad clases programadas con C# y que
por dentro tienen el evento definido como "event". Puedes hacer exactamente
lo mismo en tus clases, a estos efectos no difieren nada de las que vienen
ya compiladas dentro de las DLLs de .Net.
Muchas gracias
Carla Rincon
"Alberto Poblacion" <earthling-quitae...@poblacion.org>
escribió en el mensaje news:OD7C%2308FI...@TK2MSFTNGP06.phx.gbl...
--
Nos vemos
Guillermo
---
Microsoft MVP Visual Basic desde 1997
Tus consultas en los foros del Guille: http://foros.elguille.info/
"Carla Rincon" <_> wrote in message
news:ufR%23Cx8FI...@TK2MSFTNGP03.phx.gbl...
Muchas gracias Guillermo.
Carla Rincon
"Guillermo 'guille'" <men...@en.elguille.info> escribió en el mensaje
news:DDC119D5-0937-4C77...@microsoft.com...
Jose TH
"Alberto Poblacion" <earthling-quitae...@poblacion.org> wrote
in message news:OD7C%2308FI...@TK2MSFTNGP06.phx.gbl...
No, no es cierto. El programador de Microsoft que programó la clase
Button y dentro del Button creó el evento Click, tuvo que llamarlo o
'generarlo', como tú dices, desde su código en C#, exactamente de la misma
forma que tendrías que hacer tú en una clase tuya en la que declarases un
evento. Y tu clase una vez compilada, vista desde fuera, presentará a
quienes la usen un evento exactamente igual de automático que los que llamas
"predeterminados". No hay diferencia ninguna.
Solo para apoyar lo que dice Alberto: no hay NINGUNA diferencia entre esas
dos "clases" de eventos.
Si la hubiera, el sistema no sería "honesto": habría cosas que él hace y que
tú como programador no podrías lograr.
Desconfía de un sistema así cuando lo veas.
Saludos - Octavio
"principiante" <jose...@gmail.es> wrote in message
news:%2364HV6m...@TK2MSFTNGP03.phx.gbl...
La diferencia estriba en que los eventos que ya vienen creados los crea el
.NET en sus tripas a partir del bucle de mensajes de la ventana, y los
nuestros pues no porque en principio no tenemos acceso en .NET a dicho
bucle (que sí tenemos en parte).
El amigo Nishant Sivakumar en su "C++/CLI in action" explica cómo es el
formato de esos eventos y cómo crear nuestros propios eventos "a la .NET",
aunque no profundiza mucho.
--
Microsoft Visual C++ MVP
========================
Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
========================================
Dios existe; pero no tiene ninguna prisa de hacerlo saber.
-- Leon Tolstoi. (1828-1910) Escritor ruso.
Ok pero me intriga, no sería eso a un muy bajo nivel ? O puedo ver donde
justamente se genera el evento click? No es transparente para mi? Tengo
algun control sobre el ?
Jose TH
Jose TH
"RFOG [MVP C++]" <zephryn...@quitame.gmail.com> escribió en el mensaje
news:op.t0z8l6x7pza9bi@red-mars...
Es decir, los eventos que dispara y consume el net son eventos normales y
corrientes, pero están basados en una jerarquía de clases bastante liosa;
es decir, no son una instancia de un método declarado como "event", sino
que pertencen a una estructura de clases, etc, etc. Pero a la hora de
lanzarlo se hace de la misma forma.
Esperate a esta tarde o mañana y pongo una entrada en mi blog sobre el
tema (sacándolo del libro que he comentado).
Respecto a lo que comentas en tu respuesta a Alberto, el proceso es más o
menos este (ojo que lo digo de memoria):
cada ventana tiene un método que se llama "bucle de mensajes", que es un
callback que se instala al declarar una nueva ventana y que windows llama
cada vez que se prodiza un mensaje (click, doble click, arrastrar, pulsar
una tecla, pintado...). En esa función hay un case gigantesco (si se hace
bien es un array de punteros a funciones) que va cogiendo y procesando
cada mensaje. Por ejemplo:
case WM_CLICK:
//código
break;
case WM_DBLCLICK:
...
Ese código mira qué ventana ha generado el evento a través de su handle,
busca la clase que se corresponde a esa ventana, y dispara el evento
correspondiente... si está definido o asignado. En .NET ese evento es un
evento normal y corriente, pero se definen una serie de reglas por diseño
y porque en cierto modo simplifican y ponen orden en el sistema de paso de
mensajes de Windows, que es bastante caótico.
Y hay componentes .NET que no tienen bucle de mensajes de windows (no sé
cómo lo harán, porque en W. todo es una ventana que puede tener su bucle
de mensajes), pero el principio es el mismo: cuando se reciba un click se
lanza tal evento.
Muchas gracias por la detallada explicación, estare pendiente para
revisarlo con mas calma en tu blog.
Jose TH
"RFOG [MVP C++]" <zephryn...@quitame.gmail.com> escribió en el mensaje
news:op.t010jabgpza9bi@red-mars...
Como estoy teniendo serios problemas para que el código salga de forma
mínimamente aceptable en el blog, dentro de la entrada se puede bajar un
PDF que contiene lo que debería haber sido la entrada en sí.
Saludos
Jose TH
"RFOG [MVP C++]" <zephryn...@quitame.gmail.com> escribió en el mensaje
news:op.t02lwzgepza9bi@red-mars...