Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.06.30;
Скачать: [xml.tar.bz2];

Вниз

TStringGrid   Найти похожие ветки 

 
RoadStar   (2003-06-17 13:39) [0]

Как в сабже сделать так, чтобы при выделении строки (обычно синий цвет фона и белый цвет фонта) цвет выделения был другим, а цвет фонта остался таким, каким он был до выделения (синий, красный и т.д.)
Заранее благодарен!


 
ggsoft   (2003-06-17 13:46) [1]

TStringGrid.OnDrawCell event.


 
Song   (2003-06-17 13:47) [2]

Цвет фонта - TStringGrid.Canvas.Font.Color
Цвет выделения - TStringGrid.Canvas.Brush.Color+TStringGrid.Canvas.FillRect()


 
RoadStar   (2003-06-17 14:07) [3]


> Song


Закрасить другим цветом получилось, а вот у фонта цвет не устанвливается!!!
Помоги, пожалйуста!!!


 
dataMaster   (2003-06-17 14:16) [4]

Поищи на этом сайте компонент VesColorStringGrid


 
RoadStar   (2003-06-17 14:18) [5]


> dataMaster


Спасибки за компонент, а тока хочется стандартным обойтись...
Может есть какие нибудь наработки или идеи?


 
dataMaster   (2003-06-17 14:39) [6]

Вот нашел в факах, но боюсь это несколько не то, но все же...


1. StringGrid
=============
Для раскрашивания будем использовать событие "OnDrawCell". Следующий код показывает, как сделать в Grid красный бэкраунд. Бэкграунд второй колонки будет зелёным.


procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);

Const //сдесь определяем Ваш цвет. Так же можно использовать
//цвета по умолчанию.
clPaleGreen = TColor($CCFFCC);
clPaleRed = TColor($CCCCFF);

begin

//Если ячейка получает фокус, то нам надо закрасить её другими цветами
if (gdFocused in State) then begin
StringGrid1.Canvas.Brush.Color := clBlack;
StringGrid1.Canvas.Font.Color := clWhite;
end
else //Если же ячейка теряет фокус, то закрашиваем её красным и зелёным

if ACol = 2 //Вторая колонка будет зелёной , другие - ячейки красными
then StringGrid1.Canvas.Brush.color := clPaleGreen
else StringGrid1.canvas.brush.Color := clPaleRed;

//Теперь закрасим ячейки, но только, если ячейка не Title- Row/Column
//Естевственно это завит от того, есть у Вас title-Row/Columns или нет.

If (ACol > 0) and (ARow>0) then
begin
//Закрашиваем бэкграунд
StringGrid1.canvas.fillRect(Rect);

//Закрашиваем текст (Text). Также здесь можно добавить выравнивание и т.д..
StringGrid1.canvas.TextOut(Rect.Left,Rect.Top,StringGrid1.Cells[ACol,ARow]);
end;
end;



Если Вы захотите чтобы цвет ячеек менялся в зависимости от значения в них, то можно заменить 3 линии (if Acol = 2 ......) на что-нибуть вроде этого

if StringGrid1.Cells[ACol,ARow] = "highlight it"
then StringGrid1.Canvas.Brush.color := clPalered
else StringGrid1.canvas.brush.Color := clwhite;


 
Song   (2003-06-17 15:21) [7]

2RoadStar © (17.06.03 14:07)
http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=delphi;action=display;num=1037272197



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

Форум: "Основная";
Текущий архив: 2003.06.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
1-97634
Bagroff
2003-06-19 17:50
2003.06.30
Сортировка массива


14-97863
MrMister
2003-06-12 23:07
2003.06.30
Где найти компонент для создания отчетов


6-97773
_DarkSide
2003-04-24 16:34
2003.06.30
Локальные компьютеры


7-97901
YuVoUA
2003-04-21 16:49
2003.06.30
Копирование из clipboard с указанием языка текста


14-97804
StarCon
2003-06-10 12:47
2003.06.30
а не пора ли перейти на Delphi 7





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский