C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[41350] Re:스크롤박스에 수직스크롤바를 오른쪽이 아닌 왼쪽에 나타내기 그리고...
유영인 Cuperido [cuperido] 1143 읽음    2005-08-06 15:55
exam.zip 1.2MB ScrollBar, OnResize 예제
TScrollBar를 이용해서 만드시면 될 것 같습니다.

만약, 깜박거림이 심하시면  DoubleBuffered = true 로 놓고 사용하시면 되고요,
이미지 자체 크키가 너무 커서 심하게 떨림 현상이 보이신다면,
TImage가 아닌, PaintBox 등으로 직접 연산을 해서 그리는 루틴을 넣어주셔서
깔끔히 처리하실 수 있으실것 같습니다.

또한, 폼 크기의 변화시에 객체 변화는 OnResize에서 계산을 해주시면 됩니다.

아래 예제는 간단한 ScrollBar를 이용한 이미지 스크롤 및 OnResize시 객체 변화 예제입니다.
(폼 객체에 대해서도 참고하실 것이 있으실것 같아 첨부 파일로도 첨부합니다)


cuperido



//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{

SetValue();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::SetValue()
{

Image1->Top  = 0;
Image1->Left = 0;

Image1->Width      = Image1->Picture->Width;
Image1->Height     = Image1->Picture->Height;

ScrollBar1->Max         = Image1->Picture->Height - Panel1->Height;
ScrollBar1->LargeChange = ScrollBar1->Max / 10;
ScrollBar1->SmallChange = ScrollBar1->Max / 20;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ScrollBar1Change(TObject *Sender)
{

Image1->Top = - ScrollBar1->Position;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormResize(TObject *Sender)
{

Panel1->Height = Form1->Height - 50;
ScrollBar1->Height = Panel1->Height;

SetValue();

}
//---------------------------------------------------------------------------



새내기 님이 쓰신 글 :
: 안녕하세요.
: 선배님들...
: 꾸벅.
:
: 다름이 아니라, c++ builder에서 스크롤박스가 있는데요
: 수직 스크롤바가 오른쪽에 생겨요
: 전 왼쪽에 생겨야 하거든여.
: 이런것은 어떻게 하는거죠??
: 알려주세요. 주말에 나와서 쥐어터지고 있어요...ㅠㅠ
: (실제 원하는것은 이미지박스에 영상이 더 크면
: 자동적으로 스크롤바가 생기게 하려는것의 목적입니다.
: 그렇다해도 수직스크롤바가 오른쪽이 아닌 왼쪽에 생기게 하고 싶어요
: (
:
: 게다가 폼위에 올려진 컴포넌트가 잇는데
: 폼의 size를 마우스로 변경할때 폼위에 있는 컴포넌트들도
: 같이 크기가 변하고 싶어요. top하고 left는 고정이구여.
: scaleBy(75,100) 이런식으로 해봤는데,
: 화면이 무척 깜빡거리고 잘 안되네요.
: 컴포넌트도 안보이고 -.-;;
:
: 에고... 아시는 개발자분들 꼭 좀 알려주세요
: 이것땜시 주말에 출근했는데,
: c++ builder한지 2개월이라 잘 모르겠습니다.
: 도와주세요.

+ -

관련 글 리스트
41349 스크롤박스에 수직스크롤바를 오른쪽이 아닌 왼쪽에 나타내기 그리고... 새내기 849 2005/08/06
41350     Re:스크롤박스에 수직스크롤바를 오른쪽이 아닌 왼쪽에 나타내기 그리고... 유영인 Cuperido 1143 2005/08/06
41352         Re:대단히 감사합니다. 그런데 Image1박스에있는 그림을 메모리상에서 ... 새내기 749 2005/08/06
41354             Re:Re:대단히 감사합니다. 그런데 Image1박스에있는 그림을 메모리상에서 ... 유영인 Cuperido 877 2005/08/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.