Ошибки, баги, вопросы - страница 2553

 
Сергей Таболин:

К примеру, Вы входите в какую-то организацию по скану лица (фото). Но сегодня вы посетили ... ну скажем тренажёрный зал. Там на Вас упала штанга и несколько подпортила физиономию (нос искривлён, губы на 2 размера больше, на пол-лица синяк). Так вот, приходите Вы после этого ЧП в вышеозначенную организацию, а Вас там система не узнала и не пускает.

Вопрос на засыпку - это баг системы? Это система должна вам синяки убирать и нос править?

А зачем на ОС завязываться? Что мешает привязку по железу делать?
 
Vladimir Simakov:
А зачем на ОС завязываться? Что мешает привязку по железу делать?

В маркете привязка такая. 
И проблема только на win10
 
Nikolai Semko:

На самом деле CCanvas очень сырой. Там очень много косяков, особенно что касается сглаживания. Алгоритмы просто вырви глаз.
Замените штатную PixelTransform в CCanvas функцию на:

и эта проблема исчезнет, но сами алгоритмы сглаживания это не исправит.


Благодарю, Николай, за функцию, к сожалению в таком варианте все линии LineThick рисуются без прозрачности

 
Rafil Nurmukhametov:

Благодарю, Николай, за функцию, к сожалению в таком варианте все линии LineThick рисуются без прозрачности

О, да. Сорри. Не обратил внимание, что Вы прозрачность в цвет замешиваете.
Тогда так:

void CCanvas::PixelTransform (const int x,const int y,const uint clr,const double alpha)
  {
   union argb { uint clr; uchar c[4]; };
   argb C,Bg;
   C.clr=clr;
   int addr=y*m_width+x;
   uint clrback=m_pixels[addr];
   if(clrback==0)
     {
      C.c[3]=uchar(alpha*C.c[3]+0.49999);
      m_pixels[addr]=C.clr;
      return;
     }
   if(alpha<1.0/510) return;

   C.c[3]=uchar(alpha*C.c[3]+0.49999);
   double a=C.c[3]/255.0;
   Bg.clr=clrback;
   double b=Bg.c[3]/255.0;

   C.c[2]=uchar(Bg.c[2]+a*(C.c[2]-Bg.c[2]));
   C.c[1]=uchar(Bg.c[1]+a*(C.c[1]-Bg.c[1]));
   C.c[0]=uchar(Bg.c[0]+a*(C.c[0]-Bg.c[0]));

   C.c[3]=uchar((b+a-b*a)*255+0.49999);
   m_pixels[addr]=C.clr;
  }
 
Было бы неплохо, чтобы FileGetInteger могла возвращать полное время создания/модификации файла, т.е. в виде long c точностью до 100 нс (как оно существует в ОС), а не эту секундную кастрацию...
 
Nikolai Semko:

О, да. Сорри. Не обратил внимание, что Вы прозрачность в цвет замешиваете.
Тогда так:

Благодарю, Николай, теперь работает как надо

 
Alexey Navoykov:
Было бы неплохо, чтобы FileGetInteger могла возвращать полное время создания/модификации файла, т.е. в виде long c точностью до 100 нс (как оно существует в ОС), а не эту секундную кастрацию...

так сейчас даже типа подходящего нет. datetime это просто секунды, а в mqldatetime секунды тоже минимальный интервал. (хотя можно просто лонг возвращать)

winapi не катит?

 
Здравствуйте, бесплатные индикаторы появляются в разделе "Маркет" в МТ4 и как их установить на график? В списке индикаторов в свойствах графика они не появляются.
 

Подскажите пожалуйста, почему не работает этот код? Пытаюсь записать переменную в файл при клике на кнопку, но безрезультатно.

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {

   if(id==CHARTEVENT_OBJECT_CLICK)
     {
      if(sparam=="checkbox")
        {
         int handle_write;
         handle_write=FileOpen("checkbox_color.txt",FILE_READ|FILE_WRITE|FILE_TXT,';');
         if(handle_write>0)
           {
            FileWrite(handle_write,"Green");
            FileClose(handle_write);
           }
        }
     }

  }

Причём если прикрутить чтение из файла, то всё работает.

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {

   if(id==CHARTEVENT_OBJECT_CLICK)
     {
      if(sparam=="checkbox")
        {
         int handle_read;
         handle_read=FileOpen("checkbox_color.txt",FILE_READ|FILE_WRITE|FILE_TXT,';');
         string checkbox_color=FileReadString(handle_read);
         Comment(checkbox_color);
        }
     }

  }
 
В новых билдах (после 2093) появился баг в Метаэдиторе.  При открытии некоторых файлов начинается стремительный рост потребляемой памяти, заканчивающийся зависанием процесса, когда вся память будет съедена.  При попытке закрыть этот документ также происходит зависание.   Локализовать участок кода, приводящий к утечке, пока не удалось.