Showing posts with label Graphics. Show all posts
Showing posts with label Graphics. Show all posts

Friday, August 23, 2013

Graphics 초기화 오류 시

지난 번 포스트 후 몇 달(?)이 지났다.

이제는 이벤트 핸들러 없이 일일이 redraw해주기가 불가능하게 되었으므로
(규모로도 그렇고 로직으로도 그렇고)

지난 번 포스트의 문제점을 해결해야만 하게 되었다.

해결책은 간단하다.

이벤트핸들러를 등록해 주는만큼 해제도 해 줘야 한다.

창을 닫고 나서도 계속 등록된 상태라면 Graphics 객체 초기화에 오류가 발생한다.

Closed나 Closing 이벤트에 핸들러를 등록하고, 그리기 핸들러를 -= 연산자로 해제해주는 코드를 작성하면 된다.

Referer를 만들 때 +=, 없앨 때 -=,

편집창을 열 때 +=, 닫을 때 -=

이렇게 쌍을 유지하는지 감시(?)해야 한다.

Tuesday, July 2, 2013

[C#] Graphics

Graphics 객체 초기화에 문제가 생김.

parameter가 invalid하다고 함.


코드를 다 뜯어봐도 임의로 Dispose하거나 null로 세팅하는 데는 없었음.




문제는 event handler였음.

MVC 패턴(?)을 내가 제대로 쓰지 못해서 그런 건지는 잘 모르겠는데,

아무튼 Redraw & Invalidate를 EventHandler로 넣으면 안 됨.


결국 수동으로 일일이 Redraw & Invalidate하니 잘 돌아감.

이런 샹.


코드:

class DataClass { // 데이터 내용을 고치면 Viewer에서 자동으로 인식
...

   void SetCoord(int x, int y) {
       this.X=x; this.Y=y;
       if(LocationChanged!=null)  // LocationChanged 이벤트 발생시킴.
           LocationChanged(this, null);   // 이 부분이 문제가 됐음.
   }
}

class Viewer {
     void AddData(DataClass dt) {
          dt.LocationChanged += RedrawAndInvalidate;
     }
}

그리기가 관련된 데서는 이벤트를 쓰면 안 될 거 같다;;;;;;

iOS26 거울 아이콘

오래 전에 iPhone을 기울이면(tilt) 아이콘이 살짝 움직이는 업데이트가 있었다. Motion toggle이라고 한다... (Reddit 포스트조차 5년 전이다) https://www.reddit.com/r/jailbreak/comments/gg...