Título: Funcion Friend? Como Funciona? Publicado por: ranslsad en 8 Diciembre 2007, 16:49 pm Hola amigos, mirando un codigo vi como un estilo de funcion que ponia "Friend Function blabla()
Bueno, probando cosas con esta funcion, vi que en su propio proyecto esa funcion se repetia como un timer interval 1... Pero cuando yo pongo esa misma funcion en otro proyecto no se repite :S Hay que llamarla y solo se repite una vez.. Me gustaria saber porque es eso y com funciona esa funcion.. Desde ya, Gracias! Salu2 Ranslsad Título: Re: Funcion Friend? Como Funciona? Publicado por: FaiF (A¥åHøRå) en 8 Diciembre 2007, 16:52 pm FUENTE: http://www.elguille.info/vb/vb6/tiposDefinidos.htm
Citar Un procedimiento declarado como Friend es "casi" público, pero sólo dentro del propio proyecto, ya que si realmente fuesen públicos podrían ser accesible desde otro proyecto, cosa que no ocurre con los procedimientos "amigos"... Osea que se usan de igual forma que los ejemplos mostrados para usar en un módulo BAS, salvo que en lugar de declararse como Public se declaran como Friend, además en un módulo de clase NO se puede declarar un Tipo Definido de forma pública, siempre tienen que ser Privados. Por tanto las funciones quedarían así: Friend Function Edad2(elColega As tColega) As Long 'Devuelve la edad del colega que se ha pasado como parámetro 'y actualiza la fecha de modificación. Dim tEdad As Long tEdad = Year(Now) - elColega.AñoNac elColega.Modificado = Now Edad2 = tEdad End Function Friend Function NuevoColega2( _ ByVal sNombre As String, ByVal lngAñoNac As Long, _ ByVal sEmail As String, ByVal sUrl As String) As tColega 'Devuelve un elemento del tipo tColega, 'que es el declarado en el módulo BAS. 'Se usan los datos pasados como parámetro 'Usamos una variable temporal para asignar los datos Dim tmpColega As tColega With tmpColega .Nombre = sNombre .AñoNac = lngAñoNac .email = sEmail .Url = sUrl .Modificado = Now End With 'Devolver el dato NuevoColega2 = tmpColega End Function Para usarlo desde un formulario habría que hacerlo así: ' 'Declaración de la clase de prueba Private m_colega As ctestUDT 'En el Form_Load: 'Creamos el objeto... Set m_colega = New ctestUDT 'Crear un par de colegas para tenerlos en el listBox 'Es conveniente que antes de hacer el Redim Preserve 'el array esté ya dimensionado... 'ya que he leido en algún sitio que puede dar ERROR numColegas = numColegas + 1 ReDim Preserve variosColegas(0 To numColegas) 'Usando el método de la clase: variosColegas(numColegas) = _ m_colega.NuevoColega2( _ "Guille", 1957, "mensaje@elguille.info", _ "http://www.elguille.info/") 'Usamos el método de la clase Label1(5) = " Edad:" & m_colega.Edad2(variosColegas(queColega)) & " tacos" 'Mostrar el colega número "i" With variosColegas(i) List1.AddItem .Nombre & vbTab & .AñoNac & vbTab & _ .email & vbTab & _ Left$(.Url & Space$(64), 64) & vbTab & _ Format$(.Modificado, "dd/mmm/yyyy hh:mm:ss") End With Título: Re: Funcion Friend? Como Funciona? Publicado por: SKL (orignal) en 10 Diciembre 2007, 09:28 am son funciones que solo funcionan dentro de un modulo o una clase
Título: Re: Funcion Friend? Como Funciona? Publicado por: ranslsad en 10 Diciembre 2007, 15:46 pm ok grax por la info ;)
PD: ya estan los iconhos navideños :o :D :rolleyes: Salu2 :P Ranslsad ;) |