КатегорииОпрос по сайтуПытаетесь ли Вы беречь электроэнергию?
| ![]() |
Часть 18. Основные физические законы в микроэлектронике.st:=stcom+' занят модемом'; Application. MessageBox(Pchar(st), 'Error', MB_OK); exit; end else {все нормально, COM открыт} begin Forml. Label7. Caption:=stcom+' 9600 1; FlagCOM:=Tруe; end; end; Как лицезреем, процедура сотворения порта много понятнее, чем в случае прямого воззвания к API — все через обычную установку параметров компонента. FlagCOM играет у нас роль индикатора, доступен порт либо нет. Если он остался при значении False, то функцию следует повторить с иным значением в строке stcom (каковую мы задаем при помощи comboBox, см. дальше). При определении модема использован хитрецкий метод задания паузы — заместо обыденного оператора sleep, который тормозит программку, мы употребляли таймер. Чтоб это сработало, нужно в обработчике действия onTimer: всегда наращивать переменную tall. Стопроцентно процедура по таймеру приводится дальше, т. к. tall нам пригодится не только лишь для этого. Как мы обратились к процедуре AfComPorti. open, у нас немедля будет сотворен параллельный поток и весь прием пойдет через него. Потому, чтоб при определении модема принятые байты не обрабатывались, необходимо не запамятовать добавить в функцию приема выход по условию FiagC0M=Faise. Для сотворения данной процедуры обыденным методом — через инспектор объектов — сделаем обработчик действия AfComPortlDataRecivecT (Листинг 18.5). Листинг 18.5 procedure TForml. AfComPortlDataRecived(Sender: TObject; Count: Integer); {чтение еще одного б по сообщению wmCOMPORT} var i: integer; begin if FlagCOM=False then exit; {если модем еще не опрошен} Доильные установки монтаж. Шланги поливинилхлорида для доильных установок пм 1 42. | ![]() |
||
|
| |||||