2011년 7월 1일 금요일

제 5 장 버튼의 연동제어에 의한 그림그리기 4 (부분지우기버튼의 보완작업)

지금까지 설명한 그림그리기에서 문제가 되고 있는 부분지우기버튼을 보완한다.

1. 디자이너창에서 다른 이름으로 저장하기 버튼(Save As)을 클릭하여 새로운 프로젝트 명칭을Drawing_copy로 저장한다.

2. 우선부분지우기 버튼의 수정에 대해서 설명한다.

2-1. 드로잉캔버스의 페인트색(DrawingCanvas.PaintColor)이 컬러리스트(ColorList)에 있는 경우에는캔버스의 페인트색(set DrawingCanvas.PaintColor to)을 컬러리스트에 없는 무색(color None)으로 설정하고캔버스의 선폭(set DrawingCanvas.LineWidth to) 20 픽셀로 설정하고부분지우기 버튼의 텍스트를 다시 그리기로 설정한다.

2-2. 캔버스의 페인트색(DrawingCanvas.PaintColor)이 컬러리스트(ColorList)에 없는 경우에는, 즉 무색인 경우에는, 캔버스의 페인트색(set DrawingCanvas.PaintColor to)을 색변경버튼의 배경색으로 설정하고캔버스의 선폭(set DrawingCanvas.LineWidth to) 2 픽셀로 설정하고부분지우기 버튼의 텍스트(set PartEraser.Text to)를 부분 지우기로 설정한다.

2-3. 도트크기에 대해서는 이미 설명하였으므로 생략한다.

2-4. 상기한 바와 같이 정정한 버튼이벤트핸들러는 다음의 스크린샷과 같다.

  
3. 스팟버튼(SpotButton), 전체 지우기 버튼(WholeEraser), 색변경버튼(ColorButton) 및 변경전색버튼(ReturnButton) 등에서,
캔버스의 선폭(set DrawingCanvas.LineWidth to) 2 픽셀로 설정하는 블록과부분 지우기 버튼의 텍스트(set PartEraser.Text to)를 부분 지우기로 설정하는 블록을 각각 추가한다.  그 결과의 스크린 샷은 다음과 같다.

3-1 스팟 버튼

  
3-2. 전체지우기 버튼

  
3-3. 색변경 버튼


3-4. 변경전 색버튼


4. 지금까지 설명한 블록을 종합하여 나타내면이하의 4 개의 스크린샷과 같다.





5. 요약

이번 장에서는 버튼간의 연동방법에 대해서 중점적으로 설명하였다. 버튼간의 연동을 위해 블록을 조합하는 과정에서 돌발적인 버그가 많이 발생한다. 이러한 버그를 제거하기 위한 방법을 제시하였다. 예를 들면, 부부지우기 버튼과 전체지우기버튼간에 버그가 발생하지 않도록 새로운 블록을 제시였다.

또한, 지우기 버튼의 응답속도를 개선하기 위해 지우기버튼을 보완하는 방법을 제시하였다. 이것은 이후에 업데이트된 그림그리기를 완성하는 과정에서 궁리하여 상기 보완방법이 나온 것이다.  상기 부분지우기의 보완방법은 결과적으로는 간단하게 보일 수도 있지만 실제로 작성해 보면 많은 시행착오를 거쳐야 한다. 그 이유는 지우기버튼만을 보완하는 것으로만 완성되는 것이 아니고 그외의 다른 버튼 전체를 수정하여야 하기 때문이다.

댓글 없음:

댓글 쓰기