Шаг1. Поля ввода номера порта и данных.
____________________________________


И так, в разделе О проекте Вы научились записывать данные в порт с помощью кнопки. Однако, если с 888 регистра порта можно числа от 0 до 255, тогда, очевидно, на каждое значение кнопок не настачишся. Для этого отлично подходят два стандартных элемента управления : Edit - для ввода данных 0…255 и ComboBox - для переключения номера порта. Что они делают Вы видели в демонстрационном примере, теперь же разберёмся как всё это работает.

Расположите на форме Edit, ComboBox и кнопку Button. Цель - при щелчке по кнопке происходит запись в тот порт, значение которого установлено в ComboBox, и запись числа введеного в поле Edit.

Щёлкаем по кнопке и втавляем следующий код:

procedure TForm1.Button1Click(Sender: TObject);

Var

b : byte; //--переменная, для данных

pa : integer; //--переменная будет хранить номер порта

begin

if (Edit1.Text <> '') and //--если в поле ввода данных не нет ничего

(ComboBox1.Text <> '') then //-- и не не выставлен номер порта, тогда начать

begin

pa := StrToInt(ComboBox1.Text); //-- текст (номер порта) преобраз. в числа и присв.- pa

b := StrToInt(Edit1.Text); //--тоже делаем с данными, присваиваем - b

PortWriteByte((pa),(b)); //-- пишем в порт

end else

ShowMessage ('Введите данные'); //-- иначе сообщение

end;

 

Экспериментируем с чтением данных.

Устанавливаем на форму Timer и CheckBox. Свойство Enabled устанавливаем в false и вставляем следующие коды:

 


procedure TForm1.Timer1Timer(Sender: TObject);

Var

pa : integer;

b : byte;

begin

pa := StrToInt(ComboBox1.Text);

b :=( PortReadByte(pa) ) ; //-- читаем

Form1.Caption := 'в порту - ' + IntToStr(b); //-- выводим прочитанное в заголовок

if b = 64 then //-- если в порту число = 64 тогда

begin

Timer1.Enabled := false; //-- отключаем таймер

CheckBox1.Checked := false; //-- убираем галочку

ShowMessage ('Обнаружено число 64'); //-- сообщаем

end;

end;



procedure TForm1.CheckBox1Click(Sender: TObject);

begin

if CheckBox1.Checked = true then //-- включаем – отключаем таймер

Timer1.Enabled := true else

Timer1.Enabled := false;

end;

 



Скачайте этот пример (исходник 11 kb) - Primer2.zip , созданный на основе шаблона.
Шаг2. Взаимодействие органов управления - пример PortDemoControl

-------------------------------------------- 17.04.04------------------------------------

О проекте
Скачать шаблон - Shablon.zip (6 kb)
Скачать исходник PortDemoControl + EXE файл - Primer1.zip (210 kb)

******

Валерий Ковтун US4LEH
..

О сайте

Вернуться на главную страницу
Программа PortControl V3+
Программа PinRegistrator D1+


Гостевая книга
Обратная связь