오류, 버그, 질문 - 페이지 3126

 
Nikolai Semko # :

Expert Advisor 또는 지표에서 데이터 구조 또는 구조 배열을 형성하고 이를 리소스로 보냅니다.

캔버스 자체는 그래픽 리소스(OBJ_BITMAP_LABEL/ OBJ_BITMAP )와 함께 작동합니다. 따라서 남은 것은 리소스 이름을 다른 애플리케이션에 알려주는 것뿐입니다. 그러면 픽셀에 쉽게 액세스할 수 있습니다. 또한 픽셀 형식을 전달해야 합니다. 그리고 적어도 픽셀을 읽을 수 있고 적어도 다른 CCCanvas를 사용하여 픽셀을 변경할 수 있습니다. CCanvas::Attach 메서드를 사용하여 기존 리소스에 연결합니다.

 
Nikolai Semko # :

그리고 무슨 문제가 있니, 안드레이?
데이터 구조 또는 구조 배열 형성

괜찮아요! 단지 추가 제스처에 대해 이야기하는 것입니다.

모든 버퍼 표시기는 다른 표시기나 EA에서 읽을 수 있으며 캔버스에는 사용자 정의 레이어가 필요합니다.

예를 들어, 실행 중인 표시기 목록을 수신한 다음 지정된 기기/TF 목록에서 생성한 다음 신호를 수집하여 텔레그램으로 보내는 Expert Advisor가 있습니다. 따라서 모든 버퍼 표시기는 차트에서 간단히 시작할 수 있으며 자동으로 선택됩니다. 그리고 캔버스 인디케이터는 수동으로 연결해야 하고 나머지 작업은 모두 수동으로 등록해야 합니다.

작업을 캔버스 표시기와 통합해야 합니다. 그리고 그러한 통일의 결과로 ... 버퍼 지표가 얻어 질까 두렵습니다))

 
Nikolai Semko # :

그리고 무슨 문제가 있니, 안드레이?

한마디로 찾지도 않았고 찾지도 않았다.

 
Andrey Khatimlianskii # :

괜찮아요! 단지 추가 제스처에 대해 이야기하는 것입니다.

모든 버퍼 표시기는 다른 표시기나 EA에서 읽을 수 있으며 캔버스에는 사용자 정의 레이어가 필요합니다.

예를 들어, 실행 중인 표시기 목록을 수신한 다음 지정된 기기/TF 목록에서 생성한 다음 신호를 수집하여 텔레그램으로 보내는 Expert Advisor가 있습니다. 따라서 모든 버퍼 표시기는 차트에서 간단히 시작할 수 있으며 자동으로 선택됩니다. 그리고 캔버스 인디케이터는 수동으로 연결해야 하고 나머지 작업은 모두 수동으로 등록해야 합니다.

작업을 캔버스 표시기와 통합해야 합니다. 그리고 그러한 통일의 결과로 ... 버퍼 지표가 얻어 질까 두렵습니다))

지표와 Expert Advisors 모두에서 시각화를 위해 동일한 클래스를 사용하는 것을 포함하여 가능성을 확장하는 것에 대해 이야기하고 있습니다. 물론 지표에는 버퍼 전송 방식이 존재하며, 순수한 캔버스의 경우 누구도 이를 사용하는 것을 금지하지 않는다.
그리고 그건 그렇고, 구조체의 배열이 하나의 버퍼에 유니온을 통해 전송될 때 하이브리드 전송 방식을 이미 구현했습니다. 수신측에서 추가 애드온이 필요하지만, 첫째, 복잡하지 않고, 둘째, 이중 배열이 아닌 구조로 인해 사용자가 다른 지표의 데이터로 작업을 더 쉽고 편리하게 합니다. 사용자는 확실히 그것을 좋아할 것입니다.
 
Mihail Matkovskij # :

캔버스 자체는 그래픽 리소스(OBJ_BITMAP_LABEL/ OBJ_BITMAP )와 함께 작동합니다. 따라서 남은 것은 리소스 이름을 다른 애플리케이션에 알려주는 것뿐입니다. 그러면 픽셀에 쉽게 액세스할 수 있습니다. 또한 픽셀 형식을 전달해야 합니다. 그리고 적어도 픽셀을 읽을 수 있고 적어도 다른 CCCanvas를 사용하여 픽셀을 변경할 수 있습니다. CCanvas::Attach 메서드를 사용하여 기존 리소스에 연결합니다.

종종 다른 창의 막대 및 가격과 동기화되고 이벤트 모델과 통합되기 때문에 그래픽을 전송하는 작업은 아닐 것입니다.
게다가 인디케이터 창이 존재하지 않거나 활성화되어 있지 않으면 그래픽 리소스도 형성되지 않는다고 생각합니다.
표시기가 있는 창이 존재하지 않는 경우 남은 유일한 방법은 버퍼를 사용하여 iCustom을 사용하는 것입니다. 그러나 내가 말했듯이 이러한 버퍼에 구조 또는 구조 배열을 넣을 수 있습니다.
 
Andrei Trukhanovich # :

한마디로 찾지도 않았고 찾지도 않았다.

신고해 주셔서 감사합니다.
이제 우리는 당신이 모르는 것을 압니다.
 
Nikolai Semko # :
게다가 인디케이터 창이 존재하지 않거나 활성화되어 있지 않으면 그래픽 리소스도 형성되지 않는다고 생각합니다.

표시기가 실행 중이고 해당 창이 존재하지 않는 경우에는 어떤 경우인지 궁금합니다. 그리고 창이 비활성화되면(사용자가 다른 차트로 전환하거나 최소화) 리소스가 메모리에서 언로드되고 단순히 삭제됩니까?

니콜라이 셈코
그러나 내가 말했듯이 이러한 버퍼에 구조 또는 구조 배열을 넣을 수 있습니다.

여기에 동의합니다. 멀티태스킹 로봇을 만들어야 했습니다. 애플리케이션의 첫 번째 인스턴스는 작업을 생성하고 이에 대한 차트를 생성한 다음 동일한 로봇으로 특수 템플릿을 적용합니다. 다음으로 첫 번째 로봇이 작업을 생성하고 기계가 생성한 로봇이 작업을 수행합니다. 데이터 전송은 리소스를 통해 수행됩니다. 숫자 및 구조 문자열이 전달됩니다. 여기 사이트에는 http를 통한 데이터 전송의 예가 있습니다(내 기억이 맞다면). 그러나 먼저 구조, 크기 및 유형에 대한 데이터가 있고 다음으로 데이터 자체에 대한 데이터가 있습니다. 내 Expert Advisor에서는 문자열과 숫자를 문자열로 uchar 배열을 통해 전달하여 읽기/쓰기를 크게 단순화하여 더 단순하게 만들기로 결정했습니다. 그러나 어떻게 든 표시기 버퍼에 바이트를 쓰고 거기에서 읽을 수 없었습니다. 그러나 나는 이미 이 방법의 한 가지 단점을 보았습니다. 이것은 표시줄의 수에 의한 바이트의 제한입니다. 그러나 배열의 각 셀에는 8바이트가 있습니다. 어쩌면 그렇게 큰 단점이 아닐 수도 있습니다. 누가 알아...

 
Mihail Matkovskij # :

표시기가 실행 중이고 해당 창이 존재하지 않는 경우에는 어떤 경우인지 궁금합니다.

iCustom을 사용하는 것을 의미했습니다.

그리고 창이 비활성화되면(사용자가 다른 차트로 전환하거나 최소화) 리소스가 메모리에서 언로드되고 단순히 삭제됩니까?

최소화된 창으로 이미지를 형성하는 것은 별로 의미가 없기 때문에 이것은 내 추측일 뿐입니다. MT에서 구현하는 방법 - 확인하지 않았지만 비슷한 것을 발견했습니다. 뉘앙스를 잊어 버렸습니다.
어떤 경우든 리소스가 삭제될 가능성은 거의 없지만 시간이 지남에 따라 업데이트되지도 않습니다. 저것들. CCanvas::업데이트가 작동하지 않습니다

 void CCanvas::Update( const bool redraw)
  {
//--- check
   if (m_rcname== NULL )
       return ;
//--- update resource and redraw
   if ( ResourceCreate (m_rcname,m_pixels,m_width,m_height, 0 , 0 , 0 ,m_format) && redraw)
       ChartRedraw ( this .m_chart_id);
  }
 
Nikolai Semko # :

iCustom을 사용하는 것을 의미했습니다.

값은 리소스와 버퍼를 통해 전달할 수 있지만 Canvas 리소스를 통해서는 전달할 수 없습니다. iCustom 을 사용하여 Canvas에 대한 출력과 함께 표시기를 호출하는 흥미로운 작업 이 나타 납니다. 나는 이것을 시도하지 않았다. 이 경우 오류가 발생할 수 있는 것 같습니다. 아니면 iCustom을 통해 로드된 이러한 표시기가 전혀 작동하지 않을 수 있습니까?...

어떤 경우든 리소스가 삭제될 가능성은 거의 없지만 시간이 지남에 따라 업데이트되지도 않습니다. 저것들. CCanvas::업데이트가 작동하지 않습니다

ResourceCreate가 작동한다고 생각하지만 결과가 ChartRedraw로 표시되지 않습니다. 함수가 호출되지만 시스템은 차트가 비활성 상태일 때 업데이트할 필요가 없다는 것을 이해합니다. 그러나 ResourceCreate가 작동하지 않으면 차트가 비활성화되었지만 Canvas 리소스가 업데이트되지 않은 순간에 표시기가 임의의 눈금에 대한 데이터를 업데이트했다고 상상해 보십시오. 그런 다음 사용자는 이 비활성 차트를 활성화하고 표시기(Canva)를 보기로 결정했습니다 . 그리고 틱이 있었지만 사용자가 차트를 변경하기 전과 마찬가지로 Canvas는 그대로 유지되었습니다. 그리고 비활성 기간 동안 틱이 많이 있었다면?... 그러면 인디케이터는 당연히 처리하겠지만 캔버스에는 결과가 하나도 표시되지 않습니다.

 
Mihail Matkovskij # :

ResourceCreate가 작동한다고 생각하지만 결과가 ChartRedraw로 표시되지 않습니다.

예, 아마도 당신이 옳을 것입니다. 대부분 그럴 것입니다.
그리고 자원을 절약하기 위해서는 창의 활동을 제어하고 창이 활성화되지 않은 경우 비트맵을 형성하지 않는 것이 정확할 것입니다.

추측이 아니라 확인할 가치가 있습니다.