Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.02.2011, 12:21
Аватар для Aggression
Aggression Aggression вне форума
Прохожий
 
Регистрация: 29.01.2011
Сообщения: 11
Репутация: 10
По умолчанию COM-порт, модем, Delphi

Всем добрый день. Писала программу, которая обращается к ком-порту с командами ATH0/ATH1, чтобы светодиод, подключенный к модемному разъему, выключался/включался. Цепочка спаяна, проверена на скачанной из интернета программе. Работает. Вывод -- моя программа гг. Подскажите, пожалуйста, что не так, ибо совсем еще новичок.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Port:THandle;
  TRBuf:PChar; 
nToWrite:DWord;
nWrite:DWord; 


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin
if  button1.Caption='Открыть' then
begin
  Port:=CreateFile(
    '\\.\COM3', 
    GENERIC_READ or GENERIC_WRITE,
    0,                            
    nil,                          
    OPEN_EXISTING,                
    FILE_ATTRIBUTE_NORMAL, 
    0 
  );
 if (port=INVALID_HANDLE_VALUE)
  then Application.MessageBox('Не хочет он','Еррор',MB_OK) 
  else begin
  Application.MessageBox('Порт открыт','Опен',MB_OK); 
  button1.Caption:='Закрыть';
end;   end   else
if button1.Caption='Закрыть' then
begin

Application.MessageBox('Порт закрыт','Клозе',MB_OK);
CloseHandle (port);
button1.Caption:='Открыть';

end;
  end;


procedure TForm1.Button2Click(Sender: TObject);

begin
if  button1.Caption='Открыть'
then Application.MessageBox('Порт закрыт, откройте его!','Еррор',MB_OK) else begin
if  button2.caption='ATH0' then
begin
TRBuf:=PChar(button2.caption); 
nToWrite:=length(TRBuf)+1; 
WriteFile(port,TRBuf^,nToWrite,nWrite,nil); 
 button2.caption:='ATH1';
 end else
 if  button2.caption='ATH1' then
 begin
TRBuf:=PChar(button2.caption); 
nToWrite:=length(TRBuf)+1; 
WriteFile(port,TRBuf^,nToWrite,nWrite,nil); 
button2.caption:='ATH0';
 end;
end;
end;

end.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:12.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025