На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Dmitry_ (Все сообщения пользователя)

Поиск  Пользователи  Правила  Войти
Форум » Пользователи » Dmitry_
Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 29 След.
gtk12, функция mapSetFrameTree
 
Библиотеки GTK-12 x32 обновлены и доступны для скачивания: [URL=http://gisinfo.ru/download?id=179]http://gisinfo.ru/download?id=179[/URL]
Сохранение области карты в BMP, TIFF вместе с объектами iml, Не срохраняются объекты, отрисованные через iml, типа документ- вставка
 
[QUOTE]Максим Казаровец написал:
Здравствуйте, по Вашему совету отказался от вставки OLE объектов через контейнеры, вместо них использую вставку через IML(объекты типа документ-вставка ms exel, word). Столкулся с проблемой, на карте данные объекты вместе с документами отображаются нормально, но при сохранении их в BMP, TIFF привязанные документы не отрисовываются. Сохраняю функцией LoadMapToPicture(), gtk 11 free крайняя версия с последними библиотеками для gtk11, c builder 6. Как правильно их сохранить, чтобы все отрисовалось???
[/QUOTE]
[QUOTE]Максим Казаровец написал:
Выслал вам на почту, тема: "Пример вставки документа через iml, не сохраняется в bmp".
Какое решение и можно ли поправить для gtk11?
[/QUOTE]
На присланной вами карте RED.SIT мы не обнаружили специальных объектов типа «документ-вставка» или «документ-врезка», используемых программируемые знаки shape.iml.

Для добавления на карту RED.SIT документа Microsoft Word в ГИС Карта2011 версии 11.13.7 выполнены следующие действия:

1. В классификатор redkit.rsc подключена библиотека программируемых условных знаков shape.iml
[IMG WIDTH=1212 HEIGHT=841]http://public.gisinfo.ru/Forum/IML/1.png[/IMG]

2. В классификатор redkit.rsc добавлен условный знак "Врезка карты" в слой "Системный" с ключом S0000000094
[IMG WIDTH=1212 HEIGHT=841]http://public.gisinfo.ru/Forum/IML/2.png[/IMG]

3. Для условного знака "Врезка карты" добавлена семантика с кодом 32769. Указанная семантика нужна для хранения ссылки на отображаемый документ
[IMG WIDTH=1212 HEIGHT=841]http://public.gisinfo.ru/Forum/IML/3.png[/IMG]

4. На карте создаем объект "Врезка карты". В семантику добавляем имя файла документа Microsoft Word
[IMG WIDTH=1699 HEIGHT=1021]http://public.gisinfo.ru/Forum/IML/4.png[/IMG]

5. Изображение карты RED.SIT c добавленным объектом "Врезка карты", отображающим таблицу документа Microsoft Word

[IMG WIDTH=1707 HEIGHT=1027]http://public.gisinfo.ru/Forum/IML/5.png[/IMG]


[B]Тестирование функции LoadMapToPicture:[/B]

1. Для тестирования функции LoadMapToPicture используем пример приложения из состава GIS ToolKit версии 11. c:\Program Files (x86)\Borland\CBuilder6\GisTool11\Example\Builder\Rastr\

[IMG WIDTH=800 HEIGHT=600]http://public.gisinfo.ru/Forum/IML/6.png[/IMG]

2. Меняем содержимое функции-отклика на кнопку «Создать растр» приложения c:\Program Files (x86)\Borland\CBuilder6\GisTool11\Example\Builder\Rastr\Rsttest.bpr:

[CODE]void __fastcall TfrmMain::btnCreateRstClick(TObject *Sender)
{
  //    Сохранить карту в формате BMP, Tiff, RSW
  HMAP hmap = MapView->MapHandle;

  TDFRAME dframe;
  dframe.X1 = 6135785.251904;
  dframe.Y1 = 7430390.784093;

  dframe.X2 = 6162804.093555;
  dframe.Y2 = 7466319.064568;

  int bitcount = 24;
  int scale    = 100000;
  int resolution = 300;
  const char * filename = "Test.rsw";
  const char * filename1 = "Test1.bmp";
  const char * filename2 = "Test2.tif";
  HWND handleMainWin = 0;

  typedef int (WINAPI * F_LoadMapToPicture)(HMAP aMAp, HWND handle,
                                            Maptype::PDFRAME aframe,
                                            int bitcount, int scale, int resolution,
                                            const char * filename, HWND handleMainWin);

  HINSTANCE libinst = 0;

  F_LoadMapToPicture lpfn_LoadMapToPicture = (F_LoadMapToPicture)mapLoadLibrary("GISPICEX.DLL"/*MAPPICEXLIB*/, (unsigned)libinst, "LoadMapToPicture");
  if (lpfn_LoadMapToPicture != 0)
    {
     //    Сохранить карту в формате RSW
     if (lpfn_LoadMapToPicture(hmap, Handle, &dframe, bitcount, scale, resolution, filename, handleMainWin) != 0)
       {
        ::MessageBox(0, "Процесс выполнен успешно", filename, MB_OK|MB_TASKMODAL|MB_ICONINFORMATION);
       }

     //    Сохранить карту в формате BMP
     if (lpfn_LoadMapToPicture(hmap, Handle, &dframe, bitcount, scale, resolution, filename1, handleMainWin) != 0)
       {
        ::MessageBox(0, "Процесс выполнен успешно", filename1, MB_OK|MB_TASKMODAL|MB_ICONINFORMATION);
       }

     //    Сохранить карту в формате Tiff
     if (lpfn_LoadMapToPicture(hmap, Handle, &dframe, bitcount, scale, resolution, filename2, handleMainWin) != 0)
       {
        ::MessageBox(0, "Процесс выполнен успешно", filename2, MB_OK|MB_TASKMODAL|MB_ICONINFORMATION);
       }
    }
  if (libinst)
     mapFreeLibrary((unsigned)libinst);
}
[/CODE]3. Результат сохраненного изображения карты в файл RSW (d:\data\RedKit\Test.rsw) открываем для контроля в ГИС Карта2011 версии 11.13.7
[IMG WIDTH=1920 HEIGHT=1032]http://public.gisinfo.ru/Forum/IML/8.png[/IMG]

Применив функцию LoadMapToPicture, мы сохранили изображение карты приложением, разработанным на GIS ToolKit версии 11. Приложение тестировалось на библиотеках GIS ToolKit версии 11.13 от 11.12.2017 с нашего сайта ([URL=http://gisinfo.ru/download?id=101]http://gisinfo.ru/download?id=101[/URL]). На карте предварительно создали объект "Врезка карты" с отображением документа Microsoft Word. Изображение карты сохранялось в файлы RSW, BMP, TIFF. Изображение таблицы документа Microsoft Word из объекта "Врезка карты" сохранилось во все перечисленные файлы (RSW, BMP, TIFF).

Сохранение области карты в BMP, TIFF вместе с объектами iml, Не срохраняются объекты, отрисованные через iml, типа документ- вставка
 
Максим, прошу выслать на нашу почту пример карты с проблемным документом-вставкой.
Сохранение области карты в BMP, TIFF вместе с объектами iml, Не срохраняются объекты, отрисованные через iml, типа документ- вставка
 
Здравствуйте!

Проблему увидели, разбираемся.
Спасибо за сообщение.
[ Закрыто] gisu64vcacces.dll access violation, Application Verifier выдает access violation при загрузке gisu64vcacces.dll
 
[QUOTE]Александр Волков написал:
Дмитрий, вы использовали неправильную последовательность.


Сначала надо открыть карту m100.sit, и к ней уже добавить airbases.map.


Преобразование на лету работает, но если вы сделаете так:


1. Открываем m100.sit
2. Добавляем к ней  airbases.map передавая 1 в transform: mapAppendDataEx(hMap, nameA, GENERIC_READ, 1)
3. Закрываем MapView
4. Меняем код: передаем в transform 0: mapAppendDataEx(hMap, nameA, GENERIC_READ, 0)
5. Собираем
6. Открываем m100.sit
7. Добавляем к ней  airbases.map


Вы данные airbases.map на экране не увидете.


Отсортировав карту и открыв ее в Панорама Мини вы всетаки увидете данные карты, но с кривыми координатами, как в моих предыдущих сообщениях.
Видимо проблема в сохранении карты
[/QUOTE]
Было бы интереснее, если бы инструция на использование данных поступала бы одновременно с самим архивом тестовых данных...
Это сэкономило бы много времени.

Модифицировал функцию CMapView::OnFileAppendSite в соответствии с новыми пожеланиями. Теперь мы физически трансформируем карту к системе координат базовой карты.
В качестве базовой карты используем m100.sit (СК-42), в качестве добавляемой карты - airbases.map (проекция Цилиндрическая Меркатора, код EPSG:3395, 3857).
[CODE]void CMapView::OnFileAppendSite()
{
   CFileDialog theDlg(true, TEXT("*.sit"), NULL, OFN_SHOWHELP|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR,
                      TEXT("Карты обстановки(*.sit)|*.sit|Все файлы (*.*)|*.*||"));
   
   HSITE hSite;
       
   if(theDlg.DoModal()==IDOK)
   {
// if(GetHMAP()) hSite=::mapOpenSiteForMap(GetHMAP(), theDlg.GetPathName(),0);

 // Добавить данные к открытой карте (карту, растр, матрицу)
 // hMap -  идентификатор открытых данных
 // name - имя открываемого файла (MAP, SIT, MTW, MTQ, RSW, MPT)
 // mode - режим чтения/записи (GENERIC_READ, GENERIC_WRITE или 0)
 // Возвращает идентификатор типа данных (FILE_MAP - для векторной
 // карты, FILE_RSW - для растра, FILE_MTW - для матрицы, FILE_MTL - для
 // матрицы слоев, FILE_MTQ - для матрицы качеств), данные добавляются в
 // список последними, если данные уже были открыты, число открытых данных
 // (карт, растров, матриц) не меняется
 // transform - признак трансформирования пользовательской карты
 //             к ранее открытым данным (если проекции разные):
 //             0 - не трансформировать данные (преобразовывать "на лету"),
 //             1 - трансформировать данные при открытии и сохранить карту
 //                 в новой проекции,
 //            -1 - задать вопрос пользователю.
 // В серверной версии (-1) обрабатывается, как 0.
 // При ошибке возвращает ноль

HMAP hMap = GetHMAP();
if (hMap)
{
char nameA[MAX_PATH_LONG] = {0};
UnicodeToString(theDlg.GetPathName(), nameA, sizeof(nameA));
        // 0 - не трансформировать данные (преобразовывать "на лету"),
// if (mapAppendDataEx(hMap, nameA, GENERIC_READ, 0) != 0)

        //             1 - трансформировать данные при открытии и сохранить карту
        //                 в новой проекции,
if (mapAppendDataEx(hMap, nameA, GENERIC_WRITE, 1) != 0)
{
         // Перерисовка карты

         // Координаты точки в системе координат СК-42
         DOUBLEPOINT point;
         
 point.X = 1701546.145;
 point.Y = 13373581.678;

 // Переместить центр экрана в заданную точку
         // point - координаты в метрах
         ViewPlanePoint(&point);

   Invalidate(false);
 UpdateWindow();
}
else
{
         AfxMessageBox(TEXT("Error while open Site"));
}
}
 }
}
//---------------------------------------------------------------------------

[/CODE]
Для того, чтобы увидеть данные добавленной карты airbases.map на экране, выполняется перерисовка окна карты со смещением карты в интересующую точку:
[CODE] // Перерисовка карты

         // Координаты точки в системе координат СК-42
         DOUBLEPOINT point;
         
 point.X = 1701546.145;
 point.Y = 13373581.678;

 // Переместить центр экрана в заданную точку
         // point - координаты в метрах
         ViewPlanePoint(&point);

         Invalidate(false);
         UpdateWindow();
[/CODE]


Обратите внимание на применение функции mapAppendDataEx в ваших текстах:[CODE] for (auto &item: m_map_pyramid)
   {
       const std::string map_path = (boost::filesystem::path(file_path).branch_path() / item.name).string();
       item.hmap = st::panorama::mapOpenMap(map_path.c_str(), GENERIC_READ);
       if (0 == item.hmap)
       {
           _sprintf(m_last_error, sizeof(m_last_error), "Can't open file: '%s': mapOpenMap failed", map_path);
           return false;
       }
       if (!airbases_path.empty())
       {
           st::panorama::mapAppendDataEx(item.hmap, airbases_path.c_str(), GENERIC_READ, 1);  // Если закоментарить это, все будет ОК
       }

       st::panorama::mapSetBackColor(item.hmap, RGB(241, 238, 233));

       item.hselect = st::panorama::mapCreateMapSelectContext(item.hmap);
       st::panorama::mapSelectLayer(item.hselect, -1, 1);
       st::panorama::mapSetViewSelect(item.hmap, item.hselect);
   }
[/CODE]
Открывается файл airbases_path.c_str() карты на чтение (GENERIC_READ) с флагом физического трансформирования карты 1.
Значения третьего и четвертого аргументов функции mapAppendDataEx противоречат друг другу.
Если предполагается трансформирование карты, то файл карты должен открываться с флагом GENERIC_WRITE, т.е. на запись.

mapAppendDataEx(hMap, nameA, GENERIC_WRITE, 1)

В функцию mapAppendDataEx добавлена проверка корректности входных параметров.
Если на вход функции mapAppendDataEx в качестве третьего и четвертого параметров будут приходить значения GENERIC_READ и 1, то карта (при необходимости)
будет трансформироваться "на лету" (в памяти).




[QUOTE][URL=http://gisweb.ru/forum/user/2686/]Александр Волков[/URL] написал:
15.02.2018 12:08:30
Рендер пирамиды карт стал подтормаживать при переходе на новый масштаб.  Если пройтись по всем масштабам и отрисовать хотя бы раз каждый - все  начинает нормально работать. Т.е. такое ощущение, что при первой  отрисовки каждой из карт происходит какая то инициализация, приводящая к  довольно ощутимому подвисанию.
[/QUOTE]

[QUOTE][URL=http://gisweb.ru/forum/user/2686/]Александр Волков[/URL] написал:
21.02.2018 10:46:33
Просьба обратить внимание на такой момент (я его уже описывал). В новой версии GTK при отображении карты возникают подвисания при первой отрисовке каждого из уровней пирамиды. Если пробежаться по всем уровням и отрисовать хотя бы один раз каждый - все становится нормально. Далее можно прыгать куда угодно по карте и переключать масштабы и все будет ОК. Ранее такого не наблюдалось, все хорошо и быстро работало.
[/QUOTE]

Ваш вопрос решен.

Обновленные библиотеки GTK-12 размещены на нашем сайте: [URL=http://gisinfo.ru/download?id=211]http://gisinfo.ru/download?id=211[/URL]
Изменено: Dmitry_ - 27.02.2018 17:55:47
[ Закрыто] gisu64vcacces.dll access violation, Application Verifier выдает access violation при загрузке gisu64vcacces.dll
 
[QUOTE]Александр Волков написал:
Отправил в личном сообщении ссылку.

В архиве пирамида карт (m50.sit самая детальная) и немного исходников.
Выкорчевал исходники непосредственно отображающие карту. "Из коробки" это не заработает, но немного поковырявшись можно будет собрать рабочий проект, если конечно это необходимо.
При загрузке парсится файл map.mdesc, загружается пирамида карт и т.п.
[/QUOTE]
Тесты выполняются с картами из полученного архива.

[B]Рассмотрим вариант добавления карты m100.sit в airbases.map в ГИС Панорама Мини:[/B]

Откраваем в ГИС Панорама Мини карту airbases.map. Её проекция - Цилиндрическая Меркатора (EPSG: 3395).
Добавляем в документ крту m100.sit в СК-42, проекция равноугольная Гаусса-Крюгера.  
Программа обнаруживает отличие параметров проекции и СК этих карт и задает вопрос:



Если нажать ДА, то добавляемая карта будет трансформирована. Файл исходной карты скопируется в папку COPY. На её месте разместится файл преобразованной карты.
Если нажать НЕТ, то добавляемая карта будет преобразована налету. Новая карта физически создаваться не будет.
Если нажать ОТМЕНА, то добавление карты выполнено не будет.

Отвечаем НЕТ - добавляемая карта преобразуется к системе координат документа  налету:



[B]Рассмотрим вариант добавления карты m100.sit в airbases.map вызовом функции mapAppendDataEx в тестовом примере MapViewer для Visual Studio C++ ( [URL=http://gisinfo.ru/download?id=208]http://gisinfo.ru/download?id=208[/URL] ). [/B]
Для этого немного модифицировал функцию-отклик на пункт меню "File -> Append -> Site".
Заменил вызов функции mapOpenSiteForMap на mapAppendDataEx и добавил команду на перерисовку окна карты в требуемой точке.[CODE]//---------------------------------------------------------------------------
// Добавить пользовательскую карту
//---------------------------------------------------------------------------
void CMapView::OnFileAppendSite()
{
   CFileDialog theDlg(true, TEXT("*.sit"), NULL, OFN_SHOWHELP|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR,
                      TEXT("Карты обстановки(*.sit)|*.sit|Все файлы (*.*)|*.*||"));
   
   HSITE hSite;
       
   if(theDlg.DoModal()==IDOK)
   {
// if(GetHMAP()) hSite=::mapOpenSiteForMap(GetHMAP(), theDlg.GetPathName(),0);

 // Добавить данные к открытой карте (карту, растр, матрицу)
 // hMap -  идентификатор открытых данных
 // name - имя открываемого файла (MAP, SIT, MTW, MTQ, RSW, MPT)
 // mode - режим чтения/записи (GENERIC_READ, GENERIC_WRITE или 0)
 // Возвращает идентификатор типа данных (FILE_MAP - для векторной
 // карты, FILE_RSW - для растра, FILE_MTW - для матрицы, FILE_MTL - для
 // матрицы слоев, FILE_MTQ - для матрицы качеств), данные добавляются в
 // список последними, если данные уже были открыты, число открытых данных
 // (карт, растров, матриц) не меняется
 // transform - признак трансформирования пользовательской карты
 //             к ранее открытым данным (если проекции разные):
 //             0 - не трансформировать данные (преобразовывать "на лету"),
 //             1 - трансформировать данные при открытии и сохранить карту
 //                 в новой проекции,
 //            -1 - задать вопрос пользователю.
 // В серверной версии (-1) обрабатывается, как 0.
 // При ошибке возвращает ноль

HMAP hMap = GetHMAP();
if (hMap)
{
 char nameA[MAX_PATH_LONG] = {0};
 UnicodeToString(theDlg.GetPathName(), nameA, sizeof(nameA));
         // 0 - не трансформировать данные (преобразовывать "на лету"),
 if (mapAppendDataEx(hMap, nameA, GENERIC_READ, 0) != 0)
   {
            // Перерисовка карты

            // Координаты точки базовой карты airbases.map
            DOUBLEPOINT point;
      point.X = 1722116.224;
    point.Y = 8218367.890;

    // Переместить центр экрана в заданную точку
            // point - координаты в метрах
            ViewPlanePoint(&point);
   }
  else
   {
            AfxMessageBox(TEXT("Error while open Site"));
   }
}
  }
}
//---------------------------------------------------------------------------
[/CODE]Откраваем в тестовом примере MapViewer.exe карту airbases.map.


Добавляем в документ крту m100.sit в СК-42, проекция равноугольная Гаусса-Крюгера.  


Отработала функция CMapView::OnFileAppendSite() и обе карты совместились.
При вызове функции mapAppendDataEx в качестве аргумента transform необходимо подавать значение 0, тогда добавляемая карта будет преобразована "на лету" (в памяти).
Значение 0 для параметра transform эквивалентно ответу НЕТ при добавлении карты в ГИС Панорама Мини.
После добавления карты в документ его габариты меняются, поэтому необходимо выполнить действия по перерисовке карты в требуемой точке.
[ Закрыто] gisu64vcacces.dll access violation, Application Verifier выдает access violation при загрузке gisu64vcacces.dll
 
[QUOTE]Александр Волков написал:
Карта действительно "улетела", кто-то неправильно преобразовал координаты, видимо это функция mapAppendDataEx или то, что она вызывает внутри себя. Посмотрите, пожалуйста, скриншот ниже и код функции mapAppendDataEx (Кружком отмечено примерное положение курсора)[/QUOTE]
Для исследования данной ситуации прошу предоставить главную карту, в которую вызовом функции mapAppendDataEx добавляется производная карта after_transform.
[ Закрыто] gisu64vcacces.dll access violation, Application Verifier выдает access violation при загрузке gisu64vcacces.dll
 
[QUOTE]Александр Волков написал:
Как обстоят дела с функцией ShpLoadFolder? Удалось что-то выяснить?
[/QUOTE]
В тексте функции импорта данных из SHP ShpLoadFolder поправлена обработка файла настройки SHI.
Обновлены библиотеки для GIS ToolKit версия 12 для платформы "x64" (для Visual C++) - [URL=http://gisinfo.ru/download?id=211]http://gisinfo.ru/download?id=211[/URL]
[ Закрыто] gisu64vcacces.dll access violation, Application Verifier выдает access violation при загрузке gisu64vcacces.dll
 
[QUOTE]Александр Волков написал:
Как обстоят дела с функцией ShpLoadFolder? Удалось что-то выяснить?
[/QUOTE]
Разбираемся. Ответ по функции ShpLoadFolder пока не готов.

[QUOTE]Александр Волков написал:
Да, проекции карт отличаются, и согласно комментариям в заголовочнике mapapi.h должно происходить автоматическое трансформирование к проекции карты, переданной в первом аргументе функции mapAppendDataEx.
Но в итоге я получаю карту, объекты которой невидимы. Прикладываю карту до трансформации и после того, как отработала функция mapAppendDataEx, и была на всякий случай закрыта основная карта через mapCloseData (пробовал и mapCloseMap, результат тот же)
Попробуйте открыть карту в папке after_transform через Панорама мини - вы увидете белый экран. Воспользуйтесь поиском, нажмите найти, поиск что-то находит, но ни чего не выделяет и на экране по прежнему белый фон Панорамы Мини.
[/QUOTE]
Открыл карту after_transform  в ГИС Панорама Мини x64 версии 12.5.3.
Выполнил сортировку, получил изображение карты after_transform:


Изображение карты before_transform в ГИС Панорама Мини:


Обратите внимание на координаты в строке состояния программы ГИС Панорама Мини на скриншотах карт  after_transform и before_transform.
Значение координаты Y в одной карте 8 миллионов, а в другой карте - 13 миллионов. Производную карту увидеть на месте исходной мы не сможем. Она улетела.
[ Закрыто] gisu64vcacces.dll access violation, Application Verifier выдает access violation при загрузке gisu64vcacces.dll
 
[QUOTE]Александр Волков написал:
Но кто-то же ее все таки создает [IMG WIDTH=16 HEIGHT=16]http://gisweb.ru/bitrix/images/main/smiles/5/icon_smile.gif[/IMG] и именно в момент вызова функции mapAppendDataEx. Возможно это связано с аргументом transform, выставленным в 1.
[/QUOTE]
[QUOTE]Vitaliy Belenkov написал:
Странно что Дмитрий не ответил
Данную папку создает ЯДРО, если проводилась операция трансформации карты, в папку Copy - копируется карта ДО трансформации - чтобы всегда можно было откатиться.
[/QUOTE]
Спасибо за справедливое замечание.

Повторюсь, трансформирование добавляемой в документ карты выполняется в том случае, если её параметры проекции, датума и эллипсоида отличаются от установленных в главной карте документа.
[QUOTE]При создании производной карты в неё не заносятся параметры датума и эллипсоида.
В Вашем случае параметры проекции, датума и эллипсоида у исходной и производных карт должны совпадать.
[/QUOTE]

[QUOTE]В новую карту необходимо установить параметры Datum и параметры эллипсоида, запрошенные ранее в исходной карте.[CODE] HSITE hSit = 0;
     HMAP fmap = mapCreateMapPro(filenameSit, filenameRsc, &mapregex, &listreg,
                            &sheet, sheetname, 0, 0);
     if (fmap != 0)
       {
        // Установить параметры DATUM и Ellipsoid
        mapSetSiteDatum(fmap, fmap, &datum);
        mapSetSiteEllipsoidParameters(fmap, fmap, &ellipsoid);

        mapSaveSite(fmap, fmap, 1);
        mapCloseData(fmap);
[/CODE][/QUOTE]
Изменено: Dmitry_ - 19.02.2018 13:04:13
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 29 След.



© КБ Панорама, 1991-2021

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности