Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2011, 18:14   #1
Multiman
Пользователь
 
Регистрация: 13.10.2010
Сообщений: 91
По умолчанию Изменение цвета определенных ячеек в StringGrid. Delphi

Доброго времени суток! Читал форумы, но именно то что мне нужно не совсем получается сделать.

1. Мне нужно изменить цвет ячейки или цвет шрифта поменять:

Код:
    n7:=1; n8:=0;
    if  StrToFloat(Label17.Caption)<0 then begin
     for j:=1 to line do begin
      isprdx:=abs(StrToFloat(Label17.Caption))/StrToFloat(Label26.Caption)* StrtoFloat(StringGrid1.Cells[8,n7]);
      StringGrid1.Cells[9,n8]:=FloatToStrF(isprdx,ffFixed,10,2);
      n7:=n7+2;  n8:=n8+2;
     end;
     end
    else
    begin
     for j:=1 to line do begin
      isprdx:=-StrToFloat(Label17.Caption)/StrToFloat(Label26.Caption)* StrtoFloat(StringGrid1.Cells[8,n7]);
      StringGrid1.Cells[9,n8]:=FloatToStrF(isprdx,ffFixed,10,2);
      n7:=n7+2;  n8:=n8+2;
    end
 end;
Нужно изменить цвет вот этого значения: isprdx.

Делал по примеру форума вот так:
Код:
procedure TMain.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  j, line, p: integer;
begin
     if StringGrid1.Cells[ACol,ARow]=FloatToStrF(isprdx,ffFixed,10,2) then begin
   StringGrid1.Canvas.Brush.Color := cllime;
   StringGrid1.Canvas.FillRect( Rect );
   StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[ACol, ARow]);
   end;
Но цвет изменяется только последнего значения. Как изменить цвет каждого выводимого значения?

2. Пользователь в моей программе сам задает число строк в гриде, а потом заполняет нужные значения. Для удобства я бы хотел изменить цвет тех ячеек куда необходимо ввести данные. Мне нужно изменить цвет ячеек через одну в разных столбцах когда пользователь формирует грид. Пожалуйста научите как это сделать.

Заранее благодарен.
Multiman вне форума Ответить с цитированием
Старый 04.10.2011, 20:03   #2
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

попробуйте заменить StringGrid на DrawGrid (он следуюший в палитре компонент)
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 04.10.2011, 20:23   #3
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

если необходимо просто через одну
Код:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
 if ARow mod 2=0 then
   StringGrid1.Canvas.Brush.Color := cllime
   else  StringGrid1.Canvas.Brush.Color := clRed;
 StringGrid1.Canvas.FillRect( Rect );
 StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[ACol, ARow]);
end;
если же для конкретных значений, то поменяйте условие в ифе ... ваш код правильный, только не определенно действие по else
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение цвета текста ячеек Aleksey1989 БД в Delphi 1 23.02.2011 18:34
Выделение цветом ячеек в StringGrid (Delphi) Lost'яра)) Помощь студентам 2 03.10.2010 10:55
Подсчет ячеек определенного цвета в StringGrid Juliya_U Компоненты Delphi 4 22.04.2010 22:39
выгрузка определенных ячеек из excel kate158 Общие вопросы Delphi 12 23.09.2009 11:26
Суммирование определенных ячеек при переносе Pilot Microsoft Office Excel 5 17.07.2008 12:46