Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];

Вниз

Полосатый грид для зависимых таблиц   Найти похожие ветки 

 
kyn66   (2007-12-21 10:49) [0]

Хочу ешшо раз подойти к жэтому вопросу и уточнить. Вот обычный механизм, которым я делаю грид полосатым:

procedure TRegionSprFrm.DBGridEh1GetCellParams(Sender: TObject;
 Column: TColumnEh; AFont: TFont; var Background: TColor;
 State: TGridDrawState);
begin
 if (DM1.OSTbl.RecNo mod 2 <> 0) then
  Background := clWhite
 else
  Background := clBtnFace;
end;


Подключая к гриду Query с выборкой, чередование полос нарушалось. Сейчас я заметил, такое-же нарушение имеет быть и при показе зависимой через MasterSources таблицы. Не помнб точно, но раньше вроде этого не замечал, могет просто не попадплось на глаза, а сейчас сплошь и рядом. Есть-ли какое конкретное решение для этого вопроса, т.е. чтобы чередование разноцветных полос было нормальным для данного вида таблиц ?


 
kyn66   (2007-12-21 10:58) [1]

Тысяча пардонов !!! Вчера был предложен способ устранения Kolan, поспешил с постом, не проверив его. Все работает. Прошу админа закрыть тему.


 
kyn66   (2007-12-21 11:11) [2]

и опять поспешил... Прошу прощения. Оказывается этот механизм удачно работает для Query. А когда простой зависимый Table просматриваем, то при скроллинге невидимых строк изначально они выезжают одного цвета. Повторный проход по ним урсором перекрашивает их в нужные цвета. Это не совсем то что нужно. Как -то можно подправить предложенный код?

procedure TRegionSprFrm.DBGridEh1DrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumnEh;
 State: TGridDrawState);
begin
if Sender is TDBGridEh then
begin
  with Sender as TDBGridEh do
  begin
     if Odd(TFakeGrid(Sender).DataLink.ActiveRecord) then
      Canvas.Brush.Color := $00EEEEEE
     else
       Canvas.Brush.Color := clBtnFace;
     if gdSelected in State then
       Canvas.Brush.Color := $00BFB4B2;//clSilver;//$00cccccc;
     DefaultDrawColumnCell(Rect, DataCol, Column, State);
   end;
end;
end;


 
sniknik ©   (2007-12-21 11:32) [3]

> Как -то можно подправить предложенный код?
скорее нужно делать рефреш гриду после скрола, а не этот код править, т.к. грид при скроле сдвигает записи своими силами без вызова DrawColumnCell, а "выехавшая" вполне естественно оказывается того же цвета, что была у записи до этого, ведь номер строки грида по которому проверка остался тот же.


 
kyn66   (2007-12-21 12:35) [4]

Да , действительно работает, спасибо. Однако некоторого мерцания и передергивания в данном случае не избежать...


 
sniknik ©   (2007-12-21 12:52) [5]

> Однако некоторого мерцания и передергивания в данном случае не избежать...
DoubleBuffered?

или переопределить гриду метод более низкого уровня (это типа уже собственного "полосатого наследника" писать), что там по очереди, DrawCell?



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
2-1209042308
Kolan
2008-04-24 17:05
2008.05.25
Где найти описание всех файлов которые создает Delphi?


2-1209113412
ZENsan
2008-04-25 12:50
2008.05.25
Куда девается памаять?


3-1198064534
Егоров А.Н.
2007-12-19 14:42
2008.05.25
Многострочный заголовок в DBAltGrid


15-1208164862
Ega23
2008-04-14 13:21
2008.05.25
Кто имел дело с разработкой FastCGI на C/C++ или даже Delphi


15-1207823137
Kolan
2008-04-10 14:25
2008.05.25
Интересно, а можно посмотреть Compiler Magic?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский