![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа со строками в StringGrid [D7, WinXP]
ArchValentin © (2004-12-16 04:21:00)Мастера, help! кто знает как добится эффекта чтобы в стринггрид строки отображались разного цвета (одна белая, другая голубая, одна белая, другая голубая...) а то когда инфы много, читать неудобно :( ??? а может кто знает как эту проблемму решить другим путём...если не сложно, пошлите pls ответ на мыло...
Заранее благодарен.
ArchValentin (2004-12-19 18:06:00) [1]
> Да мне, в общем-то, писать всякую фигню совсем не сложно...
...извиняйте, никого не хотел обидеть...а вообще, спасиба, завтра попробую, счастливо
begin...end (2004-12-19 10:44:00) [2]> 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.
begin...end (2004-12-19 10:35:00) [3]> [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.
> и вам не нужно будет всякую фигню писать
Да мне, в общем-то, писать всякую фигню совсем не сложно...
ArchValentin (2004-12-19 07:04:00) [4]я такой исходничёк видел, вот толдько либо я лохонулся, либо исходник был корявый...разукрашивал красиво, а текст можно было выводить тока в первый столбик, в остальные он просто игнорировал! как лечить?
ЗЫ народ, кинте маленький пример, и мне проще, и вам не нужно будет всякую фигню писать...
begin...end (2004-12-16 19:32:00) [5]> [2] ArchValentin © (16.12.04 19:28)
В обработчике OnDrawCell Вы получаете прямоугольник отрисовываемой ячейки (Rect). Закрасить его можно с помощью FillRect, вывести в нём текст можно с помощью TextRect.
ArchValentin (2004-12-16 19:28:00) [6]...а теперь глупый вопрос: обработал, а чё дальше? как разукрашивать?
Германн (2004-12-16 04:25:00) [7]Обрабатывай OnDrawCell. И никаких проблем не будет.