OBJ_TEXT 개체에서 여러 줄에 텍스트를 표시할 수 있습니까? - 페이지 5

 
Nikolai Semko :

여기에 또 다른 문제가 있습니다.
캔버스를 생성한 코드에 대한 액세스 권한이 없으면 캔버스 리소스에 대한 액세스 권한이 없는 것입니다. 비트맵 개체 목록은 볼 수 있지만 리소스 목록은 볼 수 없습니다. 자원의 이름을 모르면 선택이나 열거를 통해서만 알 수 있으며 이는 실제 적용 범위를 벗어난다.
인식할 점 배열을 얻는 방법은 무엇입니까? 스크린샷을 통해서만, 그것도 넌센스입니다.
아니면 내가 틀렸습니까?

코드는 자연스럽게 내 것이며, 이는 오픈 소스를 의미합니다. 나는 단지 화면에 날짜가 있다면, 당신이 그것을 얻을 수 있다면 ... 당신이 그것을 얻을 수 있다면 왜 다른 곳에 그것을 저장한다고 생각했습니다. 하하하, "좋다"고 말했다.

글쎄, 텍스트 필드 에서 문자열을 가져와서 거기에서 문자열의 일부를 추출하는 방법과 같은 것입니다. 하지만 슬프게도 그렇지 않습니다.

 
Andrey Barinov :

비트맵 속성은 리소스에 대한 경로를 포함합니다. 프로그래밍 방식으로 수행할 수 있는지 모르겠습니다.


그게 다야 결국 문제는 그림이 아니라 리소스에서 얻는 것이 었습니다. 그러다가 내가 찾던 것을 잃어버렸습니다. 어떤 속성을 얻을 수 있는지 실험하겠습니다


아무것도 나에게 효과가 없습니다 ...

   string resource = "\\Scripts\\Test\\Canvas\\00.ex5::aaa" ;     // получили путь к ресурсу созданному другим скриптом

//  if(ObjectGetString(0, "aaa", OBJPROP_BMPFILE, 0, resource))
   if ( ObjectSetString ( 0 , "aaa" , OBJPROP_BMPFILE , 0 , resource))   // работает любая строка, хоть эта, хоть закомментированная выше
   {
     Print ( ObjectGetString ( 0 , "aaa" , OBJPROP_NAME ));             // имя есть
     Print ( ObjectGetString ( 0 , "aaa" , OBJPROP_BMPFILE ));           // путь к ресурсу есть
     Print ( ObjectGetString ( 0 , "aaa" , OBJPROP_TEXT ));             // текста нету.....
     Print ( ObjectGetInteger ( 0 , "aaa" , OBJPROP_XDISTANCE ));       // это значение тоже есть
   }

그리고 내가 찾지 못한 배열을 수신하는 방법. 가능성이 전혀 없나요???

 
Alexey Viktorov :

그게 다야 결국 문제는 그림이 아니라 리소스에서 얻는 것이 었습니다. 그러다가 내가 찾던 것을 잃어버렸습니다. 어떤 속성을 얻을 수 있는지 실험하겠습니다


아무것도 나에게 효과가 없습니다 ...

그리고 내가 찾지 못한 배열을 수신하는 방법. 가능성이 전혀 없나요???

ResourceReadImage()가 도움이 될 것이라고 생각합니다.

 
Alexey Viktorov :

코드는 당연히 내 것이고, 이는 오픈 소스를 의미합니다. 나는 단지 화면에 날짜가 있다면, 당신이 그것을 얻을 수 있다면 ... 당신이 그것을 얻을 수 있다면 왜 다른 곳에 그것을 저장한다고 생각했습니다. 하하하, "좋다"고 말했다.

글쎄, 텍스트 필드에서 문자열을 가져와서 거기에서 문자열의 일부를 추출하는 방법과 같은 것입니다. 그러나 슬프게도 그렇지 않습니다.

글쎄요 :)
과학 시계용 배터리가 포함된 여행 가방은 창의적이기는 하지만 실제로 최상의 솔루션은 아닙니다.
 
Andrey Barinov :
ResourceReadImage()가 도움이 될 것이라고 생각합니다.

찾았지만 아무것도 얻지 못했습니다. 배열을 문자열로 변환하려고 했지만 배열 유형이 일치하지 않습니다. 아무리 꼬인 니크롬이 작동하지 않습니다. 내가 뭔가 잘못하고 있는 것 같다. 그러나 아직 새로운 아이디어는 없습니다.

 
Alexey Viktorov :

찾았지만 아무것도 얻지 못했습니다. 배열을 문자열로 변환하려고 했지만 배열 유형이 일치하지 않습니다. 아무리 꼬인 니크롬이 작동하지 않습니다. 내가 뭔가 잘못하고 있는 것 같다. 그러나 아직 새로운 아이디어는 없습니다.

픽셀 색상 데이터를 문자열로 변환하는 방법은 무엇입니까? 그리고 가장 중요한 이유는 무엇입니까?
래스터 이미지를 얻은 다음 인식하려고 할 수 있지만 이것은 별도의 과학입니다. :)
 
Nikolai Semko :
글쎄요 :)
과학 시계용 배터리가 포함된 여행 가방은 창의적이기는 하지만 실제로 최상의 솔루션은 아닙니다.

Nikolai, 그러나 이것은 사용에 필수 솔루션이 아닙니다. 결국, 귀하의 만화는 같은 시리즈의 만화이며 아름답지만 거래에 사용할 가능성은 없습니다.

 
Andrey Barinov :
픽셀 색상 데이터를 문자열로 변환하는 방법은 무엇입니까? 그리고 가장 중요한 이유는 무엇입니까?
래스터 이미지를 얻은 다음 인식하려고 할 수 있지만 이것은 별도의 과학입니다. :)

아.. 음, 이건.. 모르겠다.)))

일반적으로 나는 아마도 이 아이디어를 포기할 것입니다. 아마도 그 오페라에서 나온 것이 아닐 것입니다.

 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

mql5 언어의 특징, 미묘함 및 작업 방법

fxsaber , 2017.10.31 08:11

 // Сохранение Bitmap-объекта в bmp/gif/png-файле (прозрачность не учитывается)
bool BitmapObjectToFile( const long chartID, const string ObjName, const string FileName, const bool FullImage = false )
{  
   const ENUM_OBJECT Type = ( ENUM_OBJECT ) ObjectGetInteger (chartID, ObjName, OBJPROP_TYPE );  
   bool Res = (Type == OBJ_BITMAP_LABEL ) || (Type == OBJ_BITMAP );
             
   if (Res)
  {
     const string Name = __FUNCTION__ + ( string ) MathRand ();

     ObjectCreate (chartID, Name, OBJ_CHART , 0 , 0 , 0 );
     ObjectSetInteger (chartID, Name, OBJPROP_XDISTANCE , - 1 e3);
    
     const long chart = ObjectGetInteger (chartID, Name, OBJPROP_CHART_ID );
        
    Res = ChartSetInteger (chart, CHART_SHOW , false ) && ObjectCreate (chart, Name, OBJ_BITMAP_LABEL , 0 , 0 , 0 ) &&
           ObjectSetString (chart, Name, OBJPROP_BMPFILE , ObjectGetString (chartID, ObjName, OBJPROP_BMPFILE )) &&
          (FullImage || ( ObjectSetInteger (chart, Name, OBJPROP_XSIZE , ObjectGetInteger (chartID, ObjName, OBJPROP_XSIZE )) &&
                         ObjectSetInteger (chart, Name, OBJPROP_YSIZE , ObjectGetInteger (chartID, ObjName, OBJPROP_YSIZE )) &&
                         ObjectSetInteger (chart, Name, OBJPROP_XOFFSET , ObjectGetInteger (chartID, ObjName, OBJPROP_XOFFSET )) &&
                         ObjectSetInteger (chart, Name, OBJPROP_YOFFSET , ObjectGetInteger (chartID, ObjName, OBJPROP_YOFFSET )))) &&
                         ChartScreenShot (chart, FileName, ( int ) ObjectGetInteger (chart, Name, OBJPROP_XSIZE ),
                                                          ( int ) ObjectGetInteger (chart, Name, OBJPROP_YSIZE ));
     ObjectDelete (chartID, Name);
  }                    

   return (Res);
}


애플리케이션

 // Сохраняет в png-файлах все Bitmap-объекты текущего чарта
void OnStart ()
{  
   for ( int i = ObjectsTotal ( 0 ) - 1 ; i >= 0 ; i--)
  {
     const string Name = ObjectName ( 0 , i);
    
     BitmapObjectToFile ( 0 , Name, ( string ) ChartID () + "\\" + Name + ".png" );    
  }      
}


ZY 또한 BMP-> GIF/PNG 파일 변환기가 구현됩니다.

 
Alexey Viktorov :

새로운 질문: 캔버스의 리소스에서 텍스트를 읽을 수 있습니까?

예를 들어 이러한 라인 또는 그 중 하나.

목적: 캔버스의 도움으로 날짜를 포함하는 문자열이 있습니다. 다음은 날짜이며 읽는 것이 바람직합니다.

또는 기존의 입증된 방법, GV, 파일, 그래픽 또는 다른 것 중 하나를 적용하십시오.

ResourceReadImage 를 사용하여 리소스에서 데이터를 읽을 수 있지만 이렇게 하려면 ResourceCreate 를 사용하여 데이터를 작성해야 합니다. ResourceCreate 함수는 uint 유형의 데이터 배열만 허용하며 다른 유형의 데이터 배열을 작성해야 하는 경우 공용체를 사용해야 합니다. 다른 유형의 여러 배열을 선언하십시오. 그런 다음 문자열을 포함하여 리소스에 모든 데이터를 저장할 수 있습니다. 문자열을 char 유형으로 변환하려면 StringToCharArray를 사용 하고 그 반대로 CharArrayToString을 사용합니다. 따라서 요점은 캔버스에 있는 것이 아니라 공용체를 사용하여 모든 유형의 데이터를 쓸 수 있는 리소스에 있습니다.