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, SmallChange=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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|