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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.10.2013, 19:51
nazarmyua nazarmyua вне форума
Прохожий
 
Регистрация: 31.10.2013
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию работа с LPT портом

Я написал программу для работы с ЛПТ она работает, но мне необходимо чтобы при нажатии кнопки сигнал не только ссылался на ногу но и через 3 мс исчезал

вот мой вариант но сигнал только направляется и не исчезаєт
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
d0:=1;
sleep(30);
d0:=0;
end;
Админ: Пользуемся тегами для оформления кода!

Последний раз редактировалось Admin, 31.10.2013 в 20:42.
Ответить с цитированием
  #2  
Старый 31.10.2013, 20:51
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Это чо вообще за код? Он ну никаким местом с задачей не сходится.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 31.10.2013, 20:56
nazarmyua nazarmyua вне форума
Прохожий
 
Регистрация: 31.10.2013
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию ето часть. вот весь...

Код:
unit Unit1;

interface

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

 function Inp32(PortAdr: word): byte; stdcall; external 'inpout32.dll';
 function Out32(PortAdr: word; Data: byte): byte; stdcall; external 'inpout32.dll';

type
  TForm1 = class(TForm)
    StatusBar1: TStatusBar;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Timer1: TTimer;
    XPManifest1: TXPManifest;
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
var d0,d1,d2,d3:byte;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Out32(888, d0+d1+d2+d3);
form1.StatusBar1.Panels[0].Text := 'Порт 888:' + inttostr(Inp32(888));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
d0:=1;
Sleep(3000);
d0:=0;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
d1:=2;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
d1:=0;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
d2:=4;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
d2:=0;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
d3:=8;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
d3:=0;
end;

end.
В таком виде он не работаєт при нажатиє на button1

Последний раз редактировалось nazarmyua, 31.10.2013 в 21:00.
Ответить с цитированием
  #4  
Старый 31.10.2013, 21:36
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Лажа, а не код.

Код:
Out32(порт, значение);
Sleep(3);
Out32(порт, 0);
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #5  
Старый 31.10.2013, 21:59
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

добавлю, в семерке работать не будет.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #6  
Старый 01.11.2013, 01:35
nazarmyua nazarmyua вне форума
Прохожий
 
Регистрация: 31.10.2013
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Спасибо

Спасибо. Очень помогло. Я переписал программу теперь остался один вопрос как сделать аварийную остановку.
Код:
unit Unit1;

interface

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

 function Inp32(PortAdr: word): byte; stdcall; external 'inpout32.dll';
 function Out32(PortAdr: word; Data: byte): byte; stdcall; external 'inpout32.dll';

type
  TForm1 = class(TForm)
    StatusBar1: TStatusBar;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;

    Timer1: TTimer;
    XPManifest1: TXPManifest;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
   // procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
var d0,d1,d2,d3,G,a,b,c,d:byte;
I,k:integer;
r,l:real;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Out32(888, d0+d1+d2+d3);
form1.StatusBar1.Panels[0].Text := 'Порт 888:' + inttostr(Inp32(888));
if r=1 then begin Label4.Caption:='Вправо' end;
if l=1 then begin Label4.Caption:='Вліво' end;
//Label3.Caption:=FloatToStr(G);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
r:=1;
l:=0;
k:=1;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
l:=1;
r:=0;
k:=1;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
k := StrToInt(Edit1.Text);

if r=1 then
begin
a:=1;
b:=4;
C:=2;
d:=8;
end;

if l=1 then
begin
a:=8;
b:=2;
C:=4;
d:=1;
end;
G:=0;

While G < k do
  begin
G:=G+1;
Out32(888, a);
sleep (1000);
Out32(888, 0);
Out32(888, b);
sleep (1000);
Out32(888, 0);
Out32(888, c);
sleep (1000);
Out32(888, 0);
Out32(888, d);
sleep (1000);
Out32(888, 0);
end;

end;

end.
Ответить с цитированием
  #7  
Старый 01.11.2013, 07:48
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
if условие then
break
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter