12.08.09
Manejar conflicto de Hilos, Windows Forms C#
Teniendo aplicaciones que requieren de dos o mas hilos es frecuente encontrarse con conflictos de hilos, estos conflictos son comunmente generados porque un hilo intenta acceder a uno o mas recursos de otro hilo. En este caso se puede aplicar esta solucion para manejar el conflicto.
En el siguiente ejemplo se pretende modificar el mensaje de un Label desde un hilo cualquiera.
// Se declara el delegado para el manejo del conflicto public delegate void DelegadoMensaje (String mensaje) ;class MiClase{// Se declara el evento que posteriormente sera el encargado de llamar a la funcion que manejara el conflictoprivate event DelegadoMensaje EventoMostrarMensaje;// Constructor de la clase, asigna al evento la funcion que debe manejar el mensajepublic MiClase(){EventoMostrarMensaje += new DelegadoMensaje(VeElMensaje);}// Esta funcion se encarga de manejar el conflicto mediante la invocacion de un nuevo delegadopublic void VeElMensaje(string Mensaje){DelegadoMensaje Mi_Conectar_Resultado;Mi_Conectar_Resultado = new DelegadoMensaje(VerResultado);this.Invoke(Mi_Conectar_Resultado, new Object[] { Mensaje });}// Esta funcion modifica los recursospublic void VerResultado(String mensaje){this.lblRecurso.Text = mensaje;}// Esta funcion es la que se invoca desde cualquier otro hilopublic void ColocarMensaje(String mensaje){EventoMostrarMensaje(mensaje);}public static void main(String args[] ){Thread miHilo = new Thread(new ThreadStart(MiFuncion));miHilo.start();}// Esta funcion representa el hilo que intenta acceder a los recursos de otro hilopublic void MiFuncion(){ColocarMensaje("HOLA MUNDO!");}}Espero que sea de ayuda.Saludos
11.04.09
Fondos transparentes en Internet Explorer
Creando un sitio web me surgio la necesidad de generar un Div que tuviese fondo transparente para una galeria de imagenes, declare algo en la hoja de estilos como:
#backgroundPopup{
display:block; visibility: hidden; position:fixed; height:100%; width:100%; top:0; left:0; z-index:1;
background: #000000;
opacity: 0.7;
}
En firefox funcionaba excelente pero en IExplorer las transparencias no funcionaba, el truco esta en agregarle al estilo:
filter:alpha(opacity=70);
entonces tendremos algo como:
#backgroundPopup{
display:block; visibility: hidden; position:fixed; height:100%; width:100%; top:0; left:0; z-index:1;
background:#000000;
opacity: 0.7;
filter:alpha(opacity=70);
}
y listo tendremos nuestra transparencia en IExplorer.
Saludos
05.22.09
Libreria Microsoft.ink.dll para Windows Xp
Sucede que necesite la libreria microsoft.ink.dll para realizar una aplicacion en VisualStudio 2005 que se ejecutaria en WindowsXp TabletPc Edition, esta libreria es necesaria cuando se va a trabajar con dispositivos tactiles como las pantallas de las Tablet Pc.
Bueno revisando por alli no encotraba otra solucion mas que intentar instalar la version de WinXp para tablet en mi ordenador de escritorio normal, hasta que blogueando por alli encontre un conjunto de aplicaciones que imitan el comportamiento de los dispositivos tactiles como el lapiz optico.
Aunque no necesitaba ninguna de las miniaplicaciones que el paquete contenia me encontre que contenia la libreria que neceistaba. Aqui el link de descarga:http://download.microsoft.com/download/c/d/f/cdfc8b4b-c4a2-4ab0-b290-eed0ec3d0ec4/MPCSDKSetup.exe
Ojala les sea util.