Вопрос Название TNewCheckBox в 2 строки

ZVSRus

Участник
Как сделать длинный текст на TNewCheckBox в 2 строки.
Пример:
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
DisableStartupPrompt=yes

[Messages]

[CustomMessages]
AssocFileExtension=Ассоциировать с файлами, имеющими расширение: .EPUB, .FB2, .MOBI, .CBR and .CBZ

[Code]
var
Page : TWizardPage;
Associate : TNewCheckBox;

function AssociateCheck: Boolean;
begin
Result := Associate.Checked;
end;

procedure InitializeWizard();
begin
Page := CreateCustomPage(wpWelcome, 'Caption', 'Description');

Associate := TNewCheckBox.Create(WizardForm);
with Associate do
begin
Parent := Page.Surface;
Left := ScaleX(0);
Top := ScaleY(40);
Width := ScaleX(240);
Height := ScaleY(27);
// Caption := ExpandConstant('{cm:AssocFileExtension}');
// Caption := FmtMessage(ExpandConstant('Ассоциировать с файлами, имеющими расширение: .EPUB, .FB2, .MOBI, .CBR and .CBZ'), [ExpandConstant('{#SetupSetting("AppName")}')]);
end;
end;
 
Последнее редактирование модератором:

vint56

Ветеран
Проверенный
ZVSRus,
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[CustomMessages]
AssocFileExtension=Ассоциировать с файлами,имеющими расширение:

[Code]
var
  ISCustomPage1: TWizardPage;
  Label1: TLabel;
  Associate: TNewCheckBox;

procedure InitializeWizard();
begin
  { Creates custom wizard page }
  ISCustomPage1 := CreateCustomPage(wpWelcome, 'ISCustomPage1_Caption', 'ISCustomPage1_Description');

  { Label1 }
  Label1 := TLabel.Create(WizardForm);
  with Label1 do
  begin
    Parent := ISCustomPage1.Surface;
    Caption:= ExpandConstant('{cm:AssocFileExtension}')+#13#10+('.EPUB, .FB2, .MOBI, .CBR and .CBZ');
    Left := ScaleX(48);
    Top := ScaleY(84);
    Width := ScaleX(493);
    Height := ScaleY(65);
  end;

  { Associate }
  Associate := TNewCheckBox.Create(WizardForm);
  with Associate do
  begin
    Parent := ISCustomPage1.Surface;
    Left := ScaleX(32);
    Top := ScaleY(80);
    Width := ScaleX(17);
    Height := ScaleY(17);
  end;
end;
 

ZVSRus

Участник
vint56
Так все работает. А стандартно ни как. На странице дополнительных задач стандартный чекбокс с длинным названием отображается в 2 строки.
 
Последнее редактирование:

vint56

Ветеран
Проверенный
ZVSRus,
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[CustomMessages]
AssocFileExtension=Ассоциировать с файлами,имеющими расширение:%n.EPUB, .FB2, .MOBI, .CBR and .CBZ

[Tasks]
Name: "AssocFileExtension"; Description: "{cm:AssocFileExtension}";
 

ZVSRus

Участник
vint56
Со страницей Дополнительные задачи (SelectTasksPage) то что происходит перенос строки на чекбоксе, я знал.
Что нужно: чекбокс нужно поместить на NewGroupBox, NewGroupBox нужно поместить на на вновь созданную страницу.
То есть, страница Tasks будет пропускаться. В вашем примере с лейблом нажатием на текст ничего не происходит, т.е. галочка не фиксируется.
Ну а два ваших примера выше, как вариант использовать можно. Что мне нужно ВЫ наверное поняли.
 
Последнее редактирование:

vint56

Ветеран
Проверенный
ZVSRus, в верхнем примере видно что не ту не каких процедур
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Icons]
Name: "{commondesktop}\My Application"; Filename: "{app}\MyProg.exe"; Check:AssociateCheck;

[CustomMessages]
AssocFileExtension=Ассоциировать с файлами,имеющими расширение:

[Code]
var
  TasksPage: TWizardPage;
  DopGroup: TNewGroupBox;
  AssociateLabel: TLabel;
  Associate: TNewCheckBox;

  Act: TLabel; // можно будет удалить

function AssociateCheck: Boolean;
begin
  Result := Associate.Checked;
end;

procedure AssociateLab(Sender: TObject);
begin
  if Associate.Checked = True then
begin
  Associate.Checked:=False;
  Act.Caption:='четбокс неактивен'; // можно будет удалить
end
else
begin
  Associate.Checked:=True;
  Act.Caption:='четбокс активен'; // можно будет удалить
end;
end;

procedure InitializeWizard();
begin
  TasksPage := CreateCustomPage(wpSelectComponents, 'ISCustomPage1_Caption', 'ISCustomPage1_Description');
  DopGroup := TNewGroupBox.Create(WizardForm);
  with DopGroup do
  begin
    Parent := TasksPage.Surface;
    Left := ScaleX(16);
    Top := ScaleY(24);
    Width := ScaleX(385);
    Height := ScaleY(185);
  end;

  AssociateLabel := TLabel.Create(WizardForm);
  with AssociateLabel do
  begin
    Parent := DopGroup;
    Caption:= ExpandConstant('{cm:AssocFileExtension}')+#13#10+('.EPUB, .FB2, .MOBI, .CBR and .CBZ');
    Left := ScaleX(41);
    Top := ScaleY(34);
    Width := ScaleX(490);
    Height := ScaleY(65);
    OnClick:=@AssociateLab;
  end;

  Associate := TNewCheckBox.Create(WizardForm);
  with Associate do
  begin
    Parent := DopGroup;
    Left := ScaleX(24);
    Top := ScaleY(32);
    Width := ScaleX(17);
    Height := ScaleY(17);
    Checked := True;
  end;

  Act := TLabel.Create(WizardForm);// можно будет удалить
  with Act do
  begin
    Parent := WizardForm;
    Caption := 'четбокс активен';
    Left := ScaleX(40);
    Top := ScaleY(327);
    Width := ScaleX(100);
    Height := ScaleY(13);
  end;
end;
 
Последнее редактирование:

ZVSRus

Участник
vint56
Данный пример то что нужно! Соответствует всем параметрам стандартного чекбокса со страницы Дополнительных задач.
Большое Спасибо! Всех Благ в Ваших работах.
 
Последнее редактирование:
Сверху