MQL로 작성된 UI 갤러리 - 페이지 10

 

...그리고 마지막으로 오늘 마지막으로 건방진 것이 하나 더 있습니다-ME 설정 창의 사본입니다.


여기서 어떤 창이 "진짜가 아닌" 창인지 더 쉽게 이해할 수 있습니다.)))

 
Реter Konow #:

네, 물론이죠. 문제없었어요.

어떻게 했는지 묻지 마세요, 기억이 하나도 안 나요.))))))

니콜라이가 더 잘 대답할 거예요.

MQ 빠른 거래의 내장 패널에도 이러한 버그가 있기 때문에 놀랍습니다!

 
Aleksey Vyazmikin #:

MQ 빠른 거래의 내장 패널에도 이러한 버그가 부여되어 있기 때문에 놀랍습니다!

개체의 속성을 제어하기만 하면 됩니다. 알고리즘은 커서가 위에 있는 개체와 "초점"에 있는 개체를 알아야 합니다. 커서 및 클릭에 반응하지 않도록 하단의 개체 속성을 변경하십시오. 그렇게 생각하지만 기억이 나지 않아서 틀릴 수도 있습니다. 몇 년이 지났네요.

 
커서가 창 위에 있고 차트에서 무언가를 스크롤하는 동안 알고리즘이 차트 스크롤을 꺼버렸던 기억이 납니다. 그런 다음 커서가 차트의 빈 공간으로 돌아오면 알고리즘이 다시 스크롤을 활성화했습니다.
 
Реter Konow #:
기억나요

지금 볼 수 없나요?

 
Aleksey Vyazmikin #:

지금 볼 수 없나요?

수십 개의 파일에 수만 줄의 코드가 흩어져 있는데 기억이 하나도 안 나요 )))) 한가할 때 보도록 하죠.

 
Реter Konow #:

제 아카이브에는 수십 개의 파일에 수만 줄의 코드가 흩어져 있는데 하나도 기억이 나지 않습니다.)))))) 여유를 가지고 살펴볼게요.

오, 내가 어떻게 이해하는지, 나는 또한 다른 컴퓨터에도 가지고 있습니다 ... 모든 것을 조합하려고 할 때 코드의 의미를 이해하지 못한다는 것을 깨닫게됩니다 :) 이제는 코드에 주석을 많이 쓰기 시작했습니다. 코드를 작성할 때 불필요한 시간 낭비 인 것 같지만 편리하지만 1 년 후에 다시 돌아 오면 많은 도움이됩니다.

 
Aleksey Vyazmikin #:

오, 내가 어떻게 이해하는지, 나는 또한 다른 컴퓨터에도 가지고 있습니다..... 모든 것을 하나로 모으려고 할 때 코드의 의미를 이해하지 못한다는 것을 깨닫습니다 :) 이제 코드에 많은 주석을 작성하기 시작했습니다. 코드를 작성할 때 불필요한 시간 낭비처럼 보이지만 편리하지만 1 년 후에 다시 돌아 오면 많은 도움이됩니다.

아카이브에 들어가면 갤러리가 끝이 없을 것 같아요. )))))) 거기에 생성자가 있고 거기에 새 창을 만드는 것은 매우 쉽습니다. 비주얼 에디터를 끝내고 싶으면...? 그럼 몇 달 동안 갇혀 있을 텐데, 뭐하러? ))))))

 
Aleksey Vyazmikin #:

... 이제 코드에 주석을 많이 작성하기 시작했습니다. 코드를 작성할 때 불필요한 시간 낭비처럼 보이지만 편리하지만 1년 후에 다시 돌아와서 보면 많은 도움이됩니다.

댓글에 대해서는 전적으로 동의합니다. 코드에 설명을 반드시 작성해야 합니다.

 
Aleksey Vyazmikin #:
저는 이러한 인터페이스를 개발한 경험이 없지만 다른 소스에서 사용한 것에는 가끔(!) 차트에서 다른 개체가 클릭되는 심각한 단점이 있었습니다. 이 문제를 해결할 수 있었나요?

물론 제 인터페이스는 훨씬 더 간단했습니다. 캔버스를 사용하지 않고 표준 컨트롤로 패널을 만들었습니다. 차트의 다른 개체가 눈에 띄지 않도록 모든 창 구성 요소를 1분에 한 번씩 다시 그렸습니다:

if (iTime(_Symbol,PERIOD_M1,0) > LastMinute && !IsTesting()) { 
   LastMinute = iTime(_Symbol,PERIOD_M1,0);
   for (int i = 0; i < 45 ; i++) {
      long tf = ObjectGetInteger(0, Controls[i], OBJPROP_TIMEFRAMES);
      if (ObjectSetInteger(0, Controls[i], OBJPROP_TIMEFRAMES, -1)) 
         ObjectSetInteger(0, Controls[i], OBJPROP_TIMEFRAMES, tf);
   }
}

여기서 컨트롤은 컴포넌트 이름이 포함된 배열입니다.