Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2014, 23:30   #1
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию CheckListBox, доступность checkbox

Привет!

Как в CheckListBox сделать для отдельного Чекбокса, что то вроде enable:=false?

То есть сделать его не нажимаемым, без удаления.
bilibian вне форума Ответить с цитированием
Старый 11.08.2014, 00:05   #2
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

То есть если обычный чекбокс включен, то показать чеклистбокс? Что-то не очень понятно) объясните более конкретно цели
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 11.08.2014, 06:14   #3
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Свойство TCheckListBox.ItemEnabled

Добавлено ---------------------------------------------------------------------------------------------
Но можно еще подкрасить губки
Код:
procedure TForm1.CheckListBox1Click(Sender: TObject);
begin
  CheckListBox1.Repaint;
end;

procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
begin
  CheckListBox1.Repaint;
end;

procedure TForm1.CheckListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
  with CheckListBox1 do begin
    if Checked[Index]
      then Canvas.Font.Style := [fsBold]
      else Canvas.Font.Style := [];
    if ItemIndex = Index then begin
      if CheckListBox1.ItemEnabled[Index]
        then Canvas.Brush.Color := clHighlight
        else Canvas.Brush.Color := clGrayText;
      Canvas.Font.Color := CheckListBox1.Color
    end
    else begin
      Canvas.Brush.Color := CheckListBox1.Color;
      if CheckListBox1.ItemEnabled[Index]
        then Canvas.Font.Color := CheckListBox1.Font.Color
        else Canvas.Font.Color := clGrayText;
    end;
    Canvas.FillRect (Rect);
    Canvas.TextOut (Rect.Left+1, Rect.Top, CheckListBox1.Items[Index]);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  CheckListBox1.Style := lbOwnerDrawVariable;
  CheckListBox1.Checked[3] := True;
  CheckListBox1.Checked[5] := True;

  CheckListBox1.ItemEnabled[2] := False;
  CheckListBox1.ItemEnabled[3] := False;
  CheckListBox1.ItemEnabled[8] := False;
end;

Последний раз редактировалось Sibedir; 11.08.2014 в 07:08.
Sibedir вне форума Ответить с цитированием
Старый 11.08.2014, 08:42   #4
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Sibedir, спасибо большое за помощь!
bilibian вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выполнить функцию в случае нажатия на CheckBox, если данный CheckBox был добавлен через код? PAMAC Microsoft Office Excel 7 21.02.2013 15:33
CheckBox в CheckListBox Ist Помощь студентам 2 30.05.2011 14:53
Доступность порта _-Re@l-_ Работа с сетью в Delphi 8 13.05.2011 00:43
Доступность сайта phphel Общие вопросы Delphi 14 15.09.2010 08:29
сделать так, чтобы CheckBox и CheckListBox нельзя было отмечать вручную Washington Компоненты Delphi 7 24.03.2007 16:59