Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
이미지 스크롤 하는 방법 좀 가르쳐 주세요.
TScrollBox를 사용하지 않고 Image를 스크롤하는 방법좀 알려 주세요.
3
COMMENTS
컴맹..
•
2001.04.06 19:53
기냥 스크롤바를 이용해서 한번 만들어 봤습니다...
한번 해보시구여...
안되면 다시한번 올려주세여..
그럼 멜로 풀소스를 보내드리져..
그럼 이만....
unit ScrollDCU;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
ScrollBar1: TScrollBar;
ScrollBar2: TScrollBar;
procedure FormCreate(Sender: TObject);
procedure ScrollBar1Change(Sender: TObject);
procedure ScrollBar2Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
PreviousX, PreviousY: Integer; // tracks the previous scroll offset
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
{initialize the scroll bars}
ScrollBar1.Max := Image1.Picture.Bitmap.Width-Image1.Width;
ScrollBar2.Max := Image1.Picture.Bitmap.Height-Image1.Height;
{initialize the offset tracking variables}
PreviousX := 0;
PreviousY := 0;
end;
procedure TForm1.ScrollBar1Change(Sender: TObject);
var
ScrollRect, // the rectangular area to be scrolled
ClipRect, // the clipping rectangle of the scrolled area
UpdateRect: TRect; // the area uncovered by scrolling
begin
{initialize the scrolling and clipping rectangles to the entire area
of the image}
ScrollRect := Image1.BoundsRect;
ClipRect := Image1.BoundsRect;
{scroll the area horizontally by the specified amount}
ScrollDC(Canvas.Handle, PreviousX-ScrollBar1.Position, 0, ScrollRect,
ClipRect, 0, @UpdateRect);
{copy the appropriate area of the original bitmap into the newly uncovered
area}
Canvas.CopyRect(UpdateRect, Image1.Picture.Bitmap.Canvas,
Rect((UpdateRect.Left-Image1.Left)+ScrollBar1.Position,
ScrollBar2.Position, (UpdateRect.Left-Image1.Left)+
ScrollBar1.Position+(UpdateRect.Right-UpdateRect.Left),
Image1.Height+ScrollBar2.Position));
{record the current position}
PreviousX := ScrollBar1.Position;
end;
procedure TForm1.ScrollBar2Change(Sender: TObject);
var
ScrollRect, // the rectangular area to be scrolled
ClipRect, // the clipping rectangle of the scrolled area
UpdateRect: TRect; // the area uncovered by scrolling
begin
{initialize the scrolling and clipping rectangles to the entire area
of the image}
ScrollRect := Image1.BoundsRect;
ClipRect := Image1.BoundsRect;
{scroll the area vertically by the specified amount}
ScrollDC(Canvas.Handle, 0, PreviousY-ScrollBar2.Position, ScrollRect,
ClipRect, 0, @UpdateRect);
{copy the appropriate area of the original bitmap into the newly uncovered
area}
Canvas.CopyRect(UpdateRect, Image1.Picture.Bitmap.Canvas,
Rect(ScrollBar1.Position, (UpdateRect.Top-Image1.Top)+
ScrollBar2.Position, Image1.Width+ScrollBar1.Position,
(UpdateRect.Top-Image1.Top)+ScrollBar2.Position+
(UpdateRect.Bottom-UpdateRect.Top)));
{record the current position}
PreviousY := ScrollBar2.Position;
end;
end.
김광수 wrote:
>
> TScrollBox를 사용하지 않고 Image를 스크롤하는 방법좀 알려 주세요.
0
0
삭제
수정
댓글
델초
•
2001.04.05 18:54
델파이 자료실에 가면 전철호님의 홈페이지에 있는것을
본것 같습니다. 소스로 되어있는것 같아요..
김광수 wrote:
>
> TScrollBox를 사용하지 않고 Image를 스크롤하는 방법좀 알려 주세요.
0
0
삭제
수정
댓글
김광수
•
2001.04.06 00:15
제가 직접 TScrollBox를 분석하려고 했지만 제 지식으론 안되네요.
API를이용해서 Image를 스크롤하는 방법 좀 알려주세요.
델초 wrote:
> 델파이 자료실에 가면 전철호님의 홈페이지에 있는것을
> 본것 같습니다. 소스로 되어있는것 같아요..
>
> 김광수 wrote:
> >
> > TScrollBox를 사용하지 않고 Image를 스크롤하는 방법좀 알려 주세요.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
이성윤
2001.04.05 22:40
0
COMMENTS
/
0
LIKES
메세지 박스를 띄우려하는데 ...
김필수
•
2001.04.05 19:15
1
COMMENTS
/
0
LIKES
리눅스 서버, 델파이 클라이언트 프로그램 가능하나요?
흐르는산
•
2001.04.06 10:30
김필수 wrote: > 안녕하세요 델파이 초보자 입니다. > > 리눅스에서 서버 소켓을 생성하고 > 윈도우 ...
이영근
•
2001.04.05 19:10
1
COMMENTS
/
0
LIKES
파라독스테이블을 멀티유저용으로 사용하려면?...
송종석
•
2001.04.06 18:12
웹상에 답변이 있습니다. http://sandbrooksoftware.com/DPSC/Tips/PeterMorris/tips.htm##paradox 내...
거부기
2001.04.05 17:13
0
COMMENTS
/
0
LIKES
winsock 버전에 대해서....???
김광수
•
2001.04.05 10:29
3
COMMENTS
/
0
LIKES
이미지 스크롤 하는 방법 좀 가르쳐 주세요.
TScrollBox를 사용하지 않고 Image를 스크롤하는 방법좀 알려 주세요.
컴맹..
•
2001.04.06 19:53
기냥 스크롤바를 이용해서 한번 만들어 봤습니다... 한번 해보시구여... 안되면 다시한번 올려주세여...
델초
•
2001.04.05 18:54
델파이 자료실에 가면 전철호님의 홈페이지에 있는것을 본것 같습니다. 소스로 되어있는것 같아요.. 김...
김광수
•
2001.04.06 00:15
제가 직접 TScrollBox를 분석하려고 했지만 제 지식으론 안되네요. API를이용해서 Image를 스크롤하는 ...
김현영
2001.04.05 09:13
0
COMMENTS
/
0
LIKES
[부탁말씀]고수님들. 소스좀 만들어주세요.
허접이
2001.04.05 08:43
0
COMMENTS
/
0
LIKES
벡터이미지를 사용해서 확대해도 깨지지 않게 하는 방법좀...
novice
2001.04.05 08:04
0
COMMENTS
/
0
LIKES
차트에 대한 질문이 있습니다
novice
2001.04.05 08:03
0
COMMENTS
/
0
LIKES
질문제목과 분류를 꼭 해주시길 부탁드립니다.
강창모
2001.04.05 07:52
0
COMMENTS
/
0
LIKES
dbgrid의 sell select와 dataset에서의 locate() 동기화
홍승규
2001.04.05 06:32
0
COMMENTS
/
0
LIKES
[프로토콜] 도와주세요!
메시지
2001.04.05 05:13
0
COMMENTS
/
0
LIKES
WM_USER 메시지..
용호
2001.04.05 04:40
0
COMMENTS
/
0
LIKES
ics의 ping compo 설명좀 해주세요 ㅡㅡ,
쭈꾸미
•
2001.04.05 04:32
3
COMMENTS
/
0
LIKES
DBGrid 위에 생성된 체크박스 소멸하는 방법좀....
송병철
•
2001.04.06 06:05
쭈꾸미 wrote: > 수고하십니다. 고수님들.. > DBGrid 위에 체크박스를 생성시켜서 올려놓는것 까지는 됐...
넘궁금
•
2001.07.26 21:31
아래와 같이 하는 방법은 익히 자료가 많이 올라와 잘 알고 있습니다. 하지만 스트링 그리드의 전제 Heigt...
감초
•
2001.04.06 01:49
이런 비슷한 질문들이 계속 올라와서 안스러워 드리는 말인데요, 혹시 전문가로 되시려 공부하신다면 제가...
궁구미
•
2001.04.05 03:55
2
COMMENTS
/
0
LIKES
ActiveForm에서의 처리...
설창원
•
2001.04.09 20:35
액티브폼의 이벤트를 보면 onActivate인가 하는 부분이 있어서 거기서 처리가 될까 해서 해본 경험이 있는...
서성호
•
2001.04.05 05:34
궁구미 wrote: > 안녕하십니까 고수님덜~~ > > 이제 막 ActiveForm을 접했는데 첨부터 어려움이.. ㅠ....
^-_-^
2001.04.05 03:44
0
COMMENTS
/
0
LIKES
XCL
hs
•
2001.04.05 03:18
1
COMMENTS
/
0
LIKES
UNION과 ORDER BY에 대해서
이희정
•
2001.04.05 03:29
hs wrote: > 질문 내용 다음이 에러가 발생합니다. > SELECT A.* > FROM A > UNION ALL > SELECT A.*...
초보
•
2001.04.05 03:07
1
COMMENTS
/
0
LIKES
원단위 올림은...
이희정
•
2001.04.05 03:14
초보 wrote: > 원단위 올림은 어떻게 하나요? > 예를 들어 1025원을 1030원으로 올림을 하고 싶은데요. ...
이시우
•
2001.04.05 02:56
1
COMMENTS
/
0
LIKES
타입 cast
하기
•
2001.04.05 03:09
procedure TForm1.Button1Click(Sender: TObject); var j : single; (or double/real...) begin j ...
송해광
2001.04.05 02:50
0
COMMENTS
/
0
LIKES
Breakpoint(F5)가 지정은 되는데 않돼요!
김광수
2001/04/05 10:29
Views
246
Likes
0
Comments
3
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
한번 해보시구여...
안되면 다시한번 올려주세여..
그럼 멜로 풀소스를 보내드리져..
그럼 이만....
unit ScrollDCU;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
ScrollBar1: TScrollBar;
ScrollBar2: TScrollBar;
procedure FormCreate(Sender: TObject);
procedure ScrollBar1Change(Sender: TObject);
procedure ScrollBar2Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
PreviousX, PreviousY: Integer; // tracks the previous scroll offset
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
{initialize the scroll bars}
ScrollBar1.Max := Image1.Picture.Bitmap.Width-Image1.Width;
ScrollBar2.Max := Image1.Picture.Bitmap.Height-Image1.Height;
{initialize the offset tracking variables}
PreviousX := 0;
PreviousY := 0;
end;
procedure TForm1.ScrollBar1Change(Sender: TObject);
var
ScrollRect, // the rectangular area to be scrolled
ClipRect, // the clipping rectangle of the scrolled area
UpdateRect: TRect; // the area uncovered by scrolling
begin
{initialize the scrolling and clipping rectangles to the entire area
of the image}
ScrollRect := Image1.BoundsRect;
ClipRect := Image1.BoundsRect;
{scroll the area horizontally by the specified amount}
ScrollDC(Canvas.Handle, PreviousX-ScrollBar1.Position, 0, ScrollRect,
ClipRect, 0, @UpdateRect);
{copy the appropriate area of the original bitmap into the newly uncovered
area}
Canvas.CopyRect(UpdateRect, Image1.Picture.Bitmap.Canvas,
Rect((UpdateRect.Left-Image1.Left)+ScrollBar1.Position,
ScrollBar2.Position, (UpdateRect.Left-Image1.Left)+
ScrollBar1.Position+(UpdateRect.Right-UpdateRect.Left),
Image1.Height+ScrollBar2.Position));
{record the current position}
PreviousX := ScrollBar1.Position;
end;
procedure TForm1.ScrollBar2Change(Sender: TObject);
var
ScrollRect, // the rectangular area to be scrolled
ClipRect, // the clipping rectangle of the scrolled area
UpdateRect: TRect; // the area uncovered by scrolling
begin
{initialize the scrolling and clipping rectangles to the entire area
of the image}
ScrollRect := Image1.BoundsRect;
ClipRect := Image1.BoundsRect;
{scroll the area vertically by the specified amount}
ScrollDC(Canvas.Handle, 0, PreviousY-ScrollBar2.Position, ScrollRect,
ClipRect, 0, @UpdateRect);
{copy the appropriate area of the original bitmap into the newly uncovered
area}
Canvas.CopyRect(UpdateRect, Image1.Picture.Bitmap.Canvas,
Rect(ScrollBar1.Position, (UpdateRect.Top-Image1.Top)+
ScrollBar2.Position, Image1.Width+ScrollBar1.Position,
(UpdateRect.Top-Image1.Top)+ScrollBar2.Position+
(UpdateRect.Bottom-UpdateRect.Top)));
{record the current position}
PreviousY := ScrollBar2.Position;
end;
end.
김광수 wrote:
>
> TScrollBox를 사용하지 않고 Image를 스크롤하는 방법좀 알려 주세요.