Sons no alto-falante do micro no Delphi
Inclua na seção uses:Windows
procedure Sound(Freq: Word); asm MOV DX, AX IN AL, $61 MOV AH, AL AND AL, 3 JNE @@1 MOV AL, AH OR AL, 3 OUT $61, AL MOV AL, $B6 OUT $43, AL @@1: MOV AX, DX OUT $42, AL MOV AL, AH OUT $42, AL end; procedure NoSound; asm IN AL, $61 AND AL, $FC OUT $61, AL end; procedure DoBeep(Freq, Duration: LongWord); begin if Win32Platform = VER_PLATFORM_WIN32_NT then Windows.Beep(Freq, Duration) else begin Sound(1193181 div Freq); Sleep(Duration); NoSound; end; end; Se você não entendeu as rotinas, eis um resumo: Sound: Inicia um som com uma determinada freqüência (hertz). NoSound: Interrompe o som iniciado por Sound. DoBeep: Esta rotina verifica se o sistema operacional é o Windows NT. Se for, chama a API Windows.Beep. Caso contrário chama Sound, aguarda e, chama NoSound.
Observações
Pelo menos no meu caso, a maioria dos usuários não possuem computadores munidos de caixas de som. Para estes casos as rotinas acima seriam a solução se o som for indispensável.