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

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

Аватара для Johny777

Ветеран


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

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


t16bz,
держи:
читать дальше »
Код: Выделить весь код
[Setup]
AppName=DisksInfo
VersionInfoVersion=5.0
AppVerName=DisksInfo
DefaultDirName={pf}\My program
DefaultGroupName=New_Folder
AllowNoIcons=yes

[Icons]
Name: {group}\Тествый значок; Filename: calc.exe Check: not No_Start_Icons

[code]
var
  StartMenuTreeView : TStartMenuFolderTreeView;
  
function No_Start_Icons: Boolean; 
begin
    Result := WizardForm.NoIconsCheck.Checked;
end;
  
procedure GrpEditOnChange(Sender: TObject);
begin
  if WizardForm.GroupEdit.Text <> '{#SetupSetting("DefaultGroupName")}' then StartMenuTreeView.ChangeDirectory(ExpandConstant(WizardForm.GroupEdit.Text), True);
end;

procedure ObjectOnClick(Sender: TObject);
begin
  case Sender of
  
    StartMenuTreeView: if StartMenuTreeView.Directory <> '' then  WizardForm.GroupEdit.Text := StartMenuTreeView.Directory

    WizardForm.NoIconsCheck:
    begin
      with WizardForm do
      begin
        GroupEdit.Enabled := not NoIconsCheck.Checked;
        StartMenuTreeView.Enabled := not NoIconsCheck.Checked;
        GroupBrowseButton.Enabled := not NoIconsCheck.Checked;
      end;
    end;
    
  end;
end;


Procedure InitializeWizard;
begin
  with WizardForm do
  begin
    with NoIconsCheck do
    begin
      SetBounds(WizardForm.DiskSpaceLabel.Left + 96, WizardForm.DiskSpaceLabel.Top + 1, WizardForm.NoIconsCheck.Width, WizardForm.NoIconsCheck.Height
      OnClick:= @ObjectOnClick
    end;
    
    GroupEdit.OnChange := @GrpEditOnChange;
  end;

  StartMenuTreeView := TStartMenuFolderTreeView.Create(WizardForm)
  with StartMenuTreeView do
  begin
    SetPaths(ExpandConstant('{userprograms}'), ExpandConstant('{commonprograms}'), ExpandConstant('{userstartup}'), ExpandConstant('{commonstartup}'));
    SetBounds(ScaleX(0), ScaleY(110), ScaleX(400), ScaleY(100))
    Parent:= WizardForm.SelectProgramGroupPage
    Cursor:= crHand
    Directory := '{#SetupSetting("DefaultGroupName")}'
    OnChange:=@ObjectOnClick
  end;
	
  StartMenuTreeView.ChangeDirectory(ExpandConstant(WizardForm.GroupEdit.Text), True);
end;

при изменении эдита папки меню пуск меняется директория TFolderTreeView в и наоборот

Это глючный пример. Не использовать!
При редактировании эдита обновляется TStartMenuFolderTreeView и наоборот. Получается порочный круг жутких багов
(пробовал исправить по всякому в пределах своих ничтожных знаний и возможностей)
Кто допилит, тот будет удостоен похвалы, всеобщего признания и звания героя труда!
)

Последний раз редактировалось Johny777, 17-07-2012 в 17:24.


Отправлено: 10:23, 17-07-2012 | #430