Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы информатики и программир...docx
Скачиваний:
25
Добавлен:
12.11.2019
Размер:
6.53 Mб
Скачать

8.1.2. Секундомер (Delphi)

Составим программу вывода секундомера (рис. 8.1.2.1).

Рис. 8.1.2.1. Вид формы

Разместим компоненты на форме. Зададим для таймера значение свой­ст­ву Interval, например, 100 миллисекунд (точность секундомера).

Приведем тексты процедур программы.

Var // раздел переменных модуля Unit1

h,m:Integer; i,s:real; // внешние переменные

procedure TForm1.Button1Click(Sender: TObject); // кнопка “Старт”

begin Timer1.Enabled:=True; // запускаем таймер

i:=Timer1.Interval/1000; // значение точности измерения

Button1.Enabled:=False; Button2.Enabled:=True; Button3.Enabled:=False;

end;

procedure TForm1.Button2Click(Sender: TObject); // кнопка “Финиш”

begin Timer1.Enabled:=False; // останавливаем таймер

Button1.Enabled:=True; Button2.Enabled:=False; Button3.Enabled:=True;

end;

procedure TForm1.Button3Click(Sender: TObject); // кнопка “Сброс”

begin h:=0;m:=0; s:=0; // сброс значений счетчиков часов, минут, секунд

label1.Caption:=IntToStr(h); label2.Caption:=IntToStr(m);

label3.Caption:=FloatToStr(s);

Button1.Enabled:=True; Button2.Enabled:=False; Button3.Enabled:=False;

end;

procedure TForm1.Button4Click(Sender: TObject); // кнопка “Выход”

begin Form1.Close end;

procedure TForm1.Timer1Timer(Sender: TObject); // обработка таймера begin s:=s+i; // увеличение числа секунд

if s>=60 then begin s:=0; m:=m+1; if m>=60 then begin m:=0;h:=h+1; end end;

label1.Caption:=IntToStr(h); label2.Caption:=IntToStr(m);

label3.Caption:=FloatToStr(s); // вывод числа часов, минут и секунд

end;

Для формы в качестве обработчика события OnActivate укажем имя процедуры Button3Click ‑ обработки события OnClick кнопки Сброс.

8.1.3. Бегущая строка (Delphi)

Создадим программу вывода бегущей строки, которая выводится в заголовке формы (рис. 8.1.3.1).

Рис. 8.1.3.1. Вид формы с бегущей строкой

Разместим компоненты: Timer1 (Enabled=False, Interval=100), Edit1 (по­ле для ввода текста бегущей строки), ScrollBar1 (регулятор скорости вы­вода строки со свой­ствами (п. 2.3.6.1): Min=10, Max=1000, Position=10, LargeChange=20, SmallChange=10) и кнопки управления.

Приведем тексты процедур программы.

procedure TForm1.Button1Click(Sender:TObject);//кнопка Начать/Законч.

Begin

if Button1.Caption= 'Начать' then // кнопка “Начать”

begin Button1.Caption:= 'Закончить'; // смена наименования кнопки

Edit1.Enabled:= False; Form1.Caption:= Edit1.Text + ' ';

Timer1.Enabled:= True; end

else // кнопка “Закончить”

begin Button1.Caption:= 'Начать'; // смена наименования кнопки

Edit1.Enabled:=True; Timer1.Enabled:= False;Form1.Caption:=''; end;

end;

procedure TForm1.Button2Click(Sender: TObject); // кнопкаВыход

begin Close; end;

procedure TForm1.Timer1Timer(Sender: TObject); // таймер

begin Timer1.Interval:= ScrollBar1.Min+ScrollBar1.Max-ScrollBar1.Position;

Form1.Caption:=Copy(Form1.Caption, 2, (Length(Form1.Caption)-1)) +

Copy (Form1.Caption,1,1);

end;

8.1.4. Рисование на экране (Delphi)

Составить программу для рисования мышкой при нажатой ле­вой кнопке мышки (рис. 8.1.4.1) (автор программы Е. Виноградова).

Рис. 8.1.4.1. Форма для рисования

Стирание линии рисунка произво­дит­ся рисованием линии цветом фона формы при нажатой правой кнопке мыши. Для формы установим свойство WindowState=wsMaximized (форма занимает весь экран). Размес­тим на форме три кнопки и панель Panel1, на которой разместим все осталь­ные объекты. Цвет карандаша или экрана устанавливается щел­ч­ком мыш­ки по текстовому полю Edit1, которое правее текста “Цвет”. Зависимые пе­ре­ключатели RadioButton1 и RadioButton2 (п. 2.3.4.5) устанавливают режим наст­ройки цвета ка­ран­даша или формы соот­ветственно. Настройка цвета уста­нав­ливается интен­сивностью по трем его компонентам: синего (поле Edit2), зеленого (Edit3) и красного (Edit4) цве­тов. Ин­тен­сивность задается чис­лом от 0 до 255. Интенсивность крас­но­го цвета может задаваться гори­зон­тальной полосой прокрутки ScrollBar1 (п.2.3.6.1) со свой­ствами: Min=0, Max=255, LargeChange=20, Small­Change=4. Интенсивность зе­­леного цвета может задаваться ползунком TrackBar1 (п.2.3.6.2.] со свой­ствами: Min=0, Max=255, PageSize=2 (большое смещение), Orientation=trHorizontal (го­ризонтальная ориентация), TickMarks=tmBottomRight (шка­ла под ползунком), Frequency=10 (размер одного деления шкалы). Интенсивность синего цвета задается кнопкой-счет­чиком UpDown1 (п. 2.3.6.3) со свойствами: Min=0, Max=255, Increment=4.

Ширина выводимой линии задается значением поля с комбинирован­ным списком ComboBox1 (п. 2.3.3.2) со свойством Items (значения 1-20). Внизу формы расположим строку статуса StatusBar1 (п.2.3.1.3) для вывода коор­динат указателя мышки со свойством SimplePanel=True.

Для формы установим свойство WindowState=wsMaximized (вывод формы на весь экран), cвойства для остальных объектов очевидны.

Кнопкой NewForm создадим новую форму Form2 с полем Memo1 (п.2.3.2.3) (текст инструкции по использованию программы) и с кнопкой Выход. Командой File/Use Unit добавим модуль Unit2 к модулю Unit1.

Приведем тексты процедур обработки событий.

procedure TForm1.Button1Click(Sender: TObject); // кнопка “Очистить

begin form1.color:=clwhite; // очистка экрана

form1.color:=clBtnFace; // установка цвета фона формы

scrollbar1.position:=0; trackbar1.position:=0; updown1.position:=0;

edit2.text:=inttostr(updown1.position); radiobutton2.checked:=false;

end;

procedure TForm1.Button2Click(Sender: TObject); // кнопка “Справка”

begin form2.show; end;

procedure TForm1.Button3Click(Sender: TObject); // кнопкаВыход

begin close; end;

procedure TForm1.UpDown1Changing(Sender: TObject;