Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


Вот, реализовал интересный эффект - эффект печатной машинки, т.е. текст на мастере появляется не сразу, а по одной букве, что создаёт эффект того, что текст печатается...
Скрипт
Код: Выделить весь код
; Интересный эффект для Вашего инсталлятора, эффект печатной машинки...
; Для нормальной работы у Вас должен быть установлен набор от Restools http://restools.hanzify.org/
; Подразумеваю под словом набор - InnoCompiler и ISCmplr, последние версии Вы можете найти на сайте Restools.
; Автор: Serega, http://forum.oszone.net/member.php?userid=88670

[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

Code]
var
  lbl1, lbl2: TLabel;
  txt1, txt2: string;
  i: Integer;
  tmr1: TTimer;

procedure tmr1Timer(Sender: TObject);
begin
  tmr1.Enabled:= False;

  txt1:= WizardForm.WelcomeLabel1.Caption;
  txt2:= WizardForm.WelcomeLabel2.Caption;

  lbl1.Caption:= '';
  for i:= 1 to Length(txt1) do begin
    if Application.Terminated then Break; // контроль закрытия приложения и выход из цикла
    lbl1.Caption:= lbl1.Caption + txt1[i];
    Application.ProcessMessages;
    Sleep(100); // время задержки между показом букв
  end;

  lbl2.Caption:= '';
  for i:= 1 to Length(txt2) do begin
    if Application.Terminated then Break; // контроль закрытия приложения и выход из цикла
    lbl2.Caption:= lbl2.Caption + txt2[i];
    Application.ProcessMessages;
    Sleep(60); // время задержки между показом букв
  end;
end;

procedure CreateComponents;
begin
// скрываем стандартные Label'ы
  WizardForm.WelcomeLabel1.Hide;
  WizardForm.WelcomeLabel2.Hide;

// задаём свои Label'ы
  lbl1:= TLabel.Create(WizardForm);
  with lbl1 do begin
    Left:= WizardForm.WelcomeLabel1.Left;
    Top:= WizardForm.WelcomeLabel1.Top;
    Width:= WizardForm.WelcomeLabel1.Width;
    Height:= WizardForm.WelcomeLabel1.Height;
    AutoSize:= WizardForm.WelcomeLabel1.AutoSize;
    WordWrap:= WizardForm.WelcomeLabel1.WordWrap;
    Font.Style:= WizardForm.WelcomeLabel1.Font.Style;
    Font.Size:= WizardForm.WelcomeLabel1.Font.Size;
    Font.Color:= WizardForm.WelcomeLabel1.Font.Color;
    Transparent:= True;
    Caption:= '';
    Parent:= WizardForm.WelcomePage;
  end;

  lbl2:=TLabel.Create(WizardForm);
  with lbl2 do begin
    Left:= WizardForm.WelcomeLabel2.Left;
    Top:= WizardForm.WelcomeLabel2.Top;
    Width:= WizardForm.WelcomeLabel2.Width;
    Height:= WizardForm.WelcomeLabel2.Height;
    AutoSize:= WizardForm.WelcomeLabel2.AutoSize;
    WordWrap:= WizardForm.WelcomeLabel2.WordWrap;
    Font.Style:= WizardForm.WelcomeLabel2.Font.Style;
    Font.Size:= WizardForm.WelcomeLabel2.Font.Size;
    Font.Color:= WizardForm.WelcomeLabel2.Font.Color;
    Transparent:= True;
    Caption:= '';
    Parent:= WizardForm.WelcomePage;
  end;

  tmr1:= TTimer.Create(WizardForm);
  with tmr1 do begin
    Interval:= 500; // время задержки перед началом показа текста
    OnTimer:= @tmr1Timer;
  end;
end;

procedure InitializeWizard();
begin
  CreateComponents;
end;

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Последний раз редактировалось Serega, 08-06-2009 в 22:36. Причина: орфография

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:24, 02-04-2009 | #553