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


Relacionados:
Osciloscopio con la tarjeta de sonido
Visualizar el espectro de las frecuencias de sonido 
Leer las cabeceras de un archivo mp3 
Conversor MPEG4 a AVI 
Reproducir notas musicales 
Vumetro con Delphi


Reproducir notas musicales

.

El siguiente procedimiento permite teclear una nota musical en función de su frecuencia y duración, no sobre el altavoz interno del PC, que habitalmente se haría con la función Windows.Beep() , sino sobre la tarjeta de sonido.
Para ello se configura las propiedades del archivo "wav" (en la estructura WaveFormatEx), esta estructura se escribe en un MemoryStream que se pasa como parámetro a la función sndPlaySound indicando la lectura de un flujo de memoria.

Por ejemplo un "LA" que dura 1 segundo se reproduciría así:

procedure TForm1.Button1Click(Sender: TObject);
begin
  MakeSound(440, 1000, 60);
end;

Link de descarga del programa

Una nota musical se caracteriza por 3 parámetros: altura, amplitud y timbre.
Altura: también llamada "frecuencia". Musicalmente para aumentar una octava haría falta mutiplicar su frecuencia por 2.
Amplitud: Es la potencia sonora - volumen. El fichero WAV no utiliza la noción de decibelios, sino un valor comprendido entre 0 -silencio- y 127 -el más fuerte posible-.
Timbre
: Es el parámetro que caracteriza el sonido. Es el que permite diferenciar 2 instrumentos musicales que tocan la misma nota.

Frecuencias informativas de las notas musicales: (Octava nº 3)

  • Do : 264 Hz
  • Ré : 297 Hz
  • Mi : 330 Hz
  • Fa : 352 Hz
  • Sol : 396 Hz
  • La : 440 Hz
  • Si : 495 Hz
  • Do4 : 528 Hz

Más información

Estructura del fichero WAV:Wotsit's format
Tutoriales sobre WAV : http://sub0.developpez.com
Manipulación de ficheros WAV :Concaténation de fichiers WAV