И так, в разделе О проекте Вы научились записывать данные в порт с помощью кнопки. Однако, если с 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------------------------------------
|