Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.046 c
1-1103525998
Jeka
2004-12-20 09:59
2005.01.02
Кликнуть по строке ListBox


9-1093887755
xman
2004-08-30 21:42
2005.01.02
Карты


1-1103194660
Socol
2004-12-16 13:57
2005.01.02
работа с текстовыми файлами


14-1102057966
Lancelot
2004-12-03 10:12
2005.01.02
Вопрос специалистам по Java


3-1101966626
ceval
2004-12-02 08:50
2005.01.02
Locate и





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский