Форум: "Основная";
Текущий архив: 2005.01.02;
Скачать: [xml.tar.bz2];
ВнизРабота со строками в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c