![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Monitoring Communications Events [D6, WinXP]
MadGhost © (2004-02-14 17:48:00)Уважаемые мастера, нашел в справке по SDK в Делфях такой пример создания события за слежением есть ли данные в порту последовательном, если я правильно выражаюсь.
вот пример:
HANDLE hCom;
OVERLAPPED o;
BOOL fSuccess;
DWORD dwEvtMask;
hCom = CreateFile("COM1",
GENERIC_READ | GENERIC_WRITE,
0, /* exclusive access */
NULL, /* no security attrs */
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
NULL
);
if (hCom == INVALID_HANDLE_VALUE) {
/* Deal with the error. */
}
/* Set the event mask. */
fSuccess = SetCommMask(hCom, EV_CTS | EV_DSR);
if (!fSuccess) {
/* deal with error */
}
/* Create an event object for use in WaitCommEvent. */
o.hEvent = CreateEvent(NULL, /* no security attributes */
FALSE, /* auto reset event */
FALSE, /* not signaled */
NULL /* no name */
);
assert(o.hEvent);
if (WaitCommEvent(hCom, &dwEvtMask, &o)) {
if (dwEvtMask & EV_DSR) {
/*
* . . .
*/
}
if (dwEvtMask & EV_CTS) {
/*
* . . .
*/
}
}
как такое же реализовать на Делфи? т.е. самостоятельно определить событие которое бы определяло что данные в порт пришли?
буду примного признателен, так как давно меня мучает этот вопрос.
MadGhost (2004-02-14 19:37:00) [1]если бы я не пытался сделать это, и у меня это работало бы я бы не задавал таких вопросов :( значит тут как раз случай что не один в один.
МОжет кто нить встречал, хочется рассмотреть подробней реализацию этого в компонентах для работы с СОМ портами :(
TUser (2004-02-14 18:36:00) [2]Api переводится с си на паскаль практически 1 в 1. Названия функций и типов данных будут одинаковыми.