Casting a Objeto

06/05/2004 - 01:47 por Francisco Rojas Kramer mailto:frojask | Informe spam
Tengo un problema tratando de tomar una referencia
withevents a un objeto q pertenece a un arreglo de objetos
(dicho en otras palabras, tiene un "Index"), aqui el breve
codigo, teniendose un Form1 con 3 optionbuttons, Option1
(0), Option1(1) y Option2

Dim WithEvents MiOption As VB.OptionButton

Private Sub Command1_Click()
Dim lobj1 As Object
For Each lobj1 In Form1.Controls
'cambiar a Option1 y no va a permitirlo. Error 459
If lobj1.Name = "Option2" Then
Set MiOption = lobj1
End If
Next
End Sub

Private Sub MiOption_Click()
MsgBox "evento ampliado"
End Sub


Al parecer cuando el objeto es parte de un arreglo de
controles, la referencia directa al objeto devuelve el
valor de su propiedad por default... (aunq una referencia
a una propiedad, por ej. NAME, de dicho objeto es aceptada
y correctamente devuelta, por lo cual es correcto pensar
que el resultado de "Item(x)" es verdaderamente el objeto
deseado, cosa q IsObject comprueba)

mi problema es q no encuentro una manera de hacer
referencia al objeto y recibir un objeto q pueda ser
asignado a una variable usando SET, entonces...

EXISTE UNA FORMA DE FORZAR EL TIPO HACIA OBJECT O
VB.OPTIONBUTTON (TYPE CASTING) ????
 

Leer las respuestas

#1 Anonimo
06/05/2004 - 19:22 | Informe spam
en el evento coloca el argumento Index que te falta


private sub Miobjeto_click(index as integer)

end sub

si no te funciona declara el withevents con WithEventsArgs
que te devuelve una matriz de arguemntos y valores en el
evento.

Preguntas similares