Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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;

Рисование на экране (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/UseUnit добавим модуль 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;

Var AllowChange: Boolean); // изменение счетчика UpDown1

begin {присвоение текстовому полю номера счетчика}

edit2.text:=inttostr(updown1.position); {формирование цвета из значений интенсивностей красного, зеленого и синего составляющих цветов}

edit1.color:=rgb(scrollbar1.position,trackbar1.position,strtoint(edit2.text));

end;

Procedure TForm1.ScrollBar1Change(Sender:TObject);// измен. ScrollBar1

begin edit4.text:=inttostr(scrollbar1.position);

edit1.color:=rgb(scrollbar1.position,trackbar1.position,strtoint(edit2.text));

end;

Procedure TForm1.TrackBar1Change(Sender: TObject); // измен. TrackBar1

begin edit3.text:=inttostr(trackbar1.position);

edit1.color:=rgb(scrollbar1.position,trackbar1.position,strtoint(edit2.text));

end;

Procedure TForm1.FormActivate(Sender: TObject); // активизация формы

begin edit2.text:=’0’; edit3.text:=’0’; edit4.text:=’0’; // обнуление

edit1.color:=rgb(scrollbar1.position,trackbar1.position,strtoint(edit2.text));

combobox1.text:=inttostr(1); Radiobutton1.checked:=true;

end;

Procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer); // перемещение указателя мышки и вывод линии

Begin {отображение текущих координат курсора на строке статуса}

StatusBar1.SimpleText:='X='+IntToStr(X)+ ',Y='+IntToStr(Y);

{установка ширины пера из выбранного значения списка}

Form1.Canvas.Pen.Width:=strtoint(ComboBox1.text);

if ssLeft in Shift then // нажата левая кнопка мыши

begin Form1.Canvas.Pen.Color:=Edit1.Color; // установка цвета пера

form1.canvas.lineto(x,y); {рисование линии } end;

if ssright in Shift then // нажата правая кнопка мыши

begin form1.canvas.pen.color:=form1.color; // цвет пера=цвету формы

form1.canvas.lineto(x,y);{рисование линии текущим цветом формы} end;

end;

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...