Имя пользователя:
Пароль:
 

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

Аватара для nik1967

Старожил


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

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


El Sanchez, замечательно! Только я позволил себе немного подправить скрипт:
Скрытый текст
Код: Выделить весь код
type
    TCheckListBoxHelper = record
        Index: Integer;
        ItemArea: TItemArea;
    end;

var
   CLBHelper: TCheckListBoxHelper;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
procedure ComponentsListOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if (Button = mbLeft) and (CLBHelper.ItemArea = iaItem) then
  begin
    with TNewCheckListBox(Sender) do
    begin
      if ItemEnabled[CLBHelper.Index] then 
      begin
        case State[CLBHelper.Index] of
          cbUnchecked,
          cbGrayed:
            CheckItem(CLBHelper.Index, coCheckWithChildren);
          cbChecked:
            CheckItem(CLBHelper.Index, coUncheck);
        end;
      end;
    end;
  end;
end;

/////////////////////////////////////////////////////////////////////////////////////////////////////////
procedure ComponentsListOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea);
begin
    CLBHelper.Index := Index;
    CLBHelper.ItemArea := Area;
end;

///////////////////////////
procedure InitializeWizard;
begin
    with WizardForm.ComponentsList do
    begin
        if TreeViewStyle then
        begin
            OnMouseDown := @ComponentsListOnMouseDown;
            OnItemMouseMove := @ComponentsListOnItemMouseMove;
        end;
    end;
end;

а то компоненты, у которых стоит флаг Fixed, тоже были кликабельны.

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Последний раз редактировалось nik1967, 06-03-2015 в 16:42.

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

Отправлено: 11:37, 06-03-2015 | #255