|
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개월이라 잘 모르겠습니다.
: 도와주세요.
|