Topic: Совместить два скрипта
Помогите пожалуйста совместить два скрипта, что-то совсем не получается. Вернее получилось окрасить только по одному условию.
Есть в моем проекте вот такой скрипт выделения ячеек по условию который в принципе работает:
procedure Form1_TableGrid2_OnChange (Sender: string);
/////// Цвет фона ячейки грида при условии /////////////
var
i,c: integer;
sDate: string;
begin
c := Form1.TableGrid2.RowCount - 1;
for i := 0 to c do
begin
sDate := Form1.TableGrid2.Cells[5,i];
if (StrToDate(sDate) - now) < 1 then Form1.TableGrid2.Cell[5,i].Color := $007175BD
else if (StrToDate(sDate) - now) < 3 then Form1.TableGrid2.Cell[5,i].Color := clYellow
end;
end;
И есть вот такой скрипт выделения строк по условию с примера, взятого на этом форуме:
procedure Form1_TabGr_TaskList_OnChange (Sender: string);
var
i,f,r,c: integer;
begin
Form1.TabGr_TaskList.BeginUpdate;
r := Form1.TabGr_TaskList.Columns.Count - 1;
c := Form1.TabGr_TaskList.RowCount - 1;
for i := 0 to r do
begin
if Form1.TabGr_TaskList.Cells[5,i] = 'Нет' then
begin
for f := 0 to r do
Form1.TabGr_TaskList.Cell[f,i].Color := clGray;
end;
end;
Form1.TabGr_TaskList.EndUpdate;
end;
Хотелось бы, чтобы работало выделение строк по двум условиям даты в первом коде, а также по условию наличия значения в ячейке (любого значения)
Например
Разница дат < 1 - цвет $007175BD
Разница дат < 3 - цвет clYellow
Заполнена ячейка ( ячейка с датой, или текстовое поле), то цвет строки clGray, при этом первые два условия игнорируются
P.S. Так до сих пор не смог решить проблему: ячейки (строки) выделяются цветом только когда кликнуть по целевой таблице, хотя значения в этой таблице появляются автоматически при клике на ячейку в другой таблице.
Пока выделение цветом срабатывает только при старте, при первом поиске. Если искать повторно, то цветом не выделяет.
Вот пример как это происходит: при старте все работает нормально, но стоит кликнуть на таблице телефоны, как потом выделение цветом работать перестает.: