Студопедия — With canvas do
Студопедия Главная Случайная страница Обратная связь

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

With canvas do






Begin

moveto(x,0);

lineto(x,height);

end;

end;

2. Запускають команду RUN і отримують запрограмовану вертикальну лінію (рисунок 13).

3. Здійснюють спробу «витерти» лінію з допомогою кнопки < ґумка > (рисунок 14), рухаючи нею по вікні застосунку. Переконуються про неможливість цього прийому, оскільки програмно відображена вертикаль прописана в тілі процедури FormPaint (вона є оброблювачем події OnPaint), яка автоматично відбувається за будь - яких візуальних змін на формі, а значить і під-час переміщення підлеглого формі об’єкту – Button2.

4.З допомогою мишки виконують розтягування вікна прикладної програми з відображеною на ній вертикальною лінією (рисунок15) і переконуються у тому, що вказана пряма продовжує існувати в межах від верху до низу форми оскільки це забезпечено параметром Y=0 процедури moveto(x,0) і параметром

Рисунок 13 - на вікні застосунку відображається вертикальна лінія відразу з появою вікна програми.

Y= height (Y отримав значення висоти форми) процедури lineto(x,height).

5. Доповнюють програмний код оброблювача події FormPaint, так щоб кількість вертикальних ліній задавалося у тілі програми, як змінна величина. У нижче приведеному коді ця величина позначена ідентифікатоором n, якому для прикладу, відразу надано значення 10.

Рисунок 14 - вертикальна лінія не стирається з допомогою «гумки»

Рисунок 15 - розтяжка вікна застосунку вліво і вниз.

6. До коду обробника події FormPaint додають оператор циклу, який забезпечуватиме багаторазовий виклик методів moveto(x,0) і lineto(x,height). У тілі підпрограми ця частина підкреслена.

procedure TForm2.FormPaint(Sender: TObject);

Var

i,d,x,n:integer;

Begin

n:=10;

x:=trunc(width/n);

d:=х;

for i:= 1 to n do

begin

with canvas do

begin

moveto(x,0);

lineto(x,width);

x:=x+d;

end;

end;

end;

7. Здійснюють команду RUN і спостерігають за появою 9 вертикальних прямих ліній на вікні застосунку (рисунок 16). Їх є 9, а не 10. Це є наслідком застосування функції trunc(width/n), яка відкидає дробову частину від результату виконання оператора ділення width/n. Рівномірність відстаней між лініями забезпечна за рахунок постійного кроку d. Йому ж надане значення x:=trunc(width/n) – відступу першої вертикалі від лівого краю форми.

8. Задля перевірки того, як поводитимуть себе графічні об’єкти під час змін розмірів вікна прикладної програми, його розтягають за допомогою мишки і переконуються в тому, що дійсно відбулося викривлення (рисунок 17) вертикальних ліній – повне чи часткове, або ж лінії розміщені не повсюдно по площині вікна.

Рисунок 16 - у вікні застосунку автоматично відображаються девять вертикальних ліній.

9. Клацають по копці < витерти все > і переконуються в тому, що оновлення вертикальних ліній у збільшеному вікні застосунку відбулося (рисунок 18). Це сталося тому, що процедура form2.Repaint фактично викликає подію OnPaint, Тим самим відбувається перемальовування самої форми і того, що на ній відображено згідно з програмним кодом записаним у оброблювачі цієї події- процедурі FormPaint. Причому відображення відбувається або згідно зі статично - запрограмованими значеннями властивостей вказаних у інспекторі об’єктів, або ж якщо б ці значення надавалися б динамічно в коді процедури FormPaint. Зауважують, що статично-запрограмовані значення властивостей Button1.Left, Button2.Left, Button2.Top, Button1.Width і т.д. на рисунках 17 і 18 залишаються тими ж.

 

Рисунок 17 - викривлення вертикальних ліній у вікні застосунку після його розтягування з допомогою мишки.

Рисунок 18 - ліквідація викривлень вертикальних ліній у вікні застосунку після клацання на кнопку <витерти все>;

10. Доповнюють програмний код обробника події FormPaint фрагментами, що стосуються відображення горизонтальних ліній - вони підкреслені у нижче наведеному програмному тексті.

procedure TForm2.FormPaint(Sender: TObject);

var i,d,x, y, n:integer;

Begin

n:=10;

x:=trunc(width/n);

y:=x;

d:=x;

for i:= 1 to n do

Begin







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



Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Мотивационная сфера личности, ее структура. Потребности и мотивы. Потребности и мотивы, их роль в организации деятельности...

Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...

Внешняя политика России 1894- 1917 гг. Внешнюю политику Николая II и первый период его царствования определяли, по меньшей мере три важных фактора...

Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор, если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...

Огоньки» в основной период В основной период смены могут проводиться три вида «огоньков»: «огонек-анализ», тематический «огонек» и «конфликтный» огонек...

Упражнение Джеффа. Это список вопросов или утверждений, отвечая на которые участник может раскрыть свой внутренний мир перед другими участниками и узнать о других участниках больше...

Studopedia.info - Студопедия - 2014-2024 год . (0.013 сек.) русская версия | украинская версия