Acerca de:

Este blog contiene los códigos, ejemplos y bases de datos que he usado cuando aprendía acerca de algún tema específico. En lugar de borrarlos (una vez dominado ya el tema), he decidido publicarlos :)

domingo, 23 de agosto de 2009

Limpiar un Combobox (para Visual Studio 2008)

Si se tiene un control tipo combobox y se lo desea limpiar (borrar todos los elementos de su lista) en VB6 bastaba hacer:
Combobox.Clear

En .Net se debe añadir la propiedad "Items":
Combobox.Items.Clear()

Si el combobox tiene la propiedad "DataSource" enlazada a una base de datos, antes se deberá "romper" el enlace a ésta. Una manera es asignarle un valor nulo:

En VB:
Combobox.DataSource = Nothing

En C#:
Combobox.DataSource = null;

Si no se rompe el enlace, el compilador no nos permitirá limpiarlo. "Nothing" es el valor nulo en VB, "null" es el valor nulo para C#, C++, C o Java. Ambas son palabras reservadas en sus respectivos lenguajes.

lunes, 10 de agosto de 2009

Diferencias entre las versiones del Matlab

Matlab 6.5: Puede instalarse en Windows 98 SE y en Windows 2000 y en computadoras con 128Mb de RAM y procesador de 500MHz.

Matlab 7: Puede instalarse en Windows 2000 y en Windows XP y en computadoras con 512Mb de RAM y procesador de un núcleo de 2GHz. No corre en computadoras con procesadores de doble núcleo. Tampoco ejecuta los programas hechos con el Guide de Matlab 6.5 ni con Simulink del Matlab 6.5

Matlab 7.6: Puede instalarse en Windows XP y Windows Vista. Corre en computadoras con procesador de doble núcleo. Puede ejecutar los programas hechos con el Guide del Matlab 7. No es recomendable correrlo en computadoras con menos de 1Gb de RAM.

Página oficial de Matlab: http://www.mathworks.com/

Alternativas gratuitas:
Octave
FreeMat
Scilab

viernes, 7 de agosto de 2009

Microsoft Connect y cómo instanciar una clase en C#

Sucedió que necesitaba trabajar con manipulación de imágenes en C# (en el namespace System.Drawing) pero en una aplicación de consola. Los problemas que tuve al declarar objetos globales del tipo ColorPalette e Image me llevaron a escribirles a la gente de Microsoft Connect (siempre programo mi C# en el Visual Studio Express). Lo que me respondieron está en este link (en inglés).

En la solución que dan dicen que hace falta crear una instancia a la clase Process. Crear una instancia es simplemente usar: AnyClass p = new AnyClass(); pues .net asigna un constructor por defecto a todas las clases, aún si este no se declara (también hay un destructor implícito).
La solución la programé yo misma, luego de leer las instrucciones de Alex Turner.

Haciendo simplemente:
Image fotoJpg;
ColorPalette cp;

static void Main(string[] args)
{
Program p = new Program();
p.fotoJpg = Image.FromFile("C:\\background-black.jpg");
p.cp = p.fotoJpg.Palette;
}
}

Ya tenía los objetos ColorPalette e Image como globales.

See ya next time!