Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Обработка нажатия кнопки




В создаваемой программе вручную придется запрограммировать фактически только одно событие — нажатие на кнопку Закрасить. Чтобы создать первоначально пустую подпрограмму, вызываемую при нажатии на эту кнопку, надо просто дважды щелкнуть на ней мышкой. При этом Delphi 4 вызовет редактор, автоматически сгенерирует нужный текст и разместит курсор именно в том месте, где можно начать описание нужного алгоритма.

procedure TForml.ButtonlClick(Sender: TObject);

begin

end;

 

Обработчик события Нажатие на кнопку Button 1 — это обычная подпрограмма, метод класса TForm 1 (этот класс описывает главную форму Form 1). Единственный параметр Sender характеризует источник сообщения о случившемся событии. Его практически всегда можно игнорировать.

Алгоритм работы данного метода будет следующим. Первоначально надо убедиться, что длина введенной в поле Editl строки равна б символам и каждый из этих символов — шестнадцатеричная цифра. Если это не так, то выполнение обработчика надо сразу завершить (для этого предназначена стандартная процедура Паскаля Exit, мгновенно завершающая работу текущей подпрограммы).

Если же введенные данные корректны, их надо:

1. Преобразовать в промежуточную строку в формате $00хххххх, где хххххх — шесть введенных цифр.

2. Эту строку преобразовать в число, которое будет рассматриваться как цвет.

3. Установить новый цвет круга на основании полученного значения.

Содержимое поля ввода Editl хранится в виде строки в его свойстве Text. Доступ к этому свойству осуществляется с помощью конструкции Editl Text.

Длина строки определяется стандартной функцией length() со строкой в качестве параметра.

Стандартная функция Pos(), получая две строки как аргументы, проверяет, не содержится ли первая строка во второй, и если содержится, то возвращает номер начальной позиции. В противном случае Pos() возвращает ноль. Эта функция потребуется для определения, все ли символы во введенной строке допустимы.

Стандартная функция UpperCase() преобразует строку к верхнему регистру. Такое преобразование требуется, чтобы разрешить ввод значений цветов на любых регистрах.

Преобразование строки в число выполняет стандартная функция StrTolnt().

Объект Shape"! имеет свойство Brush (Кисть для фона), которое, в свою очередь, имеет вложенное свойство Color (Цвет заливки). Его и надо в конечном счете изменить. Как только это произойдет, цвет круга в окне автоматически изменится на новый.

procedure TForml.ButtonlClick(Sender: TObject);

var i: integer;

s: string;

begin

// если длина введено строки не равна 6,

// то закончить работу

if length(Editl.Text)<> 6 then exit;

// в локальную переменную s заносится строка,

// содержащая допустимые символы

s := "0123456789ABCDEF";

// проверяется каждый символ во введенной строке

for i := 1 to 6 do

// если очередной символ не найден в строке s, значит,

// он недопустим, и работу требуется прекратить

if pos(Uppercase(Editl.Text[i]), s) = 0 then exit;

// все нормально — в переменной s

// готовим промежуточную строку

s := "$00"+Editl.Text;

// Устанавливаем значение цвета заливки круга равным

// числу, преобразованному из строки в переменной s

Shapel.Brush.Color := StrToInt (s);

end;


Поделиться:

Дата добавления: 2015-05-08; просмотров: 56; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты