1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

Вопрос Описание компонентов

Тема в разделе "Inno Setup", создана пользователем Ekspoint, 27 дек 2014.

  1. Ветеран

    Регистрация:
    11 окт 2012
    Сообщения:
    33
    Симпатии:
    0
    Всем СПАСИБО за помощь!!!

    Только все это конечно хорошо, но... Если чекбоксов штук 10, тогда придется писать 10 процедур?:

    procedure ShowHint(Sender: TObject);
    begin
    Label2.show;
    end;

    procedure hideHint(Sender: TObject);
    begin
    Label2.hide;
    end;

    И далее типа:

    procedure ShowHint1(Sender: TObject);
    begin
    Label3.show;
    end;

    И так далее, плюс с десяток Label1 по Label10. С библиотекой DescCtrl.dll как то удобнее. Но там работает с секцией [Components].
    Может есть какие нибудь варианты?
     
  2. Ветеран Супер модератор

    Регистрация:
    5 мар 2016
    Сообщения:
    383
    Симпатии:
    405
    Пол:
    Мужской
    Chopser, попробуйте такой метод, может покажется удобнее:
    Код (Inno):
    [Setup]
    AppName=My Application
    AppVersion=1.5
    CreateAppDir=no

    [CustomMessages]
    Text0=Текст 0
    Text1=Текст 1
    Text2=Текст 2
    Text3=Текст 3
    Text4=Текст 4
    Text5=Текст 5
    Text6=Текст 6
    Text7=Текст 7
    Text8=Текст 8
    Text9=Текст 9

    [Code]
    var
      MyCheckBox: array of TNewCheckBox;
      MyLabel: TLabel;

    procedure CheckBoxEvent(Sender: TObject);
    begin
      MyLabel.Caption:=CustomMessage('Text'+IntToStr(TNewCheckBox(Sender).Tag));
    end;

    procedure CreateMyCheckBox(Parent: TWinControl; Left, Top, Wigth, Height: Integer; Caption: String);
    var
      count: Integer;
    begin
      count:=GetArrayLength(MyCheckBox);
      SetArrayLength(MyCheckBox, count+1);

      MyCheckBox[count]:=TNewCheckBox.Create(Parent);
      MyCheckBox[count].Caption:=Caption;
      MyCheckBox[count].SetBounds(Left, Top, Wigth, Height);
      MyCheckBox[count].OnMouseEnter:=@CheckBoxEvent;
      MyCheckBox[count].Parent:=Parent;
      MyCheckBox[count].Tag:=count;
    end;

    procedure InitializeWizard;
    var
      i: Integer;
    begin
      with WizardForm do begin
        Bevel.Hide;
        OuterNotebook.Hide;
        NextButton.Width:=ScaleX(0);
        //
        for i:=0 to 9 do CreateMyCheckBox(WizardForm, ScaleX(30), ScaleY(30+20*i), ScaleX(80), ScaleY(20), 'CheckBox '+IntToStr(i));
        //
        MyLabel:=TLabel.Create(WizardForm);
        MyLabel.AutoSize:=False;
        MyLabel.WordWrap:=False;
        MyLabel.Alignment:=taCenter;
        MyLabel.Layout:=tlCenter;
        MyLabel.Color:=clGray;
        MyLabel.Transparent:=False;
        MyLabel.SetBounds(ScaleX(30), ScaleY(300), ScaleX(120), ScaleY(20));
        MyLabel.Parent:=WizardForm;
     end;
    end;
     
    agent555 и Chopser нравится это.
  3. Ветеран

    Регистрация:
    11 окт 2012
    Сообщения:
    33
    Симпатии:
    0
    Nemko, Спасибо большое! Так действительно удобнее.
     

Поделиться этой страницей