Старожил
Сообщения: 241
Благодарности: 79
|
Профиль
|
Отправить PM
| Цитировать
VASYAKRN,
Типо такого?
читать дальше »
[Files]
//Папка со слайдами.
Source: Files\*; Flags: dontcopy noencryption nocompression
[code]
var
SlideImage: TBitmapImage; // Упоминаем картинку для кода
SlideTimer: TTimer; // Упоминаем таймер для кода
CloseButton: TButton; // Упоминаем кнопку WizardForm
procedure SlideTimerTimer(Sender: TObject); forward; // Задаем форвард процедуры таймера
procedure CloseButtonClick(Sender: TObject); forward; // Задаем форвард процедуры клика кнопки закрытия
procedure CloseButtonClick(Sender: TObject);
begin
WizardForm.Close;
end;
procedure SlideTimerTimer(Sender: TObject);// Начинаем процедуру таймера
var a:integer; // Задаем целочисленную переменную
begin // слайд-шоу
a:=random(10); // Задаем рандомное значения для переменной 'а' от 1 до 10
begin
if a=1 then
begin
SlideImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Slide1.bmp')); // Если а=1, то SlideImage загружает слайд 1
WizardForm.StatusLabel.Refresh; // Обновляем label статуса установки(Иначе остаются следы предыдущего слайда)
WizardForm.FileNameLabel.Refresh; // Обновляем label файлов(Иначе остаются следы предыдущего слайда)
WizardForm.NextButton.Refresh; // Обновляем кнопку "Далее"(Иначе остаются следы предыдущего слайда по краям кнопки)
CloseButton.Refresh; // Обновляем кнопку закрытия(Иначе остаются следы предыдущего слайда по краям кнопки)
end;
if a=2 then
begin
SlideImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Slide2.bmp')); // Если а=2, то SlideImage загружает слайд 2
WizardForm.StatusLabel.Refresh; // Обновляем label статуса установки(Иначе остаются следы предыдущего слайда)
WizardForm.FileNameLabel.Refresh; // Обновляем label файлов(Иначе остаются следы предыдущего слайда)
WizardForm.NextButton.Refresh; // Обновляем кнопку "Далее"(Иначе остаются следы предыдущего слайда по краям кнопки)
CloseButton.Refresh; // Обновляем кнопку закрытия(Иначе остаются следы предыдущего слайда по краям кнопки)
end;
if a=3 then
begin
SlideImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Slide3.bmp')); // Если а=3, то SlideImage загружает слайд 3
WizardForm.StatusLabel.Refresh; // Обновляем label статуса установки(Иначе остаются следы предыдущего слайда)
WizardForm.FileNameLabel.Refresh; // Обновляем label файлов(Иначе остаются следы предыдущего слайда)
WizardForm.NextButton.Refresh; // Обновляем кнопку "Далее"(Иначе остаются следы предыдущего слайда по краям кнопки)
CloseButton.Refresh; // Обновляем кнопку закрытия(Иначе остаются следы предыдущего слайда по краям кнопки)
end;
if a=4 then
begin
SlideImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Slide4.bmp')); // Если а=4, то SlideImage загружает слайд 4
WizardForm.StatusLabel.Refresh; // Обновляем label статуса установки(Иначе остаются следы предыдущего слайда)
WizardForm.FileNameLabel.Refresh; // Обновляем label файлов(Иначе остаются следы предыдущего слайда)
WizardForm.NextButton.Refresh; // Обновляем кнопку "Далее"(Иначе остаются следы предыдущего слайда по краям кнопки)
CloseButton.Refresh; // Обновляем кнопку закрытия(Иначе остаются следы предыдущего слайда по краям кнопки)
end;
if a=5 then
begin
SlideImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Slide5.bmp')); // Если а=5, то SlideImage загружает слайд 5
WizardForm.StatusLabel.Refresh; // Обновляем label статуса установки(Иначе остаются следы предыдущего слайда)
WizardForm.FileNameLabel.Refresh; // Обновляем label файлов(Иначе остаются следы предыдущего слайда)
WizardForm.NextButton.Refresh; // Обновляем кнопку "Далее"(Иначе остаются следы предыдущего слайда по краям кнопки)
CloseButton.Refresh; // Обновляем кнопку закрытия(Иначе остаются следы предыдущего слайда по краям кнопки)
end;
if a=6 then
begin
SlideImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Slide6.bmp')); // Если а=6, то SlideImage загружает слайд 6
WizardForm.StatusLabel.Refresh; // Обновляем label статуса установки(Иначе остаются следы предыдущего слайда)
WizardForm.FileNameLabel.Refresh; // Обновляем label файлов(Иначе остаются следы предыдущего слайда)
WizardForm.NextButton.Refresh; // Обновляем кнопку "Далее"(Иначе остаются следы предыдущего слайда по краям кнопки)
CloseButton.Refresh; // Обновляем кнопку закрытия(Иначе остаются следы предыдущего слайда по краям кнопки)
end;
if a=7 then
begin
SlideImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Slide7.bmp')); // Если а=7, то SlideImage загружает слайд 7
WizardForm.StatusLabel.Refresh; // Обновляем label статуса установки(Иначе остаются следы предыдущего слайда)
WizardForm.FileNameLabel.Refresh; // Обновляем label файлов(Иначе остаются следы предыдущего слайда)
WizardForm.NextButton.Refresh; // Обновляем кнопку "Далее"(Иначе остаются следы предыдущего слайда по краям кнопки)
CloseButton.Refresh; // Обновляем кнопку закрытия(Иначе остаются следы предыдущего слайда по краям кнопки)
end;
if a=8 then
begin
SlideImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Slide8.bmp')); // Если а=8, то SlideImage загружает слайд 8
WizardForm.StatusLabel.Refresh; // Обновляем label статуса установки(Иначе остаются следы предыдущего слайда)
WizardForm.FileNameLabel.Refresh; // Обновляем label файлов(Иначе остаются следы предыдущего слайда)
WizardForm.NextButton.Refresh; // Обновляем кнопку "Далее"(Иначе остаются следы предыдущего слайда по краям кнопки)
CloseButton.Refresh; // Обновляем кнопку закрытия(Иначе остаются следы предыдущего слайда по краям кнопки)
end;
if a=9 then
begin
SlideImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Slide9.bmp')); // Если а=9, то SlideImage загружает слайд 9
WizardForm.StatusLabel.Refresh; // Обновляем label статуса установки(Иначе остаются следы предыдущего слайда)
WizardForm.FileNameLabel.Refresh; // Обновляем label файлов(Иначе остаются следы предыдущего слайда)
WizardForm.NextButton.Refresh; // Обновляем кнопку "Далее"(Иначе остаются следы предыдущего слайда по краям кнопки)
CloseButton.Refresh; // Обновляем кнопку закрытия(Иначе остаются следы предыдущего слайда по краям кнопки)
end;
if a=10 then
begin
SlideImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Slide10.bmp')); // Если а=10, то SlideImage загружает слайд 10
WizardForm.StatusLabel.Refresh; // Обновляем label статуса установки(Иначе остаются следы предыдущего слайда)
WizardForm.FileNameLabel.Refresh; // Обновляем label файлов(Иначе остаются следы предыдущего слайда)
WizardForm.NextButton.Refresh; // Обновляем кнопку "Далее"(Иначе остаются следы предыдущего слайда по краям кнопки)
CloseButton.Refresh; // Обновляем кнопку закрытия(Иначе остаются следы предыдущего слайда по краям кнопки)
end;
end
end; // слайд-шоу
procedure InitializeWizard(); // Процедура инициализации
begin
DeleteFile('{tmp}\Slide1.bmp') // Удаляем слайд 1, во избежание ошибки Runtime
DeleteFile('{tmp}\Slide2.bmp') // Удаляем слайд 2, во избежание ошибки Runtime
DeleteFile('{tmp}\Slide3.bmp') // Удаляем слайд 3, во избежание ошибки Runtime
DeleteFile('{tmp}\Slide4.bmp') // Удаляем слайд 4, во избежание ошибки Runtime
DeleteFile('{tmp}\Slide5.bmp') // Удаляем слайд 5, во избежание ошибки Runtime
DeleteFile('{tmp}\Slide6.bmp') // Удаляем слайд 6, во избежание ошибки Runtime
DeleteFile('{tmp}\Slide7.bmp') // Удаляем слайд 7, во избежание ошибки Runtime
DeleteFile('{tmp}\Slide8.bmp') // Удаляем слайд 8, во избежание ошибки Runtime
DeleteFile('{tmp}\Slide9.bmp') // Удаляем слайд 9, во избежание ошибки Runtime
DeleteFile('{tmp}\Slide10.bmp') // Удаляем слайд 10, во избежание ошибки Runtime
DeleteFile('{tmp}\BackWelcome.bmp') // Удаляем картинку приветсвия, во избежание ошибки Runtime
DeleteFile('{tmp}\BackFinish.bmp') // Удаляем картинку финиша, во избежание ошибки Runtime
ExtractTemporaryFile('Slide1.bmp'); // Загружаем слайд 1
ExtractTemporaryFile('Slide2.bmp'); // Загружаем слайд 2
ExtractTemporaryFile('Slide3.bmp'); // Загружаем слайд 3
ExtractTemporaryFile('Slide4.bmp'); // Загружаем слайд 4
ExtractTemporaryFile('Slide5.bmp'); // Загружаем слайд 5
ExtractTemporaryFile('Slide6.bmp'); // Загружаем слайд 6
ExtractTemporaryFile('Slide7.bmp'); // Загружаем слайд 7
ExtractTemporaryFile('Slide8.bmp'); // Загружаем слайд 8
ExtractTemporaryFile('Slide9.bmp'); // Загружаем слайд 9
ExtractTemporaryFile('Slide10.bmp'); // Загружаем слайд 10
ExtractTemporaryFile('BackWelcome.bmp'); // Загружаем картинку приветстви
ExtractTemporaryFile('BackFinish.bmp'); // Загружаем картинку финиша
WizardForm.MainPanel.Hide; // Прячем главную панель, в которой содержится информация PageNameLabel(Лицензионное соглашение, Директория установки и т.д.) и WizardSmaillImage(Маленькая картинка)
WizardForm.BeveledLabel.Hide; // Прячем текст BeveledLabel
WizardForm.Bevel.Hide; // Прячем полоску Bevel
WizardForm.AutoScroll:=False; // Запрещаем изменение размера окна
WizardForm.ClientHeight:=450; // Изменяем высоту окна
WizardForm.ClientWidth:=797; // Изменяем ширину окна
WizardForm.BorderStyle:=bsNone; // Убираем границы окна, а так же системные кнопки [_] и [Х]
WizardForm.Center; // Центрируем окно инсталлятора
CloseButton := TButton.Create(WizardForm); // Создаем label закрытия формы вместо стандартной кнопки закрытия, т.к. убираем границы
with CloseButton do // С кнопкой делаем следующее:
begin
Name:='CloseButton'; // Задаем имя для кода
Parent:=WizardForm; // Делаем дочерним элементом WizardForm'ы
Caption:='х'; // Меняем текст на "Икс"
Font.Color:=clBlack; // Меняем цвет текста на чёрный
Font.Height:=-20; // Меняем ширину шрифта
Font.Name:='Tahoma'; // Меняем шрифт со стандартного 'Tahoma' на красивый 'Verdana'
// Font.Style:=[fsBold]; // Меняем стиль шрифта на "жирный". Стандартное значение: Font.Style:=[]
ParentFont:=False; // Делаем стиль шрифта индивидуальным, а не стандартным
Left:=771; // Задаем расстояние от левого края
Top:=2; // Задаем расстояние от верхнего края
Width:=24; // Задаем ширину
Height:=24; // Задаем высоту
OnClick:=@CloseButtonClick; // Задаем действие для клика
end;
WizardForm.CancelButton.Top:=798; // Прячем кнопку отмены, сдвигая ее за нижний край, т.к. WizardForm.CancelButton.Hide не работает
WizardForm.BackButton.Top:=798; // Прячем кнопку отмены, сдвигая ее за нижний край, т.к. WizardForm.BackButton.Hide не работает
WizardForm.NextButton.Left:=1; // Изменяем расстояние кнопки "Далее" от левого края, оставив расстояние в 1 пкс от границы
WizardForm.NextButton.Top:=399; // Изменяем расстояние кнопки "Далее" от верхнего края, оставив расстояние в 1 пкс от границы
WizardForm.NextButton.Width:=795; // Изменяем ширину кнопки "Далее", оставив расстояние в 2 пкс от границы
WizardForm.NextButton.Height:=50; // Изменяем высоты кнопки "Далее", оставив расстояние в 2 пкс от границы
WizardForm.OuterNotebook.Hide; // Прячем OuterNotebook. Можно,конечно, и не прятать. Но придется поколдовать с родительским элементом для изображения
WizardForm.InnerNotebook.Hide; // Прячем InnerNotebook. Обязательно при WizardForm.OuterNotebook.Hide
WizardForm.ProgressGauge.Parent:=WizardForm; // Делаем прогрессбар дочерним элементом не страницы InstallingPage, а WizardForm'ы
WizardForm.ProgressGauge.Left:=128; // Задаем расстояение от левого края для прогрессбара
WizardForm.ProgressGauge.Top:=310; // Задаем расстояние от верхнего края для прогрессбара
WizardForm.ProgressGauge.Height:=42; // Удваиваем высоту прогрессбара(Стандартное значение: 42)
WizardForm.StatusLabel.Parent:=WizardForm; // Делаем label статуса установки(Распаковка файлов... и т.д.) дочерним элементом не страницы InstallingPage, а WizardForm'ы
////WizardForm.StatusLabel.Transparent:=True; // Делаем label статуса установки без фона
WizardForm.StatusLabel.Left:=128; // Задаем расстояние от левого края для label'а статуса установки
WizardForm.StatusLabel.Top:=270; // Задаем расстояние от верхнего края для label'а статуса установки
WizardForm.StatusLabel.Font.Name:='Verdana'; // Меняем шрифт со стандартного 'Tahoma' на красивый 'Verdana' для label'а статуса установки
WizardForm.StatusLabel.Font.Style:=[fsBold]; // Меняем стиль шрифта на 'Жирный' для label'а статуса установки. Стандартное значение: ...Font.Style:=[]
WizardForm.FilenameLabel.Parent:=WizardForm; // Делаем label файлов(под label'ом статуса установки) дочерним элементом не страницы InstallingPage, а WizardForm'ы
///// WizardForm.FilenameLabel.Transparent:=True; // Делаем label файлов(под label'ом статуса установки) без фона
WizardForm.FileNameLabel.Left:=128; // Задаем расстояние от левого края для label'а файлов(под label'ом статуса установки)
WizardForm.FileNameLabel.Top:=290; // Задаем расстояние от верхнего края для label'а файлов(под label'ом статуса установки)
WizardForm.FileNameLabel.Font.Name:='Verdana'; // Меняем шрифт со стандартного 'Tahoma' на красивый 'Verdana' для label'а файлов(под label'ом статуса установки)
WizardForm.FileNameLabel.Font.Style:=[fsBold]; // Меняем стиль шрифта на 'Жирный' для label'а файлов(под label'ом статуса установки). Стандартное значение: ...Font.Style:=[]
SlideTimer:=TTimer.Create(WizardForm); // Создаем таймер
SlideTimer.Name:='SlideTimer'; // Задаем имя таймера для кода
SlideTimer.Interval:=2000; // Задаем интервал в миллисекундах (2000мсек=2сек)
SlideTimer.OnTimer:=@SlideTimerTimer; // Задаем процедуру для таймера
// SlideTimer.Enabled:=False; // Блокируем таймер, если хотим задать слайд-шоу для определенной страницы (см. конец кода: CurPageChanged)
SlideImage:=TBitmapImage.Create(WizardForm); // Создаем картинку
SlideImage.Name:='SlideImage'; // Задаем имя картинки для кода
SlideImage.Parent:=WizardForm; // Делаем картинку дочерним элементом WizardForm'ы
SlideImage.Left:=0; // Задаем расстояние от левого края для картинки
SlideImage.Top:=0; // Задаем расстояение от верхнего края для картинки
SlideImage.Width:=797; // Задаем ширину картинки, соответствующую самой картинке
SlideImage.Height:=450; // Задаем высоту картинки, соответствующую самой картинке
SlideImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\BackWelcome.bmp')); // Задаем начальное изображение
SlideImage.Stretch:=True; // Сжимаем/растягиваем картинку по размерам Width и Height. Нежелательно так делать, т.к. качество картинки ухудшается. Лучше нарисовать сразу по нужным размерам.
end;
procedure CurPageChanged(CurPageID: Integer); // Процедура контроля страниц
begin
if CurPageID=1 then
begin
WizardForm.StatusLabel.Hide; // Если ID страницы равен 1, то прячем label статуса установки (Иначе остается след на картинках)
WizardForm.FileNameLabel.Hide; // Если ID страницы равен 1, то прячем label файлов (под label'ом статуса установки)
WizardForm.ProgressGauge.Hide; // Если ID страницы равен 1, то прячем прогрессбар
end;
if CurPageID=12 then
begin
WizardForm.StatusLabel.Show; // Если ID страницы равен 12, то показываем label статуса установки
WizardForm.FileNameLabel.Show; // Если ID страницы равен 12, то показываем label файлов (под label'ом статуса установки)
WizardForm.ProgressGauge.Show; // Если ID страницы равен 12, то показываем прогрессбар
// SlideTimer.Enabled:=True; // Если ID страницы равен 12, то таймер включается (см. InitializeWizard: SlideTimerEnabled:=False)
end;
if CurPageID=14 then
begin
SlideTimer.Enabled:=False; // Если ID страницы равен 14, то выключаем таймер слайд-шоу
WizardForm.StatusLabel.Hide; // Если ID страницы равен 14, то прячем label статуса установки (Иначе остается след на картинках)
WizardForm.FileNameLabel.Hide; // Если ID страницы равен 14, то прячем label файлов (под label'ом статуса установки)
WizardForm.ProgressGauge.Hide; // Если ID страницы равен 14, то прячем прогрессбар
SlideImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\BackFinish.bmp')); // Если ID страницы равен 14, то задаем картинку финиша
WizardForm.NextButton.Show; // Если ID страницы равен 14, то показываем кнопку "Далее"
end;
end;
{-----------------------------------------------------------}
// ID'ы страниц:
// Страница приветствия - CurPageID=1
// Страница лицензионного соглашения - CurPageID=2
// Страница пароля инсталлятора - CurPageID=3
// Страница информации InfoBefore - CurPageID=4
// Страница регистрации(Пользователь, Организация, Серийный номер) - CurPageID=5
// Страница директории установки - CurPageID=6
// Страница компонентов установки - CurPageID=7
// Страница меню "Пуск" - CurPageID=8
// Страница дополнительных задач - CurPageID=9
// Страница готовности к установке - CurPageID=10
// Страница приготовления(Перезапуск перед установкой) - CurPageID=11
// Страница установки - CurPageID=12
// Страница информации InfoAfter - CurPageID=13
// Страница конца установки - CurPageID=14
{-----------------------------------------------------------}
кстати есть пример exempele2 это пример только на странице прогрессбара)если немного подумать можно понять как сделать на всех))
|