우선 답변에 감사드립니다.
제가 할려는 것은 이미지를 불러와서, 그 위에 선그리기나 글씨쓰기 등 각종 작업을 한 후
이를 다시 저장하려고 합니다.
그런데, 페인트 박스는 그림을 그리고 나서, 다른화면에 가려지게 되면, 가려졌던 부분이 자동으로 복구되지가 않는데,
어떻게 해야 되죠?
그리고 저장은 어떻게 하는거죠?
방법을 알려주시면 감사하겠습니다.
책은 아무리 봐도 그런 내용이 없네요...ㅠ.ㅠ
유영인 Cuperido 님이 쓰신 글 :
: 델파이 4버젼 이상에선가부터 TImage 컴포넌트가 자동으로 Refresh가 되게 되었습니다.
: 그래서, OnPaint 메시지를 따로 처리를 안해줘도 되는데 반해, 계속 다시 그리기 때문에
: 깜빡 거림 현상이 나타납니다.
:
: 가장 쉬운 방법은 TPaintBox를 사용하는 것입니다. :)
:
:
: cuperido
:
: Milky Way 님이 쓰신 글 :
: : 안녕하세요?
: : 델파이 초보입니다.
: :
: : 이미지의 팔레트에 Mousemove 이벤트시 lineto 메소드로 그림을 그리도록
: : 프로그래밍 했는데요, 화면떨림 현상이 너무 심해서 쓸 수 없을 정도입니다.
: :
: : 게시판에 다른분들이 쓰신 글을 보니
: : 아래와 같이 하라고 되어 있더군요.
: :
: : DoubleBuffered := True;
: :
: : 그런데 이걸 추가해도 마찬가지 입니다.
: :
: : 어떻게 해야 이미지 깜빡임없이 선을 그릴 수 있을까요?
: : 고수님들의 답변 기다리겠습니다.
: :
: : ------------------------------------------------------------------
: : procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
: : Y: Integer);
: : begin
: : DoubleBuffered := True;
: : if Drawing = True then
: : begin
: : Bmp.Canvas.Pen.Width := StrtoInt(TxtLineWidth.Text);
: : with Bmp.Canvas do
: : begin
: : MoveTo(MovePt.X,MovePt.Y);
: : LineTo(X,Y);
: : end;
: : Image1.Picture.Assign(bmp);
: : end;
: : MovePt := Point(x,y);
: :
: : end;
|