Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


Berline, вы как-то спрашивали про выделение компонентов отдельными кнопками.
На тот момент, правильного решения я не нашёл, а оно было рядом...

Пример
Код: Выделить весь код
; выделение или снятие отметки со всех компонентов одной кнопкой...
; Автор: Serega, http://forum.oszone.net/member.php?userid=88670

[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl

[Types]
Name: full; Description: Полная установка
Name: custom; Description: Выборочная установка; Flags: iscustom

[Components]
Name: a; Description: Моя программа™; Types: full custom
Name: a\a; Description: Руководство пользователя; Types: full
Name: a\a\a; Description: Русский; Flags: exclusive
Name: a\a\b; Description: English; Flags: exclusive
Name: a\b; Description: Справка; Types: full

[Files]
Source: compiler:Examples\MyProg.exe; DestDir: {app}; Components: a
Source: compiler:Examples\Readme-ru.txt; DestDir: {app}; Components: a\a\a
Source: compiler:Examples\Readme-en.txt; DestDir: {app}; Components: a\a\b
Source: compiler:Examples\MyProg.chm; DestDir: {app}; Components: a\b

[Code]
var
  i, k, count: Integer;

procedure btnClick(Sender: TObject);
begin
  count:= WizardForm.ComponentsList.Items.Count-1;
  for i:= count downto 0 do
    begin
      case TButton(Sender).Tag of
        0: WizardForm.ComponentsList.Checked[i]:= True;
        1: WizardForm.ComponentsList.Checked[i]:= False;
      end;
      WizardForm.ComponentsList.OnClickCheck(WizardForm.ComponentsList.ItemObject[i]);
    end;
end;

procedure InitializeWizard();
begin
  for i:= 0 to 1 do
  with TButton.Create(WizardForm) do
    begin
      SetBounds(295+k,210,60,25);
      OnClick:= @btnClick;
      Parent:= WizardForm.SelectComponentsPage;
      Tag:= i;
      case i of
        0: Caption:= 'Все';
        1: Caption:= 'Ничего';
      end;
      k:= 62;
    end;
end;

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Последний раз редактировалось Serega, 19-01-2010 в 00:53. Причина: добавление комментария

Это сообщение посчитали полезным следующие участники:

Отправлено: 03:03, 22-11-2009 | #444