![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Привет
![]() Пытаюсь освоить программирование COM порта на Дельфи. Уже освоил открытие/закрытие порта, изменение параметров в структуре DCB, а так же управление сигналами DTR и RTS через функцию «EscapeCommFunction». Теперь возникла проблема передачи данных через приемопередатчик. Delphi ругается на функцию WriteFile(hPort,Buffer,b,b1,nil) – “Types of actual and formal var parameters must be identical”, несмотря на все мои усилия. В общем задача сейчас самая простая – передать 1 байт информации по последовательному каналу. Объясните мою ошибку. Исходники моей программы можно взять здесь (7Кб): http://andrnow.narod.ru/RS-232.rar Только большая просьба ко всем отвечающим – не нужно приводить примеры из интернета объемом на 3 экрана с кучей проверок, переменных, и прочим ненужным. Я это все уже видел и ничего там не понял. |
#2
|
||||
|
||||
![]() есть вот невизуальный компонент, нашел как-то на просторах интернета, но в силу обстоятельств не использовал, может поможет, по описанию - для работы с RS-232.
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard ![]() |
#3
|
|||
|
|||
![]() Тип переменной b1 должен быть DWORD.
Не забывайте делать резервные копии |
#4
|
||||
|
||||
![]() Цитата:
Не DWORD а Cardinal ! пишется так: Код:
procedure TForm1.Button5Click(Sender: TObject); var d,d1: cardinal; begin Buffer[1]:=0; Buffer[2]:=2; b:= 1; WriteFile(hPort,Buffer,b,b1,nil); end; |