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

Вниз

RecNo у TADsQuery   Найти похожие ветки 

 
kyn66   (2007-12-19 16:04) [0]

Я так понимаю, сто САБЖ как таковой отсутствует? Столкнулся с тем, что решил разполосатить грид, прикрепленный к сабжу. Полоски получилиь кто как хочет, т.е. условие

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


не работает


 
Kolan ©   (2007-12-19 16:30) [1]

Нет, можно располосатить.

TFakeGrid = class (TDBGridEh);

procedure TMainForm.StationaryDBGridEhDrawColumnCell(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 := clWindow;
      if gdSelected in State then
        Canvas.Brush.Color := $00BFB4B2;//clSilver;//$00cccccc;
      DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;
 end;
end;


То что ту EhGrid ситуацию не меняет, там чуть события по другому называются&#133


 
kyn66   (2007-12-19 16:39) [2]

Шот я запутался в кол-ве используемых гридов... StationaryDBGridEh,
TFakeGrid ??


 
Kolan ©   (2007-12-19 16:53) [3]

> StationaryDBGridEhDrawColumnCell

Это события рисоания ячейки грида. Оно доступно в испекторе. У дб грида OnDrawColumnCell.

У DataLink есть св-во ActiveRecord

TDataLink.ActiveRecord Property
Specifies the index of the current record within the internal record buffer maintained by the dataset for the Owner of the TDataLink object.


но оно в protected секции TCustomDBGrid.

Поэтому используем &laquo;хак&raquo;.

TFakeGrid = class(TCustomDBGrid);

Вот для обычного дрида &#151; компилится но работы не проверял.

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


 
kyn66   (2007-12-19 17:11) [4]

Ага, поняно, ща будем попробывать.


 
kyn66   (2007-12-21 11:30) [5]

Работает только для видимых строк. Стоит скролом опуститься вниз или вверх - "зебра" исчезает


 
Kolan ©   (2007-12-21 11:36) [6]

> Работает только для видимых строк. Стоит скролом опуститься
> вниз или вверх &#151; &laquo;зебра&raquo; исчезает

Вроде работало для всех(бл такой баг, я вроде его как-то тогда победил)&#133 В теч дня проверю&#133


 
Kolan ©   (2007-12-21 11:44) [7]

> [5] kyn66   (21.12.07 11:30)
> Работает только для видимых строк. Стоит скролом опуститься
> вниз или вверх &#151; &laquo;зебра&raquo; исчезает

Проверил, да работает для видимых, то есть если были ст роки:

1
2
3
4
5
6
7


А потом стали видны только
2
3
4
5
То будет
2
3
4
5


То есть зебра не исчеснет, а как бы перескочит&#133

Других вариков сорри незнаю, только что на основи данных в таблице/запросе делать зебру&#133


 
kyn66   (2007-12-21 12:14) [8]

Да, раньше зебру приходилось прикручивать тока к отображаемым данным без редатирования, вот и казалось, все пучком. Стоило начать добавлять или удвлять строки - обломс, зебра запортачилась. А могет ну е ваще.... Хотя привык как-то к такому фейсу. Интерсно, как на 1С делают? Там ведь зебры везде


 
Kolan ©   (2007-12-21 12:17) [9]

> А могет ну е ваще&#133

Это ты не так что-то сделал. Моргать не должно&#133


> Стоило начать добавлять или удвлять строки &#151; обломс, зебра
> запортачилась.


В смысле раньше &#151; это на основе данных(по ключу например), да?


 
Ega23 ©   (2007-12-21 12:28) [10]

RecNo не используй. У разных потомков TDataSet оно определено по-разному.


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

Вот предложиде гриду делать Refresh? вродь работает 8-), тока видны некоторые мерцания грида


 
Kolan ©   (2007-12-21 13:51) [12]

> Вот предложиде гриду делать Refresh? вродь работает 8-),
>

А при каких условиях моргает? У меня все отлично&#133



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

Форум: "Начинающим";
Текущий архив: 2008.01.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.042 c
15-1197825737
Lip
2007-12-16 20:22
2008.01.20
Ряд Тэйлора


2-1198171895
savyhinst
2007-12-20 20:31
2008.01.20
Сменить длину динамического массива строк из процедуры нельзя?


15-1197457527
Vlad Oshin
2007-12-12 14:05
2008.01.20
Как поставить комментариb d сприптe в MS SQL serer Management?


4-1182254758
Alexey SVD
2007-06-19 16:05
2008.01.20
Как выключить компьютер под xp


2-1197971940
Indigo
2007-12-18 12:59
2008.01.20
Частотный букварь текста





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