powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TFDTable строки с датой прошедшего от текушего времени заграсить цветом
7 сообщений из 7, страница 1 из 1
TFDTable строки с датой прошедшего от текушего времени заграсить цветом
    #40114387
varbambia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите, я новичек немогу никак понять как сделать.

вот подсказали только как одну строку закрасить:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
procedure TForm2.StringGridBindSourcetable1DrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
..
      if(ARow in [1])then
   begin
    //tStringGrid(sender).Canvas.Brush.Color := clRed;
    tStringGrid(sender).Canvas.Brush.Color := clRed;
    tStringGrid(sender).Canvas.Font.Color :=clGreen;
    tStringGrid(sender).Canvas.FillRect(Rect);
   end;




https://123c.ru/files/sqlite db.zip
...
Рейтинг: 0 / 0
TFDTable строки с датой прошедшего от текушего времени заграсить цветом
    #40114388
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
varbambia,
Поменяйте окраску по условию "красить первый ряд"
Код: pascal
1.
if(ARow in [1])then


на
Код: pascal
1.
if (StrToDate (tStringGrid(sender).Cells[11,ARow]) < now()) then


/в предположении что дата у Вас в 12-й колонке/
...
Рейтинг: 0 / 0
TFDTable строки с датой прошедшего от текушего времени заграсить цветом
    #40114448
varbambia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor Cookin,

что то не робит таблица вот так выглядит

https://i.postimg.cc/63mcB5Zc/1.png

Первая колонка это время



procedure TForm1.StringGridBindSourcetable1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var Dt: TDateTime;
begin

if (StrToDate (tStringGrid(sender).Cells[0,ARow]) < now()) then
tStringGrid(sender).Canvas.Brush.Color := clRed;
tStringGrid(sender).Canvas.Font.Color :=clGreen;
tStringGrid(sender).Canvas.FillRect(Rect);
end;

end.


пишет "время" is not walid date
...
Рейтинг: 0 / 0
TFDTable строки с датой прошедшего от текушего времени заграсить цветом
    #40114451
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
varbambia,

у вас этот код выполняется для всех ячеек, в том числе для ячеек в самой первой строке (заголовков).
...
Рейтинг: 0 / 0
TFDTable строки с датой прошедшего от текушего времени заграсить цветом
    #40114608
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
varbambia, и про begin ... end не забывайте.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure TForm1.StringGridBindSourcetable1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var Dt: TDateTime;
begin
if ARow > 0 then
if (StrToDate (tStringGrid(sender).Cells[0,ARow]) < now()) then
begin
  tStringGrid(sender).Canvas.Brush.Color := clRed;
  tStringGrid(sender).Canvas.Font.Color :=clGreen;
  tStringGrid(sender).Canvas.FillRect(Rect);
end;
end;
...
Рейтинг: 0 / 0
TFDTable строки с датой прошедшего от текушего времени заграсить цветом
    #40114736
varbambia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor Cookin,

спасибо, щас др ошибка

https://i.postimg.cc/13KGKhPy/12.png

22.11.2021 22:51:00 is not walid date
что ему ненравится?

я так понял он строку неможет в дату перевести? У меня столбец время имеет тип datetime изначально туда строку невписать
...
Рейтинг: 0 / 0
TFDTable строки с датой прошедшего от текушего времени заграсить цветом
    #40114737
varbambia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
varbambia,

получилось вот так сменил StrToDate на StrToDateTime. так как фильтр и по времени тоже нужен.
Но щас текст тоже закрашен его невидно.

добавил tStringGrid(sender).Canvas.TextOut(Rect.Left+1,Rect.Top+1, tStringGrid(sender).Cells[ACol, ARow]);
все робит

всем спасибо
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TFDTable строки с датой прошедшего от текушего времени заграсить цветом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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