miércoles, 4 de febrero de 2009

capturar evento de una clase

Cuando se necesite "unir" un evento de una clase a un metodo que lo reciba se debe hacer esto:
AddHandler claseExterna.GenerarError, AddressOf metodoGenerarErrorLocal

El metodo que reciba el evento debe tener los parametros necesarios para recibir los datos que envia el evento con los tipos de datos correctos

martes, 3 de febrero de 2009

Name 'ProfileCommon' is not declared

Este error se presenta cuando la seccion del web.config no esta declarada.
Un ejemplo de declaracion dentro del web.config es (dentro de la seccion system.web):
<profile>
<properties>
<add name="Nombre">
<add name="Apellido">
</properties>
</profile>

ConfigurationManager no esta declarado

  • Primero ir a Add Reference del proyecto y agregar una referencia de .Net a System.configuration
  • Luego agregar una referencia en la clase en la que se necesita a:

imports System.Configuration

miércoles, 28 de enero de 2009

Insertar imagen en celda de excel con vb.net

Sub insertarImagenCelda(ByVal objExcelWks As Excel.Worksheet, ByVal rutaImagen As String, ByVal coordenadas As Pair)
Dim imagen = objExcelWks.Pictures.Insert(rutaImagen)
Dim cell = objExcelWks.Cells(coordenadas.First, coordenadas.Second)
'Centro en ancho
Dim ancho As Double = cell.Offset(0, 1).Left - cell.Left
imagen.Left = cell.Left + ancho / 2 - imagen.Width / 2
If imagen.Left < 1 Then imagen.Left = 1
'Centro en alto
Dim alto As Double = cell.Offset(1, 0).Top - cell.Top
imagen.Top = cell.Top + alto / 2 - imagen.Height / 2
If imagen.Top < 1 Then imagen.Top = 1

liberarObjeto(imagen)
liberarObjeto(cell)
End Sub

Liberar memoria objeto COM vb.net

Al final de la liberacion de todos los objetos COM usar GC.Collect()
Private Sub liberarObjeto(ByVal objeto As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(objeto)
objeto = Nothing
Catch ex As Exception
objeto = Nothing
End Try
End Sub

Como liberar la memoria acumulada por el vb.net

Simplemente agregar al final una llamada al garbage collector para que actue:
GC.Collect()

manejar o capturar eventos a una funcion en vb.net

Si una clase exporta un evento "ejecutar" y queremos asignarselo a una funcion, debemos hacer lo siguiente:


AddHandler Clase1.ejecutar, addressof Actualizar

sub Actualizar()
' Poner alguna accion que se quiera ejecutar
end sub