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

 
o_O :

불행히도 코드의 완전성은 없습니다. 이제 차트 이벤트 A

이 문제에 대해서는 이미 SD에도 썼습니다.

SD에서 이 문제에 대한 좋은 소식을 들었습니다.

다음 빌드는 CapsLock 및 Shift 상태를 결정하기 위해 TerminalInfoInteger 상수를 추가합니다.

그들은 현재 문서화되지 않았습니다.

1020 - 캡스락
1016 - 시프트
1255 - 현재 입력 언어 코드

즉, 편집이 이미 절반 정도 작동하고 있습니다. ))

두 번째 작업이 남아 있습니다. 차트가 공간을 가로채지 않도록 하고 입력하는 것입니다.

 
Vasiliy Sokolov :
브레이크가 있는 경우 육안으로 볼 수 없습니다. 내 패널에서 한 번에 MouseMove는 다음을 포함하여 수만 개의 요소로 전송되었습니다. 보이지 않는 경우 더 똑똑한 메일링을 만들었지만 시각적으로 이것은 속도를 추가하지 않았습니다.
브레이크는 확실히 있습니다. 개체 수에 따라 다릅니다. 확인했습니다. 개체 수가 400~500개를 초과하기 시작하면 창을 끌면 속도가 느려지기 시작합니다... 몇 달 동안 코드의 효율성을 개선하기 위해 노력했지만 이 효과를 극복할 수 없었습니다. 컴퓨터가 더 강력할수록 물체의 수가 많을수록 제동은 보이지 않을 것입니다.
 
Реter Konow :
브레이크는 확실히 있습니다. 개체 수에 따라 다릅니다. 확인했습니다. 개체 수가 400~500개를 초과하기 시작하면 창을 끌면 속도가 느려지기 시작합니다... 몇 달 동안 코드의 효율성을 개선하기 위해 노력했지만 이 효과를 극복할 수 없었습니다. 컴퓨터가 더 강력할수록 물체의 수가 많을수록 제동은 보이지 않을 것입니다.
성능은 이벤트 전달 알고리즘 + 전달된 이벤트에 대한 요소의 최소 반응에 의해 영향을 받습니다. 귀하의 경우 브레이크는 이벤트 자체로 인한 것이 아니라 이러한 이벤트를 처리한 알고리즘으로 인한 것 같습니다.
 
o_O :

표시기의 여러 인스턴스가 동일한 캔버스에 표시됩니까? 잘 모르겠어. 빌어먹을 소름 끼치는.

아니다. 간단히 말해 MouseDown 이벤트만 있으면 됩니다.
 
Комбинатор :
아니다. 간단히 말해서 내가 필요한 것은 MouseDown 이벤트뿐입니다.
마우스 키 Crtl 및 Shift의 상태를 보고 하는 CHARTEVENT_MOUSE_MOVE 이벤트 를 주시하십시오.
 
Vasiliy Sokolov :

Anatoly의 기사 이후 프로필에서만 동일한 계란을 다시 만드는 것은 적어도 이상한 취미 인 것 같습니다. 그래픽은 MT와 전혀 관련이 없는 주제입니다.

  • 사용자는 그래픽 인터페이스가 필요하지 않습니다. 결과적으로 GUI는 수익을 창출할 수 없으며 개발은 결코 성과를 거두지 못할 것입니다.
  • 실력을 키우고 싶다면 당장 후배로 취직하는 게 낫다. 그래서 당신은 즉시 최소한의 돈을 받기 시작하고 천천히 당신의 기술을 올릴 것입니다.
  • 타겟층이 너무 좁습니다. 누가 도서관을 필요로 합니까? - 소수의 프로그래머를 제외하고는 아무도 없었고, 심지어 그 프로그래머들도 오래전에 필요한 모든 라이브러리를 작성했습니다. 예를 들어, 제 자신의 그래픽 라이브러리가 최대 2개 있습니다.

여기에 있는 사람들을 가르치는 것은 내가 아니지만 조언을 드릴 수 있습니다. 여러분, 화약 냄새를 맡으십시오. 사용자와 함께 일하는 방법을 배웁니다 . 그들의 심리를 알아보십시오. 아이디어를 수익화하는 방법을 배웁니다. 그런 다음 재빨리 하늘에서 땅으로 내려오면 완전히 다른 방식으로 논쟁하게 될 것입니다. 나는 또한 한때 특별하고 아름다운 아이디어를 믿었지만 이 모든 것은 말도 안 되는 일이며 작동하지 않습니다. 당신이 여기서 논의하는 것은 당신 외에는 누구에게도 쓸모가 없습니다.

+ 네

내가 사용자에게 말하자마자 - 정말 멋지고 아름다운 인터페이스를 만들자! 그들은 모두 NO!

그들은 장식의 꽃과 추가 기능이없는 고문이 필요합니다. 즉, 편리한 아름다운 인터페이스가 없습니다!

사용자가 원하는 가장 중요한 것은 TOR에 따른 제품의 기능입니다.

우리 모두는 인터페이스 + 디자인을 개발하는 데 많은 시간이 걸린다는 것을 알고 있습니다. 디버깅에 매우 값비싼 리소스인 TIME이 사용됩니다!

 
Ilyas :
마우스 키 Crtl 및 Shift의 상태를 보고 하는 CHARTEVENT_MOUSE_MOVE 이벤트 를 주시하십시오.
뭐, 위에서 설명했지만 이 이벤트는 객체에 붙지 않고 너무 자주 보내집니다. 물체에 붙지 않는 것이 더 중요합니다.
 
Ilyas :
마우스 키 Crtl 및 Shift의 상태를 보고 하는 CHARTEVENT_MOUSE_MOVE 이벤트 를 주시하십시오.

정확히 예상되는 것이 아닙니다.

마우스를 올린 후 OBJECT_CLICK 이벤트가 발생한다는 사실에 대한 연설. 마우스가 개체를 누르는 순간을 추적할 수 없습니다.

이벤트를 시작하고 싶습니다. 마우스가 개체를 클릭합니다.

결합기 :
뭐, 위에서 설명했지만 이 이벤트는 객체에 붙지 않고 너무 자주 보내집니다. 물체에 붙지 않는 것이 더 중요합니다.
CHARTEVENT_OBJECT_DRAG - 내 기억으로는 움직임이 시작될 때 생성되는 것이 아니라 마우스를 놓은 후에도 생성되는 건가요?
 
o_O :
CHARTEVENT_OBJECT_DRAG 는 기본적으로 쓸모없는 이벤트입니다. 그래픽 개체 의 표준 방식으로 끌기의 을 알리기 때문입니다(즉, 선택해야 하고 선택한 개체는 del 키를 눌러 완전히 삭제됨).
 
Vasiliy Sokolov :
성능은 이벤트 전달 알고리즘 + 전달된 이벤트에 대한 요소의 최소 반응에 의해 영향을 받습니다. 귀하의 경우 브레이크는 이벤트 자체로 인한 것이 아니라 이러한 이벤트를 처리한 알고리즘으로 인한 것 같습니다.

자, 이벤트 전달과 알고리즘이 가장 간단합니다. 마우스 왼쪽 버튼을 누른 상태도 고정되어 있는 MouseMove 이벤트의 OnChartEvent()에서 핸들이 움직이는 창을 누르는 이벤트를 포착합니다. 다음으로 루프 내에서 모든 창 개체에 현재 커서 오프셋과 동일한 X 및 Y 오프셋(ObjectSetInteger() 사용)이 제공되는 창 이동 함수를 호출합니다 . 그게 다야.

동시에 창에 개체가 많을수록 더 많은 개체를 이동해야 합니다. 분명히 많은 수의 물체가 이동하여 제동이 발생합니다 ...