El juego del Tangram con Delphi

.


El Tangram es un juego de origen chino que consiste en formar figuras con las siete piezas que lo componen sin solaparlas entre sí. El juego se remonta a los años 618 a 907 de nuestra era, época en la que reinó en China la dinastía Tang de donde se derivaría su nombre.
En la siguiente página tienen el código fuente en Delphi que incorpora varios niveles de dificultad. Muy recomendable para aquellos que quieran pasar un rato entretenido solucionando los retos que nos plantea el programa.

Link de la página (inglés)

Simular un clic sobre un link de una página web

.

Para recuperar los links de una página html es necesario abrir una instancia de Internet Explorer y utilizar las funciones OLE como muestra el siguiente ejemplo:

procedure ListarLinks(List: TStrings; IEApp: OLEVariant; aURL:string);
var
IEApp: OLEVariant;
nbLinks,i:Integer;
begin
//Si el objeto OLE no ha sido creado
if(VarIsEmpty(IEApp))then
begin
//crear el objeto
IEApp := CreateOleObject('InternetExplorer.Application');
//hacerlo visible
IEApp.Visible := true;
//Abrir la página especificada
IEApp.Navigate(aURL);
end;

//Esperar a que la página sea completamente cargada
// READYSTATE_COMPLETE = 4
while Cardinal(IEApp.readyState) <> 4 do sleep(1000);

//Recuperar el nombre de los links
nblinks := Cardinal(IEApp.Document.links.length);
//Volcar los links en un tString
List.Add(Format('Nombre de los links = %d',[nblinks]));

for i := 0 to nblinks - 1 do
Self.MemoLog.Lines.Add(string(IEApp.Document.links.item(i).href));
end;

Para simular un clic hacer lo siguiente:

procedure ClicSobreLink(LinkIndex:Integer);
begin
IEApp.Document.links.item(LinkIndex).click;
end;

Transformación de un metafile Windows


Esta unidad contiene procedimientos de transformación de un metafichero Windows (son ficheros de imágenes que contienen la descripción vectorial de un diseño.) Tienen la ventaja de poder ser redimensionados sin perder calidad, por contra su modificación en memoria es muy complicada.
Para utilizarlos hay que pasar el handle de un TMetafile al procedimiento indicando las transformaciones deseadas, con ciertas excepciones, por ejemplo en el caso de que el fichero contenga texto, en cuyo caso las modificaciones se ignoran.

Link de descarga




Leer las pistas de un CD de audio

.





Los ficheros ".cda" describen las pistas contenidas en un CD audio. Estos ficheros están visibles en el explorador de Windows cuando abres una ventana correspondiente a un CD.

No existe una función del API que permita consultar el contenido de estos ficheros pero podéis utilizar las procedimientos contenidos en el siguiente fichero:



Autor: Pierre Castelain

Link de descarga








Monitor de red con Delphi


Monitor de red que utiliza la Dll "IPHLPAPI.DLL" del API de Microsoft.

Para cada interfaz de red el programa muestra:
-Su nombre.
-Su dirección MAC.
-Su velocidad.
-MTU.
-Total de bytes enviados y recibidos.
-Diagrama con la tasa de transferencia instantánea.

Link de descarga del programa



Salvapantallas programado en Delphi


Aquí tienen un salvapantallas realizado en Delphi. Después de compilarlo se generará un archivo llamado "FeuxDartifice.scr" (que es el salvapantallas que pueden instalar en Windows).

Para ver cómo funciona hay que hacer clic con el botón derecho del ratón sobre el archivo anterior y en el menú emergente activar la opción "Probar".

Link de descarga



Espectacular actuación de Mariachis

No todo va a ser informática, programación, etc... voy a hacer un alto en el camino con un poco de música, y es que hace unos meses asistí a un Concierto en el Auditorio Nacional de Música de Madrid en el que actuaban varios grupos de Mariachis con un éxito arrollador todos ellos (Era la primera vez que los pude ver en directo y quedé sumamente impresionado por la fuerza de sus voces, la habilidad con el violín y la calidad artística del grupo) y para muestra aquí tienen la actuación del MARIACHI VARGAS DE TECALITLAN ...simplemente ESPECTACULAR...
...Dedicado a mis amigos mexicanos...

Link en youtube: http://www.youtube.com/watch?v=dZPYKcIZqH8



Crear un punto de restauración del sistema

Aquí tienen cómo crear un punto de restauración del sistema con Delphi.

Para comprobar que se ha creado correctamente tienen que ir a INICIO-

Todos los programas-Accesorios-Herramientas de sistema-Restaurar sistema.



Autor: chrisbhmg@gmail.com



Link de descarga



Matrix con Delphi

.

Aquí tienen una imitación realizada en Delphi de la pantalla que muestra caracteres como si fuesen gotas de lluvia de la película Matrix.

Autor: Pierre Castelain

Código fuente



Solución de la ecuación de Schrödinger con Delphi

.
Esta aplicación calcula la ecuación de Schrödinger dependiente del tiempo y hace los cálculos de los estados y energía según Hamilton-Jacobi.
Como la ecuación tiene números complejos, separa la parte real y la imaginaria utilizando la unidad tMatrix (viene con su código fuente).
De la unidad tMatrix se usa una función para diagonalizar una matriz simétrica real con el fin de resolver la ecuación, pero contiene muchas otras que las pueden usar en sus programas como son:
Cálculo del determinante, matriz transpuesta, matriz nula, suma, resta, descomposición de una matriz M=L*U donde L y U son las matrices triangulares superior e inferior, descomposición de M=Q*L donde Q es la matriz unitaria y L es la matriz triangular inferior, Método de reducción de Hessenberg, etc...

Link del programa y código fuente

Relacionados:
Wikipedia: Ecuación de
Schrödinger


Acceder a los contadores del sistema



La siguiente aplicación les permitirá acceder a los contadores de rendimiento de Windows. Para ello se utilizan las funciones de la librería PDH, que funcionan bajo 2X/XP.
Se pueden ver el % de utilización de la CPU, por procesos, utilización de memoria, rendimiento de disco (lectura / escritura), etc.
Está probado con Delphi 7 y recordar que tienen que incluir en el uses la unit uPDH.

Link de descarga


Emulador PIC 16F84 con Delphi



Es uno de los microcontroladores más populares del mercado, ideal para principiantes, debido a su arquitectura de 8 bits, 18 pines, y un set de instrucciones RISC muy amigable para memorizar y fácil de entender, internamente consta de:


  • Memoria Flash de programa (1K x 14).

  • Memoria EEPROM de datos (64 x 8).

  • Memoria RAM de 68 registros x 8.

  • Un temporizador/contador (timer de 8 bits).

  • Un divisor de frecuencia.

  • Varios puertos de entrada-salida (13 pines en dos puertos, 5 pines el puerto A y 8 pines el puerto B).


En este caso os presento un emulador freeware realizado en Delphi con código fuente incluido.



Link de descarga






Calcular el MD5

MD5 es un algoritmo de reducción criptográfico de 128 bits, que se usa ampliamente en informática para asegurar, entre otras cosas, que los archivos descargados desde internet no han sufrido cambios debidos a virus o troyanos.
Esta soft es una implementación del driver test descrita en RFC 1321. Se puede usar para comprobar las funciones MD5String y MD5File es decir para calcular el MD5 de un texto y de un fichero.

Código fuente en Delphi


Bloquear disco

Esta es una utilidad que permitirá bloquear el acceso a cualquier unidad de disco de vuestro sistema. No usa componente de terceros, todo se programa con las units de Delphi standard.
Recordar que antes de cerrar la aplicación tienen que pulsar el botón "unlock" para desbloquear el disco.
Está probado en Delphi 7 y funciona incluso con unidades USB.

Código fuente



Port scanner en Delphi

Aquí tienen un escaner de puertos en modo línea de comandos, con su código fuente en Delphi.
El programa lanza un hilo para analizar cada puerto utilizando la función BeginThread, con lo que podrán comprobar la rapidez de este programa.
Se puede modificar el máximo número de puertos a analizar (por defecto analiza los 20000 primeros)

Para iniciarlo, desde la consola ms-dos teclear: portscan (ip)

Link de descarga



Skype con Delphi


Para los que utilizan skype, seguro que les interesará este componente que permite desarrollar aplicaciones propias utilizando la funcionalidad de skype. Incorpora una carpeta con muchos ejemplos de programación.

http://www.sokratez.de/downloads/skypecontrol.rar

Página en inglés con más información sobre skype
http://www.drbob42.com/examines/examin75.htm


Evitar que se inicie una aplicación varias veces


El iniciar la misma aplicación varias veces puede ser un problema si tenemos que interactuar con un recurso compartido, como el puerto serie, una base de datos, etc...
Para evitarlo, una de las formas más sencillas es crear un mutex cada vez que se inicie nuestro software.
El truco está en comprobar si la función CreateMutex devuelve un error, en caso afirmativo podemos tener la seguridad que la aplicación estaba abierta anteriormente y procederemos a detener su ejecución.

El código es el siguiente :

....
var
hnd:thandle;

IMPLEMENTATION
....

initialization
hnd := CreateMutex(nil, True, 'mutexprincipal');
if GetLastError = ERROR_ALREADY_EXISTS then Halt;

finalization
if hnd <> 0 then CloseHandle(hnd);
.....

end.

Fases de la Luna


Ahora que se celebra el 40 aniversario de la llegada del hombre a la Luna, este soft viene al pelo, ya que lo que hace es mostrar sobre una imagen las fases de la Luna.
En sí el programa muestra el uso del objeto TCanvas y de las funciones arc y floodfill sin hacer cálculos astronómicos que es lo que uno podría pensar a priori.
Cuando lo instalen les recomiendo pulsar el botón "show moon image" para conseguir que la animación sea más realista.

Descargar programa:
http://www.delphiforfun.org/Programs/Download/DrawMoonSource.zip

Código fuente:
http://www.delphiforfun.org/Programs/Delphi_Techniques/DrawMoonSource.html

NUEVO=============
Relacionados:
Página que proporciona una simulación del principal ordenador de viaje de las misiones lunares del programa Apolo de la NASA llamado A.G.C. (Apollo Guidance Computer) y de las misiones de aterrizaje. Tanto el módulo de control, como el módulo de aterrizaje tienen sus propios A.G.C. aunque con diferente software.
http://www.ibiblio.org/apollo/
http://code.google.com/p/virtualagc/

Código fuente del programa del apollo:
http://googlecode.blogspot.com/2009/07/apollo-11-missions-40th-anniversary-one.html

http://code.google.com/p/virtualagc/source/browse/trunk/Comanche055/CM_BODY_ATTITUDE.s?r=258

Ecuaciones de guia de aterrizaje lunar
http://code.google.com/p/virtualagc/source/browse/trunk/Luminary099/LUNAR_LANDING_GUIDANCE_EQUATIONS.s?r=258
http://code.google.com/p/virtualagc/source/browse/trunk/FP8/FP8.s?r=258



Cálculo de la fracción egipcia con Delphi


Una fracción egipcia es la suma de fracciones unitarias distintas, es decir, de fracciones de numerador 1 y cuyos denominadores sean enteros positivos distintos. Se puede demostrar que cualquier número racional positivo se puede escribir como fracción egipcia.

Los Egipcios (2000 A.C.) utilizaron una técnica particular para calcular el cociente de 2 números. Ellos establecen ciertos múltiplos para el denominador y multiplican el número obtenido por 2 hasta la obtención de un número superior como numerador.

Código fuente en Delphi para calcular la fracción egipcia de la división de dos números enteros:

http://www.darkskull.net/fichiers/tips/egypt.zip

Simulación del movimiento de los electrones en un campo electrico

Espectacular simulación realizada con OpenGL del movimiento de los electrones cuando atraviesan un campo eléctrico. Como muestra la image...