ReDrawText

Модуль ReDrawText 1.5f

Нет прав для скачивания

Shegorat

Lord of Madness
Администратор
Пользователь Shegorat разместил новый ресурс:

ReDrawText - Модуль для создания форматированного текста

Модуль для создания форматированного текста.

Основной принцип работы - создание болванки-TLabel с основными параметрами (текст, расположение и т.д). И затем его перерисовку.

Для простоты использования сделано форматирование текста на основе bb-кодов. Поддерживаются следующие теги:
Код:
[b]текст[/b] - Жирный текст
[i]текст[/i] - Наклонный текст (Курсив)
[u]текст[/u] - Подчеркнутый текст
[s]текст[/s] - Зачеркнутый текст
[min=width]текст[/min] - Минимизирует текст до указанной ширины. Обычно...
Узнать больше об этом ресурсе...
 

gocha

Новичок
Кстати, ты прав.
А я не ожидал так много кода для такой "маленькой" вещицы... :(

Но хорошо, что ты пришел к правильному выводу, и не то чтоб он попался бы к другим рукам, а то, что, если сайта считаешь своим ресурсом - надо к таким вещам не ограничивать пользователей, а наоборот. ;)
 
Последнее редактирование:

LexBell

Борода
Супер модератор
Но хорошо, что ты пришел к правильному выводу
Когда ты напишешь хотя-бы на 10% настолько-же значимое, только тогда ты будешь иметь право говорить эти слова, не ранее. В данный момент была необходимость опубликовать от своего имени то, что было украдено. Во избежание того, чтобы какая-нибудь нехорошая редиска не присвоила себе авторство.
 
Последнее редактирование модератором:

MogilShik

Новичок
Привет, не подскажите как сделать цветной текст на разных страницах, например, на странице приветствия и финишной? Получается только на одной.
 

Shegorat

Lord of Madness
Администратор
Привет, не подскажите как сделать цветной текст на разных страницах, например, на странице приветствия и финишной? Получается только на одной.
В примере сделан цветной текст для страницы выбора папки установки. Для других страниц аналогично - создаем лейбл-болванку на нужной странице, а потом вызываем ReDrawText для этого лейбла.
 

MogilShik

Новичок
В скриптах не силен, пробовал и так и сяк, то ошибки выдает, то только на одной странице отображается.
 

MogilShik

Новичок
YURSHAT спасибо, страницу приветствия сделал как хотел, а вот с последней возникли трудности,
одновременно не удается текст менять в FinishedLabel и в FinishedHeadingLabel, хотя не суть важно, сделал весь текст через FinishedHeadingLabel, меня интересует как текст разукрасить возле чекбокса на последней странице, если не трудно то можно пример?
 

Mailchik

Старожил
Проверенный
одновременно не удается текст менять в FinishedLabel и в FinishedHeadingLabel
потому что finishedheadinglabel - tnewstatictext. можно сделать по примеру YURSHAT'а:
Код:
#include "ReDrawText v.1.5e.iss"

[Setup]
AppName=MyApp
AppVername=MyApp
DefaultDirName={pf}\MyApp

[code]
var
  WelcomeLabel1, FinishedLabel, FinishedHeadingLabel : Tlabel;
  WelcomeLabel1Rdw, FinishedLabelRdw, FinishedHeadingLabelRdw: TRedrawedLabel;

procedure RedesignWizardForm;
begin
  WizardForm.WelcomeLabel1.Hide;
  WizardForm.FinishedLabel.Hide;
  WizardForm.FinishedHeadingLabel.Hide;

  WelcomeLabel1 := TLabel.Create(WizardForm);
  with WelcomeLabel1 do begin
    AutoSize:=False;
    SetBounds(ScaleX(176), ScaleY(16), ScaleX(301), ScaleY(55));
    Caption := '[name=Verdana][size=12]Вас приветствует [b]Мастер установки[/b] игры [i][color=$FF0000]"Крутая Игра"[/color][/i][/size][/name]';
    Parent:=WizardForm.WelcomePage;
  end;
  WelcomeLabel1Rdw:= ReDrawText(WelcomeLabel1);

  FinishedLabel := TLabel.Create(WizardForm);
  with FinishedLabel do begin
    AutoSize:=False;
    SetBounds(ScaleX(176), ScaleY(71), ScaleX(301), ScaleY(66));
    Caption := '[name=Georgia][size=12]Вроде установилась [b]эта хрень[/b] на мой [i][color=$FF0000]мега-калькулятор[/color][/i].[/size][/name]';
    Parent:=WizardForm.FinishedPage;
  end;
  FinishedLabelRdw:= ReDrawText(FinishedLabel);

  FinishedHeadingLabel := TLabel.Create(WizardForm);
  with FinishedHeadingLabel do begin
    AutoSize:=False;
    SetBounds(WizardForm.FinishedHeadingLabel.Left, WizardForm.FinishedHeadingLabel.Top, ScaleX(301), ScaleY(66));
    Caption := '[name=Georgia][size=12]Завершение [b]мастера[/b] установки [i][color=$FF0000]игры[/color][/i].[/size][/name]';
    Parent:=WizardForm.FinishedPage;
  end;
  FinishedHeadingLabelRdw:= ReDrawText(FinishedHeadingLabel);
end;

procedure InitializeWizard();
begin
  RedesignWizardForm;
end;
меня интересует как текст разукрасить возле чекбокса на последней странице, если не трудно то можно пример?
например так:
Код:
#include "ReDrawText v.1.5e.iss"

[Setup]
AppName=MyApp
AppVername=MyApp
DefaultDirName={pf}\MyApp

[code]
var
  WelcomeLabel1, FinishedLabel, FinishedHeadingLabel, CaptionForCheckBox : Tlabel;
  WelcomeLabel1Rdw, FinishedLabelRdw, FinishedHeadingLabelRdw, CaptionForCheckBoxRdw : TRedrawedLabel;
  CheckBox : TNewCheckBox;

procedure CheckBoxOnClick(Sender : TObject);
begin
  if CheckBox.Checked then
    HideRWLabel(CaptionForCheckBoxRdw)
  else
    ShowRWLabel(CaptionForCheckBoxRdw);
end;

procedure RedesignWizardForm;
begin
  WizardForm.WelcomeLabel1.Hide;
  WizardForm.FinishedLabel.Hide;
  WizardForm.FinishedHeadingLabel.Hide;

  WelcomeLabel1 := TLabel.Create(WizardForm);
  with WelcomeLabel1 do begin
    AutoSize:=False;
    SetBounds(ScaleX(176), ScaleY(16), ScaleX(301), ScaleY(55));
    Caption := '[name=Verdana][size=12]Вас приветствует [b]Мастер установки[/b] игры [i][color=$FF0000]"Крутая Игра"[/color][/i][/size][/name]';
    Parent:=WizardForm.WelcomePage;
  end;
  WelcomeLabel1Rdw:= ReDrawText(WelcomeLabel1);

  FinishedLabel := TLabel.Create(WizardForm);
  with FinishedLabel do begin
    AutoSize:=False;
    SetBounds(ScaleX(176), ScaleY(71), ScaleX(301), ScaleY(66));
    Caption := '[name=Georgia][size=12]Вроде установилась [b]эта хрень[/b] на мой [i][color=$FF0000]мега-калькулятор[/color][/i].[/size][/name]';
    Parent:=WizardForm.FinishedPage;
  end;
  FinishedLabelRdw:= ReDrawText(FinishedLabel);

  FinishedHeadingLabel := TLabel.Create(WizardForm);
  with FinishedHeadingLabel do begin
    AutoSize:=False;
    SetBounds(WizardForm.FinishedHeadingLabel.Left, WizardForm.FinishedHeadingLabel.Top, ScaleX(301), ScaleY(66));
    Caption := '[name=Georgia][size=12]Завершение [b]мастера[/b] установки [i][color=$FF0000]игры[/color][/i].[/size][/name]';
    Parent:=WizardForm.FinishedPage;
  end;
  FinishedHeadingLabelRdw:= ReDrawText(FinishedHeadingLabel);

  CheckBox := TNewCheckBox.Create(WizardForm);
  with CheckBox do begin
    SetBounds(ScaleX(175), ScaleY(150), ScaleX(301), ScaleY(66));
    Caption := '';
    OnClick := @CheckBoxOnClick;
    Parent:=WizardForm.FinishedPage;
  end;

  CaptionForCheckBox := TLabel.Create(WizardForm);
  with CaptionForCheckBox do begin
    AutoSize:=False;
    SetBounds(ScaleX(195), ScaleY(173), ScaleX(301), ScaleY(66));
    Caption := '[name=Georgia][size=12]Пример [i][color=$FF0000]чекбокса[/color][/i].[/size][/name]';
    Parent:=WizardForm.FinishedPage;
  end;
  CaptionForCheckBoxRdw:= ReDrawText(CaptionForCheckBox);
end;

procedure InitializeWizard();
begin
  RedesignWizardForm;
end;
 

MogilShik

Новичок
Mailchik код по finishedheadinglabel так и делал, выдает ошибку.

По чекбоксу попробую)))

Тоже выдает ту же самую ошибку, что и с finishedheadinglabel: 'BEGIN' expected
 
Последнее редактирование:

MogilShik

Новичок
Gnom, а где именно смотреть? Выше скрипты выкладывал Mailchik, делал как там, все равно появляется эта ошибка.
 

Mailchik

Старожил
Проверенный
MogilShik, я даже не знаю, что вам ответить. то есть, вы утверждаете, что скопировав коды, которые я выше привел, у вас появляются ошибки?
перед тем, как написать, я проверил эти коды. и у меня, к сожалению нет никаких ошибок..
 

MogilShik

Новичок
Mailchik так точно, я просто всю эту кучу-малу объединял, в общем вот скрипт:
 

Вложения

Последнее редактирование:

MogilShik

Новичок
Спасибо, пашет с одним но, там по умолчанию чекбокс который скрывается отмечен галочкой мол запустить игру, этот новый его заменяет, но в скрытом то галочка так и стоит, как тут быть?
А заголовок рядом с чекбоксом вообще не срабатывает, пустота и все(((
 
Последнее редактирование:

MogilShik

Новичок
Чет вот не пойму, а как чекбокс заставить .ехе увидеть который нужно запустить? И текст рядом с чекбоксом так и не отображается.
 

Вложения

Последнее редактирование:

YURSHAT

Тех. админ
Администратор
И текст рядом с чекбоксом так и не отображается.
Текст не отображается, потому как у вас сам чекбокс перекрывает лейбл с текстом :)
ЗЫ. А вообще я так понимаю нужен чекбокс, надпись у которого цветная и при нажатии запуск игры?
ЗЫЫ. По такой цветной надписи нельзя кликнуть. То есть если вы применяете к лейблу раскраску, события клика на нем не отработают....

Опишите подробно, что хотите сделать, а я вам дам пример...
 
Последнее редактирование:

MogilShik

Новичок
Нужен станадртный чекбокс, у которого ставится или снимается галочка, для запуска игры или программы при нажатии кнопки завершить инсталляцию, ну а рядом текст своим цветом, запустить игру такую то, названии игры своим цветом, если чекбокс отмечен игра запускается, в общем все стандартно, только текст разноцветный.
 
Сверху