Delphi - Subclassear multiples ventanas

 
Vista:

Subclassear multiples ventanas

Publicado por Jnrz (8 intervenciones) el 11/02/2003 22:08:28
estoy tratando de subclassear multiples ventanas.
estas ventanas son creadas dinanicamente, lo que significa que en cualquier momento se crearan y destruiran estas ventanas.
para subclassear una ventana tengo pasarle una funcion callback pormedio de API para que windows lo llame.
pero que sucede con multiples ventanas creadas dinamicamente ?
cuantas funciones callback necesito si no se la cantidad de ventanas que se crearan
tambien necesito guardar los viejos punteros d elas ventanas para asignarselos cuando termine mi programa, estonces como sabes que puntero pertenece a cual clase
alguien sabe sobre esto
muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Subclassear multiples ventanas

Publicado por mamcx (533 intervenciones) el 12/02/2003 00:53:37
En primer lugar, porque usas la API de Windows??? Te refieres a tener una formulario clase del cual se derivan otros formularios y de ahi se ejecutan?

Si creas N ventanas de la misma clase, no seria mejoar asignar el mismo callback o evento (aunque no se si es que no se puede con API)

Una manera de administrar el asunto es usar una colleccion (Como TObjectList)...Asi es como Delphi lo hace con las colecciones Screens y Forms...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Subclassear multiples ventanas

Publicado por Jnrz (8 intervenciones) el 12/02/2003 05:09:24
Subclassing.- asi se le llama en ingles, en espanol no se, yo lo llamo subclassear (SPANGLISH), es cuando cambias la funcion que procesa todo los mensajes que le envia windows por una tuya.
SetWindowLong con la constante GWL_WNDPROC hace eso.
Uso esa API porque las ventanas que quiero subclassear no pertenecen a mi programa.
entonces tengo problemas al subclassear multiples ventanas ya que cuando tu programa termina tienes que asignarle su viejo puntero que apunta a la funcion que procesaba los mensajes de windows anteriormente, por que si no la ventana hara crash.
me diste una idea de usar una lista, creo que eso servira, poner esa lista (TLIST) e ir guardando los viejos punteros con alguna forma de ID para saber que puntero pertenece a que ventana.
lo tratare.
si conocen algun ejemplo o pagina sobre esto no duden en darmelo porfavor, gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar