Canvas에서 크라우드소싱 프로젝트 만들기 - 페이지 5

 
Реter Konow :

내 구현에서 점 A와 B는 슬라이더 트랙의 X 좌표(원점)와 슬라이더 슬라이더의 X 좌표라는 두 개체의 위치로 표시됩니다.

도면에서도 마찬가지입니다.

당신은 좁게 생각하고, ObjectGet/Set에 대해 이야기합니다.
그래픽, 이벤트, 데이터의 세 가지 이상의 모델이 컨트롤 에 병합됩니다.
어디에서 어떻게 그려지든 상관없습니다. [.......|..]와 같은 텍스트 형식일 수도 있습니다. 캔버스에 나타나거나 두 개의 MT 직사각형 개체로 표시될 수 있습니다.

이벤트 또는 데이터 모델은 이에 영향을 받지 않습니다.

 
o_O :

도면에서도 마찬가지입니다.

당신은 좁게 생각하고, ObjectGet/Set에 대해 이야기합니다.
그래픽, 이벤트, 데이터의 세 가지 이상의 모델이 컨트롤에 병합됩니다.
어디에서 어떻게 그려지든 상관없습니다. [.......|..]와 같은 텍스트 형식일 수도 있습니다. 캔버스에 나타나거나 두 개의 MT 직사각형 개체로 표시될 수 있습니다.

이벤트 또는 데이터 모델은 이에 영향을 받지 않습니다.


그래도 그 메커니즘은 나에게 명확하지 않다. 좀 더 자세하게 설명해주시면 전반적인 이해에 많은 도움이 될 것 같습니다. 고맙습니다.
 

근본적인 질문이 있습니다.

동일한 차트에 두 개의 애플리케이션, 패널, 지표가 있다고 가정해 보겠습니다. 각자 자신의 캔버스에 그려야 합니까, 아니면 둘 다 공통 캔버스에 그려야 합니까?

두 경우 모두 질문이 있습니다.

 
o_O :

적지만 전혀 없음(모든 것이 그려지는 bitmap_label 제외)

텍스트(텍스트 레이블, 텍스트 입력 필드 )로 작업을 구현하는 방법이 흥미롭습니다. 해결해야 하는 짧은 문제 목록:

  • 국가별 알파벳으로 작업하기(글꼴에서, 예를 들어 동일한 Times New Roman은 영어에서 Great Mighty 및 일부 힌디어에 이르기까지 거의 모든 알파벳에 대한 스타일을 가지고 있습니다.)
  • 텍스트 크기 조정: 6-8-10-12...72 포인트 - 동일한 글꼴의 크기를 문제 없이 설정할 수 있습니다. 이를 위해 벡터 스타일이 만들어졌습니다.
  • 기울임꼴, 굵게, 밑줄 - 이 유형 각각에 대해 고유한 라이브러리 또는 개요 알고리즘을 만들려면 어떻게 하시겠습니까?
  • 입력/편집, 커서 제어 - 모든 것을 그림의 형태로 만드는 것은 지옥 같은 작업입니다. 솔직히 어떻게 구현하실지 상상도 안갑니다.

그리고 이 모든 것은 이미 작동 중인 "텍스트 레이블" 및 "텍스트 편집이 포함된 텍스트 레이블" 컨트롤의 배경입니다. 유일한 문제는 32자의 크기 제한과 통합 글꼴을 사용할 수 없다는 것입니다.

이 모든 문제를 해결하는 데 많은 시간을 할애해야 하지만 기껏해야 30% 정도는 해결할 수 있습니다. 수백 킬로바이트의 코드는 기껏해야 표준 요소보다 약간 부족하지만 고유한 질병, 결함 및 다양한 불쾌한 제한 사항이 있습니다. 정말 필요하세요?

 
Vasiliy Sokolov:
Документация по MQL5: Графические объекты / TextOut
Документация по MQL5: Графические объекты / TextOut
  • www.mql5.com
Графические объекты / TextOut - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
o_O :

적지만 전혀 없음(모든 것이 그려지는 bitmap_label 제외)

이벤트 모델도 잊지 마세요. 캔버스에서 이벤트를 처리 하도록 설계되지 않았습니다. 화면의 특정 영역 + 마우스 좌표의 키 입력만 있으면 됩니다. 네, 이 어둠 속에서도 PLO를 떠나는 것은 가능하지만 출구는 어렵고 매우 길 것입니다.

 
Реter Konow :

그래도 그 메커니즘은 나에게 명확하지 않다. 좀 더 자세하게 설명해주시면 전반적인 이해에 많은 도움이 될 것 같습니다. 고맙습니다.
아카이브 https://www.mql5.com/ru/forum/92113#comment_2672543 캔버스 예제에서 xo.zip 실행
 
Vasiliy Sokolov :

텍스트로 작업을 구현하는 방법이 흥미롭습니다.

이미 표시된 대로 - 우리는 TextOut 을 사용합니다

이 모든 작업을 해결하는 데 많은 시간을 할애할 것입니다.

우리는 극복할 수 없는 장애물 때문에 우리의 머리를 때리지 않을 것입니다. MK가 편집을 위해 이러한 문제에 대한 솔루션을 제공하지 않으면 이 모든 것이 중지됩니다.

내가 SD의 답변을 기다리는 동안.

이벤트 모델도 잊지 마세요. 캔버스에서 이벤트를 처리 하도록 설계되지 않았습니다.

내가 네팅 오더 거래를 위한 패널의 아날로그를 보여주었다는 것을 기억하십니까? 따라서 CHARTEVENY_MOUSE_MOVE가 사용되지 않고 모든 것이 독립적으로 분석됩니다.

저를 믿으세요. 이벤트나 입력 캐럿을 표시하는 데 문제가 없습니다.

이제 질문은 키보드 이벤트에만 의존했습니다.

 
o_O :

이제 질문은 키보드 이벤트에만 의존했습니다.

키보드를 사용하면 모든 것이 다소간 명확해집니다. 키 누르기 이벤트가 있으며 이 키에 대한 코드가 있습니다. 무엇을 더 원하십니까?
 
o_O :

SD에 개선을 요청하십시오.

그건 그렇고, 저 같은 경우 OnMouseDown 이벤트를 도입하면 일반적인 DND 측면에서 삶을 크게 단순화할 것입니다.