Lo que me estaba faltando era en el DBPeriodSource1 un par de eventos que levantan y guardan los colores en la tabla.
Porque sin eso lo pintaba en tiempo de ejecucion pero la proxima vez perdía los colores.
Código Delphi
[-]
procedure TFform1.DBPeriodSource1FieldsToItem(Sender: TObject;
Fields: TFields; Item: TPlannerItem);
begin
Item.Color := TColor(Fields.FieldByName('COLOR').AsInteger);
end;
procedure TFform1.DBPeriodSource1ItemToFields(Sender: TObject;
Fields: TFields; Item: TPlannerItem);
begin
Fields.FieldByName('COLOR').AsInteger := Integer(Item.Color);
end;