Страница 6 из 12
Re: Управление изображением на мониторе через COM порт
Добавлено: Чт дек 23, 2010 16:02:28
FRIM@N
пока вывод просто вывести в окно строку как в паскале --что-бы увидеть что часть программы работает
Код: Выделить всё
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
function InPort(PortAddr:word): byte;
{$IFDEF WIN32}
assembler; stdcall;
asm
mov dx,PortAddr
in al,dx
end;
{$ELSE}
begin
Result := Port[PortAddr];
end;
{$ENDIF}
procedure OutPort(PortAddr:
word; Databyte: byte);
{$IFDEF WIN32}
assembler; stdcall;
asm
mov al,Databyte
mov dx,PortAddr
out dx,al
end;
{$ELSE}
begin
Port[PortAddr] := DataByte;
end;
{$ENDIF}
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
var
e:word;
port,base,data:word;
begin
base:=$3F8;
port:=base+4;
data:=2;
outport(port,data);
sleep(10);
port:=base+6;
e:=inport(port) and 16;
port:=base+4;
data:=0;
outport(port,data);
end;
end.
e:=inport(port) and 16; прочитал единицу из CTS как это увидеть на экране?
на паскале для опроса 3 кнопок 25 строк
здесь за полсотню ради 1 кнопки -- чем же проще дельфи?
Re: Управление изображением на мониторе через COM порт
Добавлено: Чт дек 23, 2010 16:06:51
Murlock
причина: WIN32.
зато какие там можно делать графики/диаграммы!. пара движений мышью, и готово.
Re: Управление изображением на мониторе через COM порт
Добавлено: Чт дек 23, 2010 21:17:32
Пухич
FRIM@N писал(а):
e:=inport(port) and 16; прочитал единицу из CTS как это увидеть на экране?
Как угодно - вызвать ShowMessage, вывести в Edit или Label. Сонм вариантов.
Re: Управление изображением на мониторе через COM порт
Добавлено: Чт дек 23, 2010 22:20:05
FRIM@N
Пухич попробовал все перечисленное ничего не вышло
var e: String;
begin
Edit1.Text:=присваиваем текст;
e:=Edit1.Text;
end;
Re: Управление изображением на мониторе через COM порт
Добавлено: Чт дек 23, 2010 22:28:21
Murlock
не так.
Edit1.Text:=присваиваем текст;
надо:
Edit1.Text:='присваиваем текст';
Re: Управление изображением на мониторе через COM порт
Добавлено: Чт дек 23, 2010 22:35:00
FRIM@N
не меняет картины
Re: Управление изображением на мониторе через COM порт
Добавлено: Чт дек 23, 2010 22:36:58
Murlock
А Edit1 предварительно добавлен в форму?
Re: Управление изображением на мониторе через COM порт
Добавлено: Чт дек 23, 2010 22:40:49
FRIM@N
в какую форму? вы говорите на другом языке,говорите полными предложениями
Re: Управление изображением на мониторе через COM порт
Добавлено: Чт дек 23, 2010 23:32:31
Пухич
Ну елки, Фриман, чтобы можно было присвоить свойству объекта значение, надо его создать. Самый простой способ - кинуть на форму ("окно программы") элемент типа TEdit.
Re: Управление изображением на мониторе через COM порт
Добавлено: Чт дек 23, 2010 23:42:09
FRIM@N
елки не елки и здесь может уместна басня про мартыщку и очки , но я не понимаю.подчеркивает var e: String;
там во вложении код паскаля , графика, быстро быстро выводитдосовское окно в нем текст рассмотреть нет возможности.слишком быстро выводит и выбрасывает обратно в редактирование
begin
base:=$3F8;
port:=base+4;
data:=2;
outport(port,data);
sleep(10);
port:=base+6;
e:=inport(port) and 16;
port:=base+4;
data:=0;
end;
procedure TForm1.edt1Change(Sender: TObject);
begin
var e: String;
begin
Edit1.Text:="присваиваем текст";
e:=Edit1.Text;
end.
Re: Управление изображением на мониторе через COM порт
Добавлено: Пт дек 24, 2010 00:39:38
Пухич
FRIM@N писал(а):
там во вложении код паскаля , графика, быстро быстро выводитдосовское окно в нем текст рассмотреть нет возможности.слишком быстро выводит и выбрасывает обратно в редактирование
Ессна. Вставь ожидание Ридлайном.
но я не понимаю.подчеркивает var e: String;
А почему Бегин перед Вар?
Re: Управление изображением на мониторе через COM порт
Добавлено: Пт дек 24, 2010 12:22:52
FRIM@N
Ессна. Вставь ожидание Ридлайном.
дык он там стоит, и в окне которое мелькает текст,а должен быть белый прчмоугольник
Код: Выделить всё
procedure TForm1.edt1Change(Sender: TObject);
var e: String;
begin
Edit1.Text:='БУГАГА';
e:=Edit1.Text;
end;
процедура я так понял начинает любое действие
вар описывает переменные
и меня терзают смутные сомния что эти 2 строки нужно поменять местами
Edit1.Text:='БУГАГА';
e:=Edit1.Text;
потому что сначала Edit1.Text присваивается текст
а потом
оно присваиваетсч переменной
в любом случае выделяет
первую строку после бегин
Re: Управление изображением на мониторе через COM порт
Добавлено: Пт дек 24, 2010 15:05:21
Murlock
FRIM@N писал(а):Edit1.Text:='БУГАГА';
e:=Edit1.Text;
Проверьте, может вместо
Edit1 нужно писать Edt1, поскольку процедура называется
edt1Change
Re: Управление изображением на мониторе через COM порт
Добавлено: Пт дек 24, 2010 15:10:15
FRIM@N
он тогда в таймер упирается,
procedure TForm1.tmr1Timer(Sender: TObject);
в форме он присутствует
кстати если цикл тайм будет выполнятся постоянно он же не перейдет к дальнейшим действия -или перейдет7
Re: Управление изображением на мониторе через COM порт
Добавлено: Пт дек 24, 2010 15:30:56
Murlock
у нас несколько разные дельфи. они по-разному называют объекты и процедуры по умолчанию. правильное название объекта можно подсмотреть в ячейке name инспектора объектов. это ключевое поле.
Re: Управление изображением на мониторе через COM порт
Добавлено: Пт дек 24, 2010 15:46:31
Engineer_Keen
Murlock писал(а):у нас несколько разные дельфи. они по-разному называют объекты и процедуры по умолчанию.
Скорее всего просто в одном месте случайно буква i затерлась, в каком можно понять когда при компиляции ошибка вылезет.
Кстати, во время выполнения строки "out dx,al" ошибка "Priveleged instruction" не вылезает?
Re: Управление изображением на мониторе через COM порт
Добавлено: Пт дек 24, 2010 15:51:13
FRIM@N
у нас несколько разные дельфи. они по-разному называют объекты и процедуры по умолчанию. правильное название объекта можно подсмотреть в ячейке name инспектора объектов. это ключевое поле.
насчет эдит вы были правы,но тайм правильно назван
Engineer_Keen
Re: Управление изображением на мониторе через COM порт
Добавлено: Пт дек 24, 2010 15:53:44
Murlock
Engineer_Keen писал(а):Кстати, во время выполнения строки "out dx,al" ошибка "Priveleged instruction" не вылезает?
будет вылазить. скорее всего процедуры inport и outport - внешние и включены в драйвер работы с портами, или в какую нибудь сопутствующую dll. надо читать документацию.
FRIM@N писал(а):он тогда в таймер упирается,
procedure TForm1.tmr1Timer(Sender: TObject);
в форме он присутствует
кстати если цикл тайм будет выполнятся постоянно он же не перейдет к дальнейшим действия -или перейдет7
это взято из определения объекта. какое написание верное?
procedure
Timer1Timer(Sender: TObject);
"дальнейшие действия" могут выполняться параллельно и независимо.
Re: Управление изображением на мониторе через COM порт
Добавлено: Пт дек 24, 2010 16:01:33
FRIM@N
та статья откуда я все почерпнул
в поле name стоит tmr1
Re: Управление изображением на мониторе через COM порт
Добавлено: Пт дек 24, 2010 16:03:38
Murlock
такая работа под WXP невозможна.
а что находится на самом верху в описании class ?