Вниз
Скачать: CL | DM;

Работа со строками в StringGrid   Найти похожие ветки 

← →
ArchValentin ©   (2004-12-16 04:21) [0]

Мастера, help! кто знает как добится эффекта чтобы в стринггрид строки отображались разного цвета (одна белая, другая голубая, одна белая, другая голубая...) а то когда инфы много, читать неудобно :( ??? а может кто знает как эту проблемму решить другим путём...если не сложно, пошлите pls ответ на мыло...
Заранее благодарен.


← →
Германн ©   (2004-12-16 04:25) [1]

Обрабатывай OnDrawCell. И никаких проблем не будет.


← →
ArchValentin ©   (2004-12-16 19:28) [2]

...а теперь глупый вопрос: обработал, а чё дальше? как разукрашивать?


← →
begin...end ©   (2004-12-16 19:32) [3]

> [2] ArchValentin ©   (16.12.04 19:28)

В обработчике OnDrawCell Вы получаете прямоугольник отрисовываемой ячейки (Rect). Закрасить его можно с помощью FillRect, вывести в нём текст можно с помощью TextRect.


← →
ArchValentin ©   (2004-12-19 07:04) [4]

я такой исходничёк видел, вот толдько либо я лохонулся, либо исходник был корявый...разукрашивал красиво, а текст можно было выводить тока в первый столбик, в остальные он просто игнорировал! как лечить?
ЗЫ народ, кинте маленький пример, и мне проще, и вам не нужно будет всякую фигню писать...


← →
begin...end ©   (2004-12-19 10:35) [5]

> [4] ArchValentin ©   (19.12.04 07:04)

> народ, кинте маленький пример

procedure TForm.StringGridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
 with (Sender as TStringGrid).Canvas do
 begin
   Brush.Color := Random($FFFFFF);
   FillRect(Rect);
   TextOut(Rect.Left, Rect.Top, Format("%d %d", [ACol, ARow]))
 end
end.


> и вам не нужно будет всякую фигню писать

Да мне, в общем-то, писать всякую фигню совсем не сложно...


← →
begin...end ©   (2004-12-19 10:44) [6]

> ArchValentin

В Вашем случае, как я понял из [0], нужно менять цвет строк в зависимости от чётности номера строки, поэтому можно так, например:

procedure TForm.StringGridDrawCell(Sender: TObject; ACol, ARow: Integer;  Rect: TRect; State: TGridDrawState);
const
 ColorArray: array [False..True] of TColor = (clBlue, clWhite);
begin
 if (ACol > 0) and (ARow > 0) then
   with (Sender as TStringGrid).Canvas do
   begin
     Brush.Color := ColorArray[Odd(ARow)];
     FillRect(Rect);
     TextOut(Rect.Left, Rect.Top, Format("%d %d", [ACol, ARow]))
   end
end.


← →
ArchValentin ©   (2004-12-19 18:06) [7]


> Да мне, в общем-то, писать всякую фигню совсем не сложно...

...извиняйте, никого не хотел обидеть...а вообще, спасиба, завтра попробую, счастливо



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.03 c
9-1093887755
xman
2004-08-30 21:42
2005.01.02
Карты


6-1097617392
Zeon
2004-10-13 01:43
2005.01.02
Проверка существования этектронного адреса


14-1102629867
GanibalLector
2004-12-10 01:04
2005.01.02
пЫвко


1-1103114913
korvin
2004-12-15 15:48
2005.01.02
В TCheckListBox проставить галочки тыкая в названия


14-1102921584
able
2004-12-13 10:06
2005.01.02
Акустика..




   Наверх