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

viernes, 23 de enero de 2009

Obtener nombre pagina actual

Del objeto request se obtiene todo el path a la pagina, y con el objeto Fileinfo obtenemos solo el nombre corto de la pagina.

string pagina = (New System.IO.FileInfo(Page.Request.Url.AbsolutePath)).Name

miércoles, 7 de enero de 2009

Implementar, declarar y lanzar eventos en vb.net

En una clase que se quiere "publicar" un evento, debemos crearlo primero y ejecutarlo despues:

1) Declararlo

Public Event evento as EventHandler
o
Public Event evento(objeto as Control, Cancelar as Boolean)

2) Lanzarlo
dim cancelar as boolean
RaiseEvent evento(me, cancelar)

Como crear una clase que se valide con un validator

Agregar el atributo siguiente a la clase:

_
Public Class Test
'...


Public Property Valor() As Integer
Get
Return _Valor
End Get
Set(ByVal value As Integer)
_Valor= value
End Set
End Property

End Class

Como aplicar un TargetControl a una clase

_
Public Class Test
'...
End Class

viernes, 2 de enero de 2009

Obtener directorio donde se ejecuta la aplicacion

string path = System.AppDomain.CurrentDomain.BaseDirectory;