Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.02;
Скачать: 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 вся ветка

Текущий архив: 2005.01.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.048 c
3-1102255866
Andrick
2004-12-05 17:11
2005.01.02
Битые индексы в dbf


14-1103185014
REP
2004-12-16 11:16
2005.01.02
Сотино.ру


3-1102079411
stud
2004-12-03 16:10
2005.01.02
ошибка в базе данных фб1,5


4-1100296579
Dot
2004-11-13 00:56
2005.01.02
работа с реестром


14-1102806552
123
2004-12-12 02:09
2005.01.02
Как правильно настроить firewall?