Жмём Ctrl+C и записываем дальше:
Code: |
procedure TForm1.Connect; begin ComString := 'COM2'; ComSpeed := 19200; if OpenCOMPort = true then //Открываем порт… if SetupCOMPort = true then //…и конфигурируем его Memo1.Lines.Add('Подключились...'); Sleep(1500); //засыпаем на полторы секунды чтобы дать время на соединение end;
procedure TForm1.Disconnect; begin CloseHandle(ComFile); Memo1.Lines.Add('Отключились.'); end;
function TForm.OpenCOMPort: Boolean; var DeviceName: array[0..80] of Char; Device: string; begin Device := ComString; StrPCopy(DeviceName, Device); ComFile := CreateFile(DeviceName, GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if ComFile = INVALID_HANDLE_VALUE then begin Result := False; Status := Result; end else begin Result := True; Status := Result; end;
end;
function TForm1.SetupCOMPort: Boolean; const RxBufferSize = 256; TxBufferSize = 256; var DCB: TDCB; Config: string; CommTimeouts: TCommTimeouts; begin Result := True; if not SetupComm(ComFile, RxBufferSize, TxBufferSize) then Result := False; if not GetCommState(ComFile, DCB) then Result := False;
Config := 'baud=' + IntToStr(ComSpeed) + ' parity=n data=8 stop=1'; //Устанавливаем скорость if not BuildCommDCB(@Config[1], DCB) then Result := False; if not SetCommState(ComFile, DCB) then Result := False;
with CommTimeouts do begin ReadIntervalTimeout := 0; ReadTotalTimeoutMultiplier := 0; ReadTotalTimeoutConstant := 1000; WriteTotalTimeoutMultiplier := 0; WriteTotalTimeoutConstant := 1000; end; if not SetCommTimeouts(ComFile, CommTimeouts) then Result := False; end;
Теперь два раза щёлкаем по CheckBox и записываем код:
procedure TForm1.CheckBox1Click(Sender: TObject); begin if CheckBox1.Checked then Connect else Disconnect; end;
В событии формы OnDestroy записываем:
procedure TForm1.FormDestroy(Sender: TObject); begin if Status = true then //При выходе из программы отключаемся Disconnect; end; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!