Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Мерцание StringGrid (CLX), Пытаюсь создать сложные заголовки 
:(
    Опции темы
SpaceIQ
Дата 12.7.2009, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 2.7.2009

Репутация: нет
Всего: нет



Добрый вечер!

Меня интересуют сложные заголовки (составные) StringGrid в CLX. Я сделал все как положено, написал свой компонент, переопределил метод DrawCell, там написал то что мне нужно. Все рисуется ровно один раз, никаких перегрузок сложных нет. Но при любом действии заголовки мерцает.

То есть как это работает, насколько я понял. Вначале рисует стандартный фон у заголовка, потому уже вызывается переписаный метод DrawCell. И так для каждой ячейки. Неплохо было бы как-то запретить рисовать стандартный фон.

В VCL так же есть различные хорошие вещи такие как DoubleBuffered, WM. В CLX этого нет. Как быть? Как бороться с мерцанием?

Заранее спасибо.
PM MAIL   Вверх
SpaceIQ
Дата 13.7.2009, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 2.7.2009

Репутация: нет
Всего: нет



Добавляю вложение:

TestStringGrid - сам компонент
TestProjectGrid - проект с ним

Ничего не выходит, моргает и моргает.
Моргание, например, можно увидеть, если кликать по ячейкам

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  MyStringGrid.rar 208,59 Kb
PM MAIL   Вверх
RomanEEP
Дата 13.7.2009, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 18.5.2006
Где: Коломна

Репутация: 5
Всего: 8



Один вариант сделать твой грид от TDrawGrid. Т.к TStringGrid делает дефолтную отрисовку, ты ее замалевываешь своей и получается мигание
Второй способ оверайдить метод Paint(); и устороить двойную буферизацию, но это сложнее, т.к придется подделывать FCanvas, который в секции private у TCustomControl

Добавлено через 2 минуты и 51 секунду
Еще можно оверайдить метод Paint(); и вместо вызова
DrawLines(goFixedHorzLine in Options, goFixedVertLine in Options,  0, 0, [0, 0, Horz.FixedBoundary, Vert.FixedBoundary], clBlack, FixedColor);
вставить свою отрисовку заголовка
PM MAIL   Вверх
SpaceIQ
Дата 13.7.2009, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 2.7.2009

Репутация: нет
Всего: нет



Мда... в любом случае получает, что нужно переделывать вырисовку у StringGrid'а самому.... smile 
Ладно, спасибо.
PM MAIL   Вверх
SpaceIQ
Дата 13.7.2009, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 2.7.2009

Репутация: нет
Всего: нет



Да именно так и сделал. Скопировал все из QGrids к себе. Только DrawLines ту в приницпе удалил и поставил условие на DrawCells. Все отилично. Спасибо.  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0902 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.