Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Заставить динамик пикнуть несколько раз с задержкой между сигналами, не зависящей от частоты процессора

Нужно воспользоваться следующей процедурой:


procedure Delay(ms : longint);
{$IFNDEF WIN32}
var
  TheTime : LongInt;
  {$ENDIF}
begin
  {$IFDEF WIN32}
  Sleep(ms);
  {$ELSE}
  TheTime := GetTickCount + ms;
  while GetTickCount < TheTime do
    Application.ProcessMessages;
  {$ENDIF}
end;

А воспользуемся ею, например, в обработчике нажатия кнопки:


procedure TForm1.Button1Click(Sender: TObject);
begin
  MessageBeep(word(-1));
  Delay(200);
  MessageBeep(word(-1));
  Delay(200);
  MessageBeep(word(-1));
end;

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay