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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2011, 04:36   #11
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Чёт не придумал ни чего более простого как создать собственный класс StringGrid и перерисовывать все его содержимое при скроллинге.
Код:
type
  TScrollingStringGrid = class (TStringGrid)
  private
    procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;
    procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
  end;
...
procedure TScrollingStringGrid.WMHScroll(var Message: TWMHScroll);
begin
  Repaint;
end;

procedure TScrollingStringGrid.WMVScroll(var Message: TWMVScroll);
begin
  Repaint;
end;
Теперь осталось дописать перерисовку при переходе по ячейкам мышкой или клавой. Там этот эффект не устранен. Но думаю смысл ясен. Разобраться можно. Даю на водку: надо переопределить соответствующие виртуальные методы предков (типа KeyUp). Может и какие другие методы. Точно не знаю. С набега не получилось, а дальше вкупаться уже времени нет (да и желания особого).

Вообще, как мне кажется, данный эффект - это результат нюансов работы канвы и заливки. Перерисовывается только та часть канвы, которая была до этого не видима (Даже если rect = всей области ячейки). Это уже на уровне системы, наверное. А заливка всегда начинается от верхнего левого угла отрисовываемого региона, а он смещен из-за нюансов перерисовки канвы. Как-то так.

Последний раз редактировалось Sibedir; 09.02.2011 в 04:54.
Sibedir вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рисованием на Timage Delphi7 Dalagardi Помощь студентам 1 19.04.2010 20:48
Проблема с рисованием на канве в TPaintBox pro100-delphi Помощь студентам 10 09.03.2010 19:41
проблема с рисованием сферы kady Помощь студентам 14 25.01.2010 17:48
Непонятки с рисованием на форме ROD Общие вопросы C/C++ 2 03.02.2009 18:14
Проблема с рисованием прямоугольника Юра. Общие вопросы Delphi 13 04.08.2007 06:08