powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как раскрасить DBGrid по условию ?
8 сообщений из 33, страница 2 из 2
Как раскрасить DBGrid по условию ?
    #39702335
Sensor230
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может я чего не правильно сказал или неправильно был понят, но раз тема не закрывается попробую еще раз написать "хотелки" (хотелки - не могут быть ТЗ, т.к. ТЗ для программистов должно писаться программистом).
Так вот...
ДАНО:
Сетевой диск, на нем БД MS Access, несколько компов привязаны к ней ADOConneck+ADOQuery, Кто то из пользователей создает задачу/заявку, которая добавляется в таблицу и видна всем другим. При создании, в зависимости от категории создаваемой задачи, при помощи incDay(ДатаСоздания, +Х) устанавливается срок "+Х" до которого создаваемая задача должна быть выполнена/решена. Дата создания и дата выполнения записаны в таблицу. Для понтов таблица раскрашивается пастэльными тонами в зависимости от категории (жалобы-синие, благодарности - зеленые и т.д.)
НУНО (хотца):
Чтоб строки в таблице окаршивались как и было, но за 5 дней до истечения срока выполнения становились желтыми , за 3 для до окончания срока оранжевыми, а за 1 день или при просрочке - красными.

Вот как то так.
...
Рейтинг: 0 / 0
Как раскрасить DBGrid по условию ?
    #39702337
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Топики не закрываются без необходимости (нарушения правил и пр.).
Получение автором кода/ответа на вопрос необходимостью не является.

2. Воздержитесь от коверкания, пожалуйста.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как раскрасить DBGrid по условию ?
    #39702349
Sensor230Чтоб строки в таблице окаршивались как и было, но за 5 дней до истечения срока выполнения становились желтыми , за 3 для до окончания срока оранжевыми, а за 1 день или при просрочке - красными.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
S := ADOQuery1['Статус'];
with DBGrid1.Canvas.Brush do
  if (d2 - d1) < 1 then Color:=clRed else // за 1 день и просроченные
  if (d2 - d1) < 3 then Color:=clOrange else // за 3 дня
  if (d2 - d1) < 5 then Color:=clYellow else // за 5 дней
// раскраска по категориям
  if S = 'В работе' then Color:=clLime else
  if S = 'В очередь' then Color:=clSilver else Color := clWhite;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.TextOut(Rect.Left,Rect.Top,Column.Field.AsString);
...
Рейтинг: 0 / 0
Как раскрасить DBGrid по условию ?
    #39702356
Sensor230
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это же так просто, Почему то красит всю таблицу в один цвет. Что за один день до окончания срока, что за месяц, полностью вся таблица красная. Может у меня что в настройках не так? и так работают все предложенные варианты. Разноцвета не получается...
...
Рейтинг: 0 / 0
Как раскрасить DBGrid по условию ?
    #39702358
Sensor230Это же так просто, Почему то красит всю таблицу в один цвет. Что за один день до окончания срока, что за месяц, полностью вся таблица красная. Может у меня что в настройках не так? и так работают все предложенные варианты. Разноцвета не получается...
Значит d1 и d2 перепутаны
...
Рейтинг: 0 / 0
Как раскрасить DBGrid по условию ?
    #39702363
Sensor230
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это же так простоSensor230Это же так просто, Почему то красит всю таблицу в один цвет. Что за один день до окончания срока, что за месяц, полностью вся таблица красная. Может у меня что в настройках не так? и так работают все предложенные варианты. Разноцвета не получается...
Значит d1 и d2 перепутаны

"Значит d1 и d2 перепутаны" - вот так просто раз и все!!!
Будешь в Ногинске позвони! С меня рюмка чаю! Оказалось (замыленная) проблема в том, что d1:=(Сегодня), а d2 вместо (СрокИсполнения) присваивалось (Дата) что одно и тоже с разницей в несколько секунд, в итоге получалось что всегда d1-d2=всегда чуть меньше "0".
УРА!!! УРА!!! УРА!!! Теперь буду раскрашеным гридом всем в глазах рябить)))))

кстати а оренжевого цвета в палитре нет ))))
...
Рейтинг: 0 / 0
Как раскрасить DBGrid по условию ?
    #39702366
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sensor230,

ты невнятно задаешь вопрос, требуешь float и сравниваешь с целым...
и кстати, в " палитре" ЕСТЬ все цвета. Учись
...
Рейтинг: 0 / 0
Как раскрасить DBGrid по условию ?
    #39702404
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sensor230
кстати а оренжевого цвета в палитре нет ))))

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function GetMixColor(c1, c2: TColor): TColor;
begin
  Result := RGB(
    (GetRValue(c1) + GetRValue(c2)) div 2,
    (GetGValue(c1) + GetGValue(c2)) div 2,
    (GetBValue(c1) + GetBValue(c2)) div 2
    );
end;

GetMixColor(clRed, clYellow);




:-)
...
Рейтинг: 0 / 0
8 сообщений из 33, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как раскрасить DBGrid по условию ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]