Lilypie Primer PicLilypie Primer Ticker

martes, 6 de febrero de 2007

Clonar un Control

En uno de los foros en que participo, un colega preguntó cual era la forma de crear copias idénticas ('clones') de una Caja de Edición (TextBox) en tiempo de ejecución. Intenté ver si los controles incluían algún constructor que tomara un parámetro tipo Control y creara una copia a partir de éste, lamentablemente los controles no incluyen tal constructor (pienso que sería útil)

Aqui planteo la forma de crear 'clones' de un control (en realidad, de cualquier objeto), usando Reflection.

Versión C#

private void Clonar(object src, object tgt)
{
PropertyInfo[] props = src.GetType().GetProperties();
foreach (PropertyInfo pi in props)
{
if (pi.CanWrite)
pi.SetValue(tgt, pi.GetValue(src, null), null);
}
}

No hay que olvidar incluir un using System.Reflection

Asumamos que hemos creado un TextBox llamado tbOriginal y hemos personalizado el tipo de letra, el tamaño, etc. Si queremos crear una copia idéntica usando el método Clonar definido antes, usariamos algo asi:

TextBox tbClon = new TextBox();
Clonar (tbOriginal, tbClon);

ya tenemos la copia, y solo nos quedaría modificar la posición, y añadirlo al Form

tbClon.Top += 20;
this.Controls.Add(tbClon);

Como la consulta fue hecha en un foro de VB.NET, también aqui esta la traducción. Me llevó mas tiempo traducir el código que escribir la función :) VB nunca fue mi lenguaje favorito. Aqui está el código para quien le pudiera interesar


Private Sub Clonar(ByVal src As Object, ByVal tgt As Object)
Dim props As System.Reflection.PropertyInfo()
props = src.GetType().GetProperties()
For Each pi As System.Reflection.PropertyInfo In props
If pi.CanWrite Then
pi.SetValue(tgt, pi.GetValue(src, Nothing), Nothing)
End If
Next
End Sub


Hasta la próxima

lunes, 5 de febrero de 2007

.NET Framework 3

Hola a todos.

Retomo este maltratado y quasi abandonado blog, con la promesa (tantas veces rota) de dedicarle más tiempo y escribir de forma mas consecuente, a ver si ahora puedo cumplir :)

.NET framework 3.0, ya está entre nosotros, y me han preguntado que es lo que se necesita para incursionar en ese nuevo mundo, pues aqui está lo que se requiere, afortunadamente disponible libre de costo (bueno, casi todo):

1. Windows XP SP2 o Windows Vista

2. Visual Studio 2005 RTM

3. Microsoft .NET Framework 3.0 Redistributable Package. Necesario para ejecutar aplicaciones basadas en .NET 3. No se necesita si tenemos Windows Vista instalado, pues el Framework 3.0 es parte integrante del Sistema Operativo.

4. Microsoft Windows SDK for Windows Vista Puede ser instalado online o se puede descargar el instalador completo (una imagen de DVD que mide más de 1Gb)

5. Visual Studio Extensions for .NET Framework 3.0

Los enlaces para las descargas de los puntos 3,4,5 se pueden encontrar aqui

Una vez instaladas esas extensiones ya podemos comenzar a desarrollar aplicaciones con WPF, o alguno de sus compañeros: WCF, WWF o CardSpaces (vale la pena aprenderlos todos). Cito WPF porque yo estoy iniciándome en esta plataforma, asi que estaré posteando (frecuentemente, espero) mis experiencias.

jueves, 31 de agosto de 2006

Academia .NET Protector

Retomo este blog después de varios meses en que no he podido dedicarle tiempo, espero poder escribir más seguido a partir de ahora.

Buenas noticias, finalmente la Academia NET Protector abrió sus puertas. Es una gran oportunidad para ampliar nuestros conocimientos de desarrollo de código seguro.

Pueden inscribirse en

www.netprotectoracademy.com

Si necesitan un ID de referencia, pueden usar este

07850d64-8d1e-4a9d-817d-a7f9fd031e5b

El material que proporciona este programa por si solo no resulta suficiente, por eso les recomiendo profundizar en el tema accediendo a las fuentes de información adicionales que se proporcionan en los videos.

Muchos éxitos a quienes decidan incursionar en este programa.