Страница 5 из 12

Re: Управление изображением на мониторе через COM порт

Добавлено: Ср дек 22, 2010 21:15:38
FRIM@N
там очень много вкладок случайный поиск нужного компонента....это до нового года, форма это интерфейс будущей программы я так понял то емть то как она будет выглядеть? тогда там совершенно не нужны лишние компоненты --там только картинка, все остальное " за кадром" и почему не запускается код который я привел? что делаю неправильно?

Re: Управление изображением на мониторе через COM порт

Добавлено: Ср дек 22, 2010 21:21:29
Murlock
когда Вы с нуля запускаете дельфю, то она Вам делает полностью ГОТОВУЮ к пуску, но пустую программу(окно, которое можно масштабировать и закрыть) там нет ничего лишнего и удалять ничего нельзя. можно только дополнять. добавлять компоненты, менять им свойства
программировать события компонент TTimer, который Вам нужен, находится во вкладке System
компонент TTimer - скрытый. форме он только принадлежит. на форму можно накидать TShape, которые будут индикаторами.
код, который Вы приели, должен находиться внутри процедуры обработки события Timer1.OnTimer

Re: Управление изображением на мониторе через COM порт

Добавлено: Ср дек 22, 2010 21:33:37
FRIM@N
так...

Код: Выделить всё

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.
вот что происходит при создании нового проекта , свой код я должен буду писать сразу после этого это не редактировать и не удалять?
можно обойтись без формы?
объект в форме это визуализированный код?
в данном случае тайм будет описывать цикл опроса порта?

Re: Управление изображением на мониторе через COM порт

Добавлено: Ср дек 22, 2010 21:37:11
Murlock
можно, но не нужно. эт просто непривычно первое время. под виндой программа без окна - моветон. ну, и лишитесь некоторых удобств. событие Timer1.OnTimer вызывается с периодичностью Timer1.interval

Re: Управление изображением на мониторе через COM порт

Добавлено: Ср дек 22, 2010 21:39:06
Пухич
FRIM@N писал(а): можно обойтись без формы?
Можно, но зачем? Так удобнее и уже привычнее.

Re: Управление изображением на мониторе через COM порт

Добавлено: Ср дек 22, 2010 21:46:36
FRIM@N
ну это привычно человеку знающему,я вообще не понимаю зачем она нужна----в ней виде алгоритма выстраиваюся нужные компоненты?
я открываю дельфи создаю новый проект \далее нужно отправить на RTS 1 и опросить входы,потом это увидеть--произошел опрос или нет--как это сделать?дайте пару ориентиров

Re: Управление изображением на мониторе через COM порт

Добавлено: Ср дек 22, 2010 21:49:52
Murlock
Да, безусловно. дельфя сама дописывает за Вас целые куски кода и присваивает процедурам названия по-умолчанию. Вы уже положили на форму компонент Timer1?

Re: Управление изображением на мониторе через COM порт

Добавлено: Ср дек 22, 2010 21:56:46
FRIM@N
да,но не редактировал его,там маленькое окно ввода, как тудв записать код?

на скрине нужно поле ?

Re: Управление изображением на мониторе через COM порт

Добавлено: Ср дек 22, 2010 22:00:44
Murlock
выберите объект Timer1 на форме, перейдите на окно инспектора объектов, откройте вкладку событий (events) кликните поле OnTimer. В окне кода появится новая процедура, туда и вбивайте свой код. да, интервал по умолчанию(1000) - раз в 1000 мсек.

Re: Управление изображением на мониторе через COM порт

Добавлено: Ср дек 22, 2010 22:05:46
FRIM@N

Код: Выделить всё

var
  aa,e:world;

  aa:=0;
  base:=$3F8;


    port:=base+4;
    data:=2;
    outport(port,aa,data);
    sleep(10);
    port:=base+6;
    e:=inport(port) and 16;
    port:=base+4;
    data:=0
    outport(port,aa,Data);

я внес туда то что приводил выше, при запуске красной полосой выделяется "var" я так понимаю это ошибка?

интерваол установил 500 --полсекунды

Re: Управление изображением на мониторе через COM порт

Добавлено: Ср дек 22, 2010 22:08:16
Murlock
описания переменных делайте до первого begin в процедуре. переменная "port" не описана.

Re: Управление изображением на мониторе через COM порт

Добавлено: Ср дек 22, 2010 22:14:08
FRIM@N
т.е. вот это все до первого begin

Код: Выделить всё

 var
  aa,e:world;

  aa:=0;
  base:=$3F8;
  port:=base+4;
  data:=2;
  outport(port,aa,data);
  sleep(10);
  port:=base+6;
  e:=inport(port) and 16;
в таком случае подчеркивает строку "aa,e:world;"

всмысле переменная порт не описана?

Re: Управление изображением на мониторе через COM порт

Добавлено: Ср дек 22, 2010 22:16:21
Murlock
ныряем в личку?

Re: Управление изображением на мониторе через COM порт

Добавлено: Ср дек 22, 2010 22:57:54
Пухич
Так а где главный Бегин?

Re: Управление изображением на мониторе через COM порт

Добавлено: Чт дек 23, 2010 00:56:21
Murlock
разборки с Садатом...
:)))

Re: Управление изображением на мониторе через COM порт

Добавлено: Чт дек 23, 2010 01:32:12
Invisible-Shadow
Только меня смущает строка: "aa,e:world;"? Скорее всего там должно быть "aa,e:word;".

Re: Управление изображением на мониторе через COM порт

Добавлено: Чт дек 23, 2010 14:00:19
FRIM@N
Invisible-Shadow я исправился
\\начинаем все сначала без рывков,мне хочется понять что я делаю и зачем я делаю.а непросто копипастить

Код: Выделить всё

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    tmr1: TTimer;
    procedure tmr1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.tmr1Timer(Sender: TObject);
 var
aa,e:word;
port,base,data:word;
{.........}
aa:=0;
base:=$3F8;

begin
   port:=base+4;
   data:=2;
   outport(port,aa,data);
       sleep(10);
       port:=base+6;
       e:=inport(port) and 16;
    port:=base+4;
    data:=0;
    outport(port,aa,data);
end;
"Invisible-Shadow я исправился
\\начинаем все сначала без рывков,мне хочется понять что я делаю и зачем я делаю.а непросто копипастить

Код: Выделить всё

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;" эта часть общая независимо от программы ее трогать не нужно дельфи создает ее сама--так?

"var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.tmr1Timer(Sender: TObject);"  это то что было создано после модуля тайм то есть то что будет после этого написано будет повторятся с периодичностью которую можно задать?
________


"aa,e:word;
port,base,data:word;
{.........}
aa:=0;
base:=$3F8;" ввод переменных и указание порта с которым будет производится работа ?
_______

"port:=base+4;
   data:=2;"   запись в RTS единицы ?
______


"outport(port,aa,data);
       sleep(10);
       port:=base+6;
       e:=inport(port) and 16;
    port:=base+4;
    data:=0;"  чтение из порта  этой единицы --так?
______

"outport(port,aa,data);
end;

end." сброс порта и выход из программы

в той версии что была написана на паскале предусматривался вывод на экран результата , а в версии для дельфи где это ?
Сейчас при запуске быстро на доли секунды появляется небольшое окно потом подчеркивает красным "aa:=0;" что это такое аа?

http://compconnect.ru/2010/04/rabota-s-com-portom-v-delphi-pri-pomoshhi-winapi/


а в этой статье вообще все по другому(( кому верить?

Re: Управление изображением на мониторе через COM порт

Добавлено: Чт дек 23, 2010 15:30:42
Murlock
в этой статье правильно что по другому. нам описан интерфейс обмена данными через СОМ порты в виде файлового ВВ. Вам-же нужно управлять физическими состояниями регистров порта. это несколько разные вещи.
зы...
как-то медленно личка отправляется...

Re: Управление изображением на мониторе через COM порт

Добавлено: Чт дек 23, 2010 15:41:11
FRIM@N
а по остальным вопросам что скажете?

Re: Управление изображением на мониторе через COM порт

Добавлено: Чт дек 23, 2010 15:45:26
Murlock
FRIM@N писал(а):end;

end." сброс порта и выход из программы
не, цикл будет повторяться до закрытия окна программы.
FRIM@N писал(а):в той версии что была написана на паскале предусматривался вывод на экран результата , а в версии для дельфи где это ?
а как Вы хотите оформить вывод? тут большой простор для бурной деятельности.