Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.20;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
15-1197744591
GeLLeR
2007-12-15 21:49
2008.01.20
Протестите прогу


2-1198174004
Stepper
2007-12-20 21:06
2008.01.20
Как при сохранении данных из RichEdit - добавить к ним строку..


2-1197965944
Washington
2007-12-18 11:19
2008.01.20
Пароль на базу данных MS Access


2-1197854221
Bpeguk
2007-12-17 04:17
2008.01.20
Конвертер систем


2-1198046858
vegarulez
2007-12-19 09:47
2008.01.20
Проблема с установкой indy 10 на D6.