//incluir na clasula uses da unit: mmSystem {é necessario criar uma pasta com o som em wav de cada uma das letras do teclado na mesma pasta que estiver o executave}l unit Unit1;
type
TForm1 =class(TForm)
Memo1: TMemo; procedure Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); private { Private declarations } public { Public declarations } end;
var
Form1: TForm1;
endereco: string; //variaveis globais
som: PAnsiChar;
implementation
{$R *.dfm}
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin case key of
65: som := PAnsiChar(endereco+'A.wav'); // converte a variavel endereço de string para PAnsiChar e adiciona o nome da letra a reproduzir
66: som := PAnsiChar(endereco+'B.wav');
67: som := PAnsiChar(endereco+'C.wav');
68: som := PAnsiChar(endereco+'D.wav');
69: som := PAnsiChar(endereco+'E.wav');
70: som := PAnsiChar(endereco+'F.wav');
71: som := PAnsiChar(endereco+'G.wav');
72: som := PAnsiChar(endereco+'H.wav');
73: som := PAnsiChar(endereco+'I.wav');
74: som := PAnsiChar(endereco+'J.wav');
75: som := PAnsiChar(endereco+'K.wav');
76: som := PAnsiChar(endereco+'L.wav');
77: som := PAnsiChar(endereco+'M.wav');
78: som := PAnsiChar(endereco+'N.wav');
79: som := PAnsiChar(endereco+'O.wav');
80: som := PAnsiChar(endereco+'P.wav');
81: som := PAnsiChar(endereco+'Q.wav');
82: som := PAnsiChar(endereco+'R.wav');
83: som := PAnsiChar(endereco+'S.wav');
84: som := PAnsiChar(endereco+'T.wav');
85: som := PAnsiChar(endereco+'U.wav');
86: som := PAnsiChar(endereco+'V.wav');
87: som := PAnsiChar(endereco+'W.wav');
88: som := PAnsiChar(endereco+'X.wav');
89: som := PAnsiChar(endereco+'Y.wav');
90: som := PAnsiChar(endereco+'Z.wav'); else
som := PAnsiChar(endereco+'FALHA.wav'); end;
PlaySound(som, 1, SND_ASYNC); //reproduz um som end; initialization//executa os comandos na inicialização
endereco:=ExtractFilePath(ParamStr(0)); //pega o endereço do executavel
endereco := endereco+'sons'; end.