Главная страница
    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.45 MB
Время: 0.008 c
2-1209113412
ZENsan
2008-04-25 12:50
2008.05.25
Куда девается памаять?


15-1208083430
homm
2008-04-13 14:43
2008.05.25
License information for TMSComm not found.


2-1209531259
solo_
2008-04-30 08:54
2008.05.25
Назначение OnDrawColumnCell в Рантайм для Грида


2-1208982779
Жуков Олег
2008-04-24 00:32
2008.05.25
BDE и латышский язык (LANGDRIVER)


2-1208943662
azamatufa
2008-04-23 13:41
2008.05.25
Paradox7 - структура данных, help.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский