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

Оформление проекта

Сортировка массива | Метод обмена | Система предварительной продажи билетов | Рисование в таблице TDrawGrid | Прорисовка изображений в списке TListBox | Глава 7 | Просмотр текстовых файлов | Добавление и удаление записей в файл и из файла | Просмотр видеофильма с использованием | Простейшая мультипликация |


Читайте также:
  1. I.Выбор и обоснование темы проекта
  2. III. Этапы реализации проекта
  3. Административное задержание, определение, порядок производства, сроки, процессуальное оформление.
  4. АКТУАЛЬНОСТЬ ПРОЕКТА
  5. Актуальность проекта.
  6. АРЕСТ ТОВАРОВ, ТРАНСПОРТНЫХ СРЕДСТВ И ИНЫХ ВЕЩЕЙ: ПОНЯТИЕ, СУБЪЕКТЫ, ОСНОВАНИЕ, ПРОЦЕССУАЛЬНОЕ ОФОРМЛЕНИЕ.
  7. Вехи проекта

11.1.1. Проект «Бегущая строка»

Постановка задачи. Создайте проект, в окне которого в стиле бегущей строки прокручивается битовый образ (рис. 54).

 

Рис. 54. Проект «Бегущая строка»

 

Реализация. Положите на форму таймер и кнопку для выхода. Подготовьте битовый образ какого-нибудь текста и сохраните его как растровый рисунок и как файл ресурса. Код приложения приведен полностью.

 

unit unit1;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls;

 

type

TForm1 = class(TForm)

Timer: TTimer;

Button1: TButton;

procedure FormCreate(Sender: TObject);

procedure TimerTimer(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

{$R hbaner.res} // файл ресурсов, в котором находится

// битовый образ. Его можно создать при помощи Image Editor

 

{ Высота битового образа в файле ресурсов

не может быть меньше 32 пикселей }

 

const

WB = 350; // ширина области вывода картинки на форме

TP = 573; // период рисунка бегущей строки

 

var

pic:TBitMap; // картинка − бегущая строка

sRect,dRect: TRect; // область источник

t: integer;

 

procedure TForm1.FormCreate(Sender: TObject);

begin

pic:= TBitMap.Create;

pic.LoadFromResourceName(HInstance,'BANER2');

// загрузили картинку

dRect:= Bounds(0,0,WB,pic.Height); // область, в которой

// бежит строка

sRect:= Rect(0,0,TP,pic.Height); // отображаемая в данный

// момент область рисунка

t:=0;

end;

 

// Сигнал от таймера

procedure TForm1.TimerTimer(Sender: TObject);

begin

Canvas.CopyRect(dRect,pic.Canvas,sRect);

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

inc(t);

if t = TP // длина ролика

then t:=0;

sRect:= Bounds(t,0,WB,pic.Height); // следующий кадр

end;

 

// Щелчок на кнопке OK

procedure TForm1.Button1Click(Sender: TObject);

begin

Form1.Close;

end;

end.

11.1.2. Проект «Титры»

Постановка задачи. Напишите программу, в окне которой прокручивается текст, подобный титрам в конце или начале фильма (рис. 55).

 

Рис. 55. Проект «Титры»

Реализация. Текст должен быть сохранен в файле с расширением bmp. В данном примере это файл baner.bmp. На форму положите таймер.

 

const

HB = 58; // Высота области вывода картинки на форме

HR = 274; // Высота плаката

{ В простейшем случае плакат в файле должен быть продублирован по вертикали два раза. Высота прокручиваемой картинки (битового образа в файле) должна быть больше или равна HB+HR. }

 

var

pic: TBitMap; // Прокручиваемая картинка

sRect, dRect: TRect; // Область − источник

t: integer;

 

procedure TForm1.FormCreate(Sender: TObject);

begin

pic:= TBitMap.Create;

pic.LoadFromFile('baner.bmp'); // Загрузить картинку

dRect:= Bounds(10, 10, pic.Width, HB); { Положение и размер области, в которой прокручивается картинка }

sRect:= Rect(0,0,pic.Width,HB); // Отображаемая область

t:=0;

end;

 

// Сигнал от таймера

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Canvas.CopyRect(dRect,pic.Canvas,sRect); { Отобразить часть картинки }

inc(t);

if t = HR then // Длина ролика

t:=0;

sRect:= Bounds(0,t,pic.Width,HB); // Следующий кадр

end;


Дата добавления: 2015-08-20; просмотров: 34 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Обработка ошибок времени выполнения программы| Темы проектов

mybiblioteka.su - 2015-2024 год. (0.009 сек.)