Страница 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 писал(а):в той версии что была написана на паскале предусматривался вывод на экран результата , а в версии для дельфи где это ?
а как Вы хотите оформить вывод? тут большой простор для бурной деятельности.