안녕하세요!
도저히 제 혼자 해결하기가 뻑차 이렇게 글을 올립니다.
질문내용은
Form에 ScrollBox를 올려놓고 그위에 PaintBox를 또 올려 놓았습니다.
그리고 선을 그리는데.
aposition: array[0..400000] of Tpoint;
aPosition에 값을 집어넣는 부분
Paintbox.canvaas.moveto(0,0);
Paintbox.height := 30000;
Paintbox.width := 30000;
For i := Low( aPosition ) to High( aPosition ) do
begin
PaintBox.canvas.Ellipse( aposition[i].x - 5,
aposition[i].y - 5,
aposition[i].x + 5,
aposition[i].y + 5 );
PaintBox.canvas.lineto( aposition[i].x, aposition[i].y );
end;
선을 다 그리고
한화면에 그림이 다 나오지 않기 때문에
scrollbar를 이동하면 Paint 이벤트에서 다시 그리는데
그 속도가 아 지루하네요.
DIB 를 이용하면 속도가 상당히 빨라 진다고 하던데 PaintBox를 DIB에
적용할려면 어떻게 해야 하나요?
PaintBox에 선과 원을 빠르게 표현할 수 있는 방법을 아시는
고수여러분 많은 지도 편달을 부탁 드립니다.
방법만이라도....
TImage에 그리고 그것을 Paintbox에 옮기려고 하니까
Image 크기가 너무커 리소스 부족인가 뭔가 에러가 나네요!
좋은 방법 부탁 드립니다. 벌써 한달이 다되어 가네요.........
힘들어
감사합니다. 즐프 하세요....
페인트박스에다가 직접그리시지 마시고 비트맵객체(TBitmap)를 하나 생성해서 거기다가
그리세요... 그리고 OnPaint이벤트에서 보이는 부분만 Tcanvas.CopyRect이나 BitBlt을
이용해서 비트맵에서 페인트박스의 캔버스로 옮겨주시면 아주 빠르게 그려질겁니다.
^^ 항상 즐코하세요...
이상수 wrote:
> 안녕하세요!
>
> 도저히 제 혼자 해결하기가 뻑차 이렇게 글을 올립니다.
>
> 질문내용은
>
> Form에 ScrollBox를 올려놓고 그위에 PaintBox를 또 올려 놓았습니다.
>
> 그리고 선을 그리는데.
>
> aposition: array[0..400000] of Tpoint;
>
> aPosition에 값을 집어넣는 부분
>
> Paintbox.canvaas.moveto(0,0);
> Paintbox.height := 30000;
> Paintbox.width := 30000;
>
> For i := Low( aPosition ) to High( aPosition ) do
> begin
> PaintBox.canvas.Ellipse( aposition[i].x - 5,
> aposition[i].y - 5,
> aposition[i].x + 5,
> aposition[i].y + 5 );
>
> PaintBox.canvas.lineto( aposition[i].x, aposition[i].y );
> end;
>
> 선을 다 그리고
> 한화면에 그림이 다 나오지 않기 때문에
> scrollbar를 이동하면 Paint 이벤트에서 다시 그리는데
> 그 속도가 아 지루하네요.
>
> DIB 를 이용하면 속도가 상당히 빨라 진다고 하던데 PaintBox를 DIB에
> 적용할려면 어떻게 해야 하나요?
>
> PaintBox에 선과 원을 빠르게 표현할 수 있는 방법을 아시는
> 고수여러분 많은 지도 편달을 부탁 드립니다.
> 방법만이라도....
>
> TImage에 그리고 그것을 Paintbox에 옮기려고 하니까
> Image 크기가 너무커 리소스 부족인가 뭔가 에러가 나네요!
>
> 좋은 방법 부탁 드립니다. 벌써 한달이 다되어 가네요.........
>
> 힘들어
>
> 감사합니다. 즐프 하세요....
>