![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Системный динамик [D6, Win2k]
symbol © (2002-11-05 12:31:00)Вот такой вопрос собственно:
Как заставить системный динамик постоянно выдавать звук до определенного события (реакция пользователя или поступление данных с СОМ порта)?
Windows 2000, D7
Marcus (2002-11-06 14:52:00) [1]Ну примерно так, я думаю
StupidUserFinallyAnswered := false;
WaitCommEvent(...
ReadFile(hPort, ...); // что-то читаем из COM
if CriticalData then begin
CreateThread(..., @ThreadProc, );
end;
...
procedure MyFormOnMouseDown(...);
begin
StupidUserFinallyAnswered := true;
end;
т.е. создается отдельный поток, в котором непрерывно орет динамик, до тех пор пока юзер не щелкнет куда-либо. Тогда поток прерывается, и динамик соответственно замолкает
symbol (2002-11-06 12:58:00) [2]2 Marcus
Спасибо за совет, но не совсем понятно, я с треадами еще не работал, если можно, объясни поподробнее.
Подробности:
Есть база данных. С СОМ порта поступает определенные данные. По выборке из БД определяется критичность этих данных, и если они критичны, нужно привлечь внимание пользователя (постоянный звуковой сигнал). Пользователь должен произвести определенные децствия(кликнуть мышой в определенном месте), после этого сигнал выключается.
Marcus (2002-11-05 13:59:00) [3]ThreadProc(
begin
while not StupidUserFinallyAnswered do
MessageBeep($FFFFFFFF);
end;
CreateThread(..., @ThreadProc, );