Вопрос Класcический стиль системы

ZVSRus

Участник
Стандартная картинка растянута для примера, для того чтобы вы видели что прозрачности у лейблов НЕТ, а если нет Transparent := True,
тогда и кастомные PageNameLabel, PageDescriptionLabel на х.. не нужны, есть стандартные. Вы в своей теме начали за здравие а закончили за упокой.
И доказывать вам я ничего не собираюсь, себе дороже выйдет.
 

Хамик

Старожил
ZVSRus, ну вот с растянутой картинкой
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
DisableWelcomePage=yes
OutputDir=.

[code]
var
PageNameLabel, PageDescriptionLabel: TLabel;

function IsThemeActive: BOOL; external 'IsThemeActive@UxTheme.dll stdcall delayload';

function SetTransp: boolean;
begin
   if WizardForm.WizardSmallBitmapImage.Width > 55 then
   result := true else result := IsThemeActive;
end;

procedure InitializeWizard();
begin

   with WizardForm.WizardSmallBitmapImage do
  begin
    SetBounds(ScaleX(0), ScaleY(0), ScaleX(497), ScaleY(60));
  end;
  PageNameLabel:=TLabel.Create(WizardForm);
    with PageNameLabel do begin
    AutoSize := False;
    SetBounds(ScaleX(10), ScaleY(4), ScaleX(258), ScaleY(30));
    Transparent := SetTransp;
    Font.Name := 'Tahoma';
    Font.Size := 8;
    Font.Color := clGreen;
    Font.Style := [fsBold];
    Parent := WizardForm.MainPanel;
  end;

  PageDescriptionLabel:=TLabel.Create(WizardForm);
    with PageDescriptionLabel do begin
    AutoSize := False;
    SetBounds(ScaleX(15), ScaleY(20), ScaleX(200), ScaleY(50));
    Wordwrap := True;
    Transparent := SetTransp;
    Font.Name := 'Tahoma';
    Font.Size := 8;
    Font.Color := clGreen;
    Parent := WizardForm.MainPanel;
  end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  WizardForm.PageNameLabel.Hide;
  WizardForm.PageDescriptionLabel.Hide;

case CurPageID of
wpReady:
begin
PageDescriptionLabel.Caption:='Моя программа';
PageNameLabel.Caption:='Выбор папки установки';
end;

wpSelectDir:
begin
PageNameLabel.Caption:='Выбор типа и компонентов установки';
PageDescriptionLabel.Caption:='';
end;
end;
end;
 
Последнее редактирование:

ZVSRus

Участник
Ух ты, уже новый скрипт!

Код:
function SetTransp: boolean;
begin
    if WizardForm.WizardSmallBitmapImage.Width > 55 then
    result := true else result := IsThemeActive;
end;
Transparent := SetTransp;
Transparent := IsThemeActive; - а это уже не катит?

Вы будете все частями выкладывать?
Всем кому нужно вы предлагали предыдущий пример. Не рабочий
Ну а на счёт последнего скрипта то тут всё OK. Пример рабочий и на классическом стиле. Удачи вам и дальше!
 

ZVSRus

Участник
Прикол не в растягивании картинки а в том что тема перешла на 2 страницу, а многие (и я в том числе) до сих пор не могут понять для чего вам нужна замена стандартных PageNameLabel и PageDescriptionLabel на кастомные с параметром Transparent := True; (первый пример)
Параметр Transparent := True; подразумевает прозрачность текста т.е. без фона, и все понимают это как то что данный человек хочет положить эти лейблы на картинку или на какую ту свою панельку, ну скажем другова цвета (не белого) чтобы белый фон текста не отображался. в своих примерах вы этого не приводите и не отвечаете для каких целей вам нужен параметр Transparent := True; отсюда и топтание на месте. А своими последними примерами вы далеко ушли от изначального вопроса. Так вот повторюсь ещё раз.
Для чего вам нужен параметр Transparent := True; ?
PS:
Корректный и вразумительный заданный вопрос - залог быстрого и объемлющего ответа!
 

Хамик

Старожил
ZVSRus, меня интересовал вопрос по поводу текста, вот я его и вырезал из своего скрипта для примера. Прозрачность нужна чтобы не было белого фона текста.

А своими последними примерами вы далеко ушли от изначального вопроса
а как здесь не уйти если вы задаете далекие вопросы!
 

ZVSRus

Участник
Прозрачность нужна чтобы не было белого фона текста.
Хамик. Чтобы был не виден белый фон текста на белом фоне стандартной MainPanel?
Так! Будем плясать от изначального вопроса и самого первого куска скрипта

1.
Первый пример в том виде в каком вы его выложили кастомные PageNameLabel, PageDescriptionLabel с параметром Transparent := True подразумевают то, что данные лейблы должны находится на какой либо картинке, а параметр Transparent := True отвечает за прозрачность т.е. чтобы фон текста не отображался на картинке. Например вместо стандартной WizardSmallImage вы вставили свою картинку во всю ширину MainPanel.

2.
Если вы располагаете свои PageNameLabel, PageDescriptionLabel (на разных страницах со своими разными надписями) на стандартной MainPanel (Не просто так вас спрашивал SBalykov на чём вы располагаете свои лейблы) тогда, ни параметр Transparent := True, (кстати, от этого параметра у вас с текстом и происходит хрень) ни кастомные PageNameLabel, PageDescriptionLabel не нужны. Это называется замена ШИЛА на МЫЛО.

3.
Если вы создавали свои кастомные PageNameLabel, PageDescriptionLabel для замены стандартных надписей на разных страницах на свои, тогда это делает процедура procedure CurPageChanged(CurPageID: Integer); а не созданные лейблы, в скрипте это у вас есть
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
DisableWelcomePage=yes

[code]
var
PageNameLabel, PageDescriptionLabel: TLabel;

procedure InitializeWizard();
begin
  with WizardForm.WizardSmallBitmapImage do
  begin                                 
    SetBounds(ScaleX(0),ScaleY(0),ScaleX(497),ScaleY(58));
  end;

  PageNameLabel:=TLabel.Create(WizardForm);
     with PageNameLabel do begin
     AutoSize := False;
     SetBounds(ScaleX(0), ScaleY(4), ScaleX(258), ScaleY(30));
     Transparent := True;
     Font.Name := 'Tahoma';
     Font.Size := 8;
     Font.Color := clRed;;
     Font.Style := [fsBold];
     Parent := WizardForm.MainPanel;
   end;

   PageDescriptionLabel:=TLabel.Create(WizardForm);
     with PageDescriptionLabel do begin
     AutoSize := False;
     SetBounds(ScaleX(0), ScaleY(20), ScaleX(200), ScaleY(50));
     Wordwrap := True;
     Transparent := True;
     Font.Name := 'Tahoma';
     Font.Size := 8;
     Font.Color := clRed;;
     Parent := WizardForm.MainPanel;
   end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
   WizardForm.PageNameLabel.Hide;
   WizardForm.PageDescriptionLabel.Hide;

case CurPageID of
wpReady:
begin
PageDescriptionLabel.Caption:='Моя программа';
PageNameLabel.Caption:='Выбор папки установки';
end;

wpSelectDir:
begin
PageNameLabel.Caption:='Выбор типа и компонентов установки';
PageDescriptionLabel.Caption:='';
end;
end;
end;

Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
DisableWelcomePage=yes

[code]
procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpReady:
begin
WizardForm.PageDescriptionLabel.Caption:='Моя программа';
WizardForm.PageNameLabel.Caption:='Выбор папки установки';
WizardForm.NextButton.Caption:='Ну Чё ставим?';
end;

wpSelectDir:
begin
WizardForm.PageNameLabel.Caption:='Выбор типа и компонентов установки';
WizardForm.PageDescriptionLabel.Caption:='';
WizardForm.NextButton.Caption:='Ну Чё вперед?';
end;
end;
end;
PS. Если часто нужны Transparent с параметром True тогда перейди на Unicode версию, там этот параметр присутствует в стандартных лейблах
 
Последнее редактирование:
Сверху