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

Chopser

Новичок
Всем СПАСИБО за помощь!!!

Только все это конечно хорошо, но... Если чекбоксов штук 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].
Может есть какие нибудь варианты?
 

Nemko

Дилетант
Модератор
Chopser, попробуйте такой метод, может покажется удобнее:
Код:
[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;
 
Сверху