Archivo por meses: noviembre 2006

Panel desplazable

Una de las limitaciones del .NET Compact Framework es que, al contrario que el Framework completo, no dispone de un panel con barras de desplazamiento. El único control que se le parece es el Panel (así, a secas), que consiste en un contenedor de tamaño variable en el que se pueden insertar tantos widgets como se desee, en las coordenadas que se quiera.

Sin embargo, para el trabajo que estoy haciendo necesitaba un panel con barras desplazables, así que busqué en la red y encontré un truco: hacer un panel del tamaño que se necesite, colocar dentro los elementos deseados, añadir dos barras de desplazamiento fuera del panel y hacer que éstas cambien las coordenadas X e Y de éste, de manera que se mueva por toda la pantalla. Esta solución es aceptable cuando sólo se desea un único panel que ocupe toda la pantalla, pero en mi caso no servía porque yo necesitaba poder colocar más elementos fijos, con lo que el panel sólo ocuparía una parte.

La solución, un tanto enrevesada, consiste en crear una nueva clase que contenga dos widgets Panel, uno dentro del otro: el externo, que definirá la zona de visión y será del tamaño que desee que se muestre en pantalla, y el interno, que será más grande y contendrá todos los widgets que necesitemos. Para conseguir el desplazamiento basta con añadir barras de desplazamiento.

En mi caso sólo necesitaba desplazamiento vertical, así que añadí una sola a la derecha. El evento scrolled ajusta la propiedad Top del panel interno, usando el negativo de su valor (al aumentar el valor de la barra hay que desplazar el panel negativamente). El parámetro Maximum de la barra toma el valor de la altura del panel interno menos uno, y el parámetro LargeChange la altura del panel externo. De esta manera el tamaño de la barra se ajusta automáticamente a la relación de tamaños de ambos paneles.

El código de ejemplo del panel desplazable se puede bajar aquí.

Electrónica analógica

Hace unos días me pasaron un enlace a un libro titulado Designing analog chips. Este libro, disponible en formato PDF, fue escrito por Hans Camenzind. Para los que no le conozcan, diré que es el diseñador de uno de los más famosos cirtuitos integrados analógicos (situado justo después del amplificador operacional): el 555.

El libro comienza con una introducción teoría básica de los semiconductores y su funcionamiento en los principales componentes analógicos (diodo, transistor bipolar, FET…). A continuación entra de lleno en el tema de la simulación dedicándole un capítulo entero, y ya sin más dilación comienza a explicar los principales montajes analógicos: espejos de corriente, amplificadores operacionales, temporizadores…

Estoy empezando a leerlo con calma, pero después de echarle un ojo por encima debo reconocer que tiene una pinta impresionante. Lo más interesante es que se centra sobre todo en el aspecto práctico, y además mediante un lenguage muy asequible que lo hace todavía más interesante.

Creo que hace unos años habría matado por tener este libro, cuando me tuve que enfrentar a Dispositivos Electrónicos (1 y 2) y a Electrónica Analógica.