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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2007, 15:15   #1
Миша
Пользователь
 
Регистрация: 13.09.2007
Сообщений: 63
По умолчанию Canvas в компоненте ListBox

Подскажите пожалуйста как работать на канале Canvas в компоненте ListBox. Нужно чтобы Выделена Строка выделялась не на сером а на каком-то другом цвете.
В моей книге написана "Параметр Rect типа TRect указывает область канвы списка, соответствующую рисуемому элементу списка. Параметр State типа TOwnerDrawState является множеством, элементами которого могут быть значения odSelected - строка выделена,odFocused - строка находится в фокусе и ряд других" но как работать с немы я не знаю.
И еще один вопрос если в списке находиться списки текстовых и видео файлов обязательно прорисовывать значок блокнота или веб странички или видео файла самому или их можно брать с windows.
Заранее спасибо... попрошу сильна не злится я еще новичок
Миша вне форума Ответить с цитированием
Старый 24.09.2007, 15:22   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Код:
procedure TTest.ListBox1DrawItem(Control: TWinControl;
  Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
  with (Control as TListBox).Canvas do
  begin
    case Index of
      0:
        begin
          Font.Color := clBlue;
          Brush.Color := clYellow;
        end;
      1:
        begin
          Font.Color := clRed;
          Brush.Color := clLime;
        end;
      2:
        begin
          Font.Color := clGreen;
          Brush.Color := clFuchsia;
        end;
    end;
    FillRect(Rect);
    TextOut(Rect.Left, Rect.Top, (Control as TListBox).Items[Index]);
  end;
end;
ListBox1.Style равным lbOwnerDrawFixed
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи

Последний раз редактировалось mihali4; 18.12.2009 в 17:33.
Квэнди вне форума Ответить с цитированием
Старый 24.09.2007, 15:44   #3
Миша
Пользователь
 
Регистрация: 13.09.2007
Сообщений: 63
По умолчанию

если вас не затруднит подскажите как работать с odSelected и odFocused

Миша вне форума Ответить с цитированием
Старый 24.09.2007, 20:38   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Код:
type TDrawItemEvent = procedure(Control: TWinControl; Index: Integer
 Rect: TRect; State: TOwnerDrawState) of object;

type TOwnerDrawState = set of (odSelected, odGrayed, odDisabled, odChecked odFocused, odDefault, odComboBoxEdit);

if odSelected in State then ...
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mihali4; 18.12.2009 в 17:34.
mutabor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как очистить Canvas? beegl Общие вопросы Delphi 4 30.05.2008 02:51
Подключение Canvas Zeraim Общие вопросы Delphi 4 13.05.2008 20:51
Canvas.Polygon Sibedir Общие вопросы Delphi 2 18.01.2008 14:36
Canvas Zven Общие вопросы Delphi 9 06.12.2007 10:40
Canvas (Канва) - заливка фигуры произвольной формы Albenous Общие вопросы Delphi 13 24.02.2007 13:21