Страница 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 ?