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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2011, 10:29   #1
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию TListView+AlphaControls+CustomDrawI tem - баг при отрисовке.

Всем привет,

При приминении AlphaSkin'a не работает данная процедура, в TListView

Код:
procedure TForm1.listCustomDrawItem(Sender: TCustomListView; Item: TListItem;
  State: TCustomDrawState; var DefaultDraw: Boolean);
var
  i: word;
begin
  if item = nil then
    exit;
  i := Item.Index;
  if trunc((i) / 3) < (i / 3) then
    sender.canvas.brush.Color := clBlue
  else
    sender.canvas.brush.Color := clRed;
end;
...без AlphaSkin'a все ок!

Как решить этот баг?

Последний раз редактировалось XerSon; 09.03.2011 в 10:32.
XerSon вне форума Ответить с цитированием
Старый 09.03.2011, 10:49   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Ну а зачем форум существует? И зачем надо обновлять компоненты?
На эти вопросы ответы ищите сами. Обновите компоненты и нет проблем.
Человек_Борща вне форума Ответить с цитированием
Старый 09.03.2011, 11:18   #3
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Ну а зачем форум существует? И зачем надо обновлять компоненты?
На эти вопросы ответы ищите сами. Обновите компоненты и нет проблем.
1) На форуме, при отрисовке, у всех подобные баги!
2) Естественно, обновился сразу, до версии: (v7.32 , 24.02.2011)

P.S. ... проблема не исчезла, вопрос актуален.
XerSon вне форума Ответить с цитированием
Старый 09.03.2011, 11:29   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

у меня всё работает, приаттачил код + откомпилиров. проект.


P.S.
Delphi 2010
Вложения
Тип файла: rar Projects.rar (683.9 Кб, 11 просмотров)
Человек_Борща вне форума Ответить с цитированием
Старый 09.03.2011, 11:37   #5
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
у меня всё работает...
Накатите любой скин, скинменеджер в труе, и сами гляньте!

Я решил обработать код не в CustomDrawItem а в DrawItem и все нормально отрисовалось!

P.S. Внимательнее на виражах!
XerSon вне форума Ответить с цитированием
Старый 09.03.2011, 11:42   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а там разве не надо в каком то св-ве включить CustomDrawing?(я без среды, потому точно не могу посмотреть)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.03.2011, 11:48   #7
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а там разве не надо в каком то св-ве включить CustomDrawing?
В скин менеджере, в скин провайдере, в листе, я не чего такого не нашел!
XerSon вне форума Ответить с цитированием
Старый 09.03.2011, 12:12   #8
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

То что События DrawItem не перехватываются, я уже понял.

Говнокод, но всеже, решил баг так:

Обработал код в onCustomDrawItem а в onDrawItem просто закоментировал, и все ок!
Код:
procedure TForm1.listDrawItem(Sender: TCustomListView; Item: TListItem;
  Rect: TRect; State: TOwnerDrawState);
begin
//
end;
XerSon вне форума Ответить с цитированием
Старый 09.03.2011, 12:14   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

можно вопрос, а почему не использовать сам ONDrawItem?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.03.2011, 12:36   #10
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
можно вопрос, а почему не использовать сам ONDrawItem?
Религиозных направленностей нет, приминительно onCustomDrawItem.

Пробовал и просто в onDrawItem, эффекта нет!
А вот в паре onCustomDrawItem - код
и onDrawItem - закоментировал, эффект есть!

Имхо, баг в AlphaControls package.
XerSon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TListView delphi kefir4ik Помощь студентам 3 16.09.2010 23:17
Инициализация TListView Oburec Компоненты Delphi 0 04.05.2009 00:30
TListView и TPanel goblinyara Компоненты Delphi 3 09.01.2009 23:53
Вопрос по TListView. madroller Компоненты Delphi 1 03.11.2006 04:35