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

 
Roman :

빌드 2530

세 번째 구조 중첩에서는 지능이 나타나지 않습니다.

IntelliSense 인텔리전스는 계속 제공합니다))


저것들. 단 하나의 단서는 당신이 의지할 수 있는 전부입니다

 
Nikolai Karetnikov :

IntelliSense 인텔리전스는 계속 제공합니다))

저것들. 단 하나의 단서는 당신이 의지할 수 있는 전부입니다

내 게시물은 중첩 구조에 관한 것이었으며 세 번째 중첩에서는 인텔리센스 선택 항목이 나타나지 않습니다.
그것은 단지 지능의 선택을 위해 중첩 구조를 사용하도록 계획되었기 때문에 매우 슬픈 일입니다.
그리고 그것이 나타나지 않기 때문에 구조로 돌아가서 필드가 무엇인지 확인해야 합니다. 알아채다.
수정되었으면 합니다.

예를 들어 표준 MQL 기능의 경우 도구 설명에 모든 것이 명확하다고 생각합니다.
힌트가 명확하지 않으면 함수에 커서를 놓고 F1 키를 누릅니다.

 
Mihail Matkovskij :

내 예에서 먼저 ObjectDeleteAll 함수를 대체했습니다 .

그런 다음 표시기로.

프로젝트에서 ObjectDeleteAll 을 사용하는 것은 아주 쉬운 일이었습니다. 모든 개체를 삭제하려면 접두사를 3번만 변경하면 충분하므로 ObjectDeleteAll 을 3번 호출하면 됩니다. 결과적으로 일정이 깨끗합니다. MQL5 언어에는 많은 미묘함이 있습니다. 그러나 동시에 매우 사려깊습니다.

이 문제를 해결하는 데 도움을 주신 모든 분들께 감사드립니다!

그리고 다시 여기에 있습니다:

    trend = new CChartObjectTrend();
     if (trend.Create( 0 , "trend" +( string )i, 0 , time[shift], low[shift], time[shift], high[shift]))
      listOfTrendLines.Add(trend);
     else
       delete trend;

그것이 흐를 수 있는 잠재적인 구멍. Add() 메서드가 반환하는 내용 확인

(테스트인건 알겠는데 어차피 확인은 하는게 맞는거같은데 생성결과를 확인하면 추가결과도 확인하지않을까? 미래를 위한 규율)
 
Artyom Trishkin :

그리고 다시 당신은 여기에 있습니다:

그것이 흐를 수 있는 잠재적인 구멍. Add() 메서드가 반환하는 내용 확인

(테스트인건 알겠는데 어차피 확인은 하는게 맞는데 생성결과를 확인하면 추가결과도 확인하지않을까? 미래를 위한 규율)

다음과 같이 하십시오.

    trend = new CChartObjectTrend();
     if (trend.Create( 0 , "trend" +( string )i, 0 , time[shift], low[shift], time[shift], high[shift])) {
       if (!listOfTrendLines.Add(trend))
         delete trend;
    }
     else
       delete trend;

모든 것. 이제 구멍이 없습니까?

이것은 일반적으로 테스트 프로그램이며 작업에 대처했습니다. 나는 그녀에게서 더 이상 아무것도 필요하지 않습니다. 그리고 그것이 효과가 있었다면 접근 방식도 달라졌을 것이고 개념도 완전히 달라졌을 것입니다. 거기에서 각 중요 지점에서 오류 메시지가 표시되어 행(__LINE__)과 함수 이름(__FUNCTION__) ... 그래서 때로는 디버깅을 사용할 필요조차 없습니다. 보기만 해도 모듈명, 행번호, 기능명...

 

모두 제일 좋다! 문제는 다음...

업데이트 후 바탕 화면과 루트 폴더 모두에서 MT5 터미널 바로 가기가 사라졌습니다. 재설치했습니다. 컴퓨터를 재부팅한 후 이야기가 반복되었습니다. 문제가 무엇입니까? 비슷한 일을 겪은 사람이 있습니까?

 
Artyom Trishkin :

그리고 다시 여기에 있습니다:

그것이 흐를 수 있는 잠재적인 구멍. Add() 메서드가 반환하는 내용 확인

(테스트인건 알겠는데 어차피 확인은 하는게 맞는거같은데 생성결과를 확인하면 추가결과도 확인하지않을까? 미래를 위한 규율)

어떤 경우에 listOfTrendLines.Add가 작동하지 않을 수 있습니까? 나는 단지 그들을 모른다. "불필요한 점검은 없다"(c)는 원칙을 고수하지만. 그러나 그것은 가정 할 수 있습니다   편집증의 지경에 이를 수 있다는 것입니다. 글쎄, 그래픽 개체 클래스의 Create 메서드가 작동하지 않을 수 있습니다. 그러나 코드가 올바르게 작성되고 프로그램이 객체에 일반 이름을 지정하면 항상 명확하게 작동합니다. 그러나 사용에 방해가 될 수 있다고 가정 해 봅시다 ... 그러나 Add 메서드가 정상적인 조건에서 어떻게 거짓을 반환 할 수 있습니까? 또는 ArrayResize 함수(이 메서드에서 사용됨)는 어떻게 new_size와 다른 결과를 반환할 수 있습니까? 메모리가 부족하지 않은 이상... :) 그런데 이렇게 메모리가 많이 부족한 최신 기기는 어디서 봤나요?!... :)

 
Mihail Matkovskij :

어떤 경우에 listOfTrendLines.Add가 작동하지 않을 수 있습니까? 나는 단지 그들을 모른다. "불필요한 점검은 없다"(c)는 원칙을 고수하지만. 그러나 그것은 가정 할 수 있습니다   편집증의 지경에 이를 수 있다는 것입니다. 글쎄, 그래픽 개체 클래스의 Create 메서드가 작동하지 않을 수 있습니다. 그러나 코드가 올바르게 작성되고 프로그램이 객체에 일반 이름을 지정하면 항상 명확하게 작동합니다. 그러나 사용에 방해가 될 수 있다고 가정 해 봅시다 ... 그러나 Add 메서드가 정상적인 조건에서 어떻게 거짓을 반환 할 수 있습니까? 또는 ArrayResize 함수(이 메서드에서 사용됨)는 어떻게 new_size와 다른 결과를 반환할 수 있습니까? 메모리가 부족하지 않다면... :) 하지만 메모리가 부족한 현대 시스템을 어디에서 보았습니까?!... :)

일반적으로 VPS.
Ps 당신이 Alexei를 공정하게 대하지 않은 것 같습니다. 결국 그는 처음이자 올바른 조언을 한 사람이었고, 어쨌든 당신을 도운 사람은 그 사람이었습니다.
 
Mihail Matkovskij :

내 예에서 먼저 ObjectDeleteAll 함수를 대체했습니다 .

그런 다음 표시기로.

프로젝트에서 ObjectDeleteAll 을 사용하는 것은 아주 쉬운 일이었습니다. 모든 개체를 삭제하려면 접두사를 3번만 변경하면 충분하므로 ObjectDeleteAll 을 3번 호출하면 됩니다. 결과적으로 일정이 깨끗합니다. MQL5 언어에는 많은 미묘함이 있습니다. 그러나 동시에 매우 사려깊습니다.

이 문제를 해결하는 데 도움을 주신 모든 분들께 감사드립니다!

문서를 보았는지 아니면 내 게시물에서 기능에 대한 설명을 가져왔는지 궁금합니다.

나는 당신의 그래픽 개체가 유행하는 개체일 뿐이라고 생각합니다. 그렇다면 왜 접두사가 필요합니까? 결국 개체 유형별로 삭제도 있습니다.

 int    ObjectsDeleteAll (
   long   chart_id,             // идентификатор графика
   int    sub_window=- 1 ,       // индекс окна
   int    type=- 1                // тип объекта для удаления
   );

따라서 프로젝트에서 아무 것도 변경할 필요가 없었습니다.

 ObjectsDeleteAll ( 0 , 0 , OBJ_TREND );
)))))))))))))))
 
Aleksei Beliakov :
일반적으로 VPS.
Ps 당신이 Alexei를 공정하게 대하지 않은 것 같습니다. 결국 그는 처음이자 올바른 조언을 한 사람이었고, 어쨌든 당신을 도운 사람은 그 사람이었습니다.

그리고 제가 물어보기 민망한 부당함은 무엇일까요?... 제 생각에는 알렉세이에 대한 정상적인 태도를 가지고 있습니다. 당신은 그의 친척입니까?

 
Alexey Viktorov :

문서를 보았는지 아니면 내 게시물에서 기능에 대한 설명을 가져왔는지 궁금합니다.

나는 당신의 그래픽 개체가 유행하는 개체일 뿐이라고 생각합니다. 그렇다면 왜 접두사가 필요합니까? 결국 개체 유형별 삭제도 있습니다.

따라서 프로젝트에서 아무 것도 변경할 필요가 없었지만 단순히

)))))))))))))))

이것은 단지 특별한 경우입니다. 접두사는 일반적이고 보편적입니다. 모든 추세선을 제거하면 프로그램에 속하지 않는 개체에도 영향을 미칩니다.