DELPHI FAQ: BEEP для дельфи, который работает, как в TP


BEEP для дельфи, который работает, как в TP
Previous  Home  Next


Взято из FAQ: http://blackman.km.ru/myfaq/cont4.phtml

BEEP , для дельфи , который работает, как в B.Pascal 7.0

Я применяю следующий код, однако он работает только под Win9x/me
(Под WinNT/2000/XP вы можете использовать Beep(Tone, Duration)
- задавать тон и продолжительность звучания).

procedure Sound(Freq : Word);
  var
 B : Byte;
begin
 
if Freq > 18 then 
begin 
Freq := Word(1193181 div LongInt(Freq)); 
B := Byte(GetPort($61));  
if (B and 3) = 0 then 
begin 
SetPort($61, Word(B or 3)); 
SetPort($43$B6); 
end;  
SetPort($42, Freq); 
SetPort($42, Freq shr 8); 
end
end


procedure
 NoSound;
  var
 Value: Word;
begin
 
Value := GetPort($61and $FC
SetPort($61, Value); 
end


procedure
 SetPort(address, Value:Word);
  var
 bValue: byte;
begin
 
bValue := trunc(Value and 255); 
asm 
  mov dx, address 
  mov al, bValue 
  out dx, al 
end
end


function
 GetPort(address:word):word;
var
 bValue: byte;
begin
 
asm 
  mov dx, address 
  in al, dx 
  mov bValue, al 
end
GetPort := bValue;
end
;

Взято с Vingrad.ru http://forum.vingrad.ru





DELPHI FAQ




EOMY TOP 100      Рейтинг@Mail.ru      Rambler's Top100