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
[40260] Re:ScrollBox안에 동적으로 생성된 컴포넌트 클릭...
수야!╋ [sooya23] 994 읽음    2005-05-23 09:40
TScrollBox 안에 어떤 컴포넌트를 올리셨는지는 잘은 모르겠습니다만 기본적으로 OnClick 라는 이벤트는 가지고 있는 컴포넌트라 예상이 되는군요.. 이미지 컴포인가요? ^^;;

동적으로 생성된 컴포넌트라면 반듯이 List화 되어 메모리 포인터를 가지고 계실꺼라 생각됩니다.

그게 배열이든 리스트든 뭐든간에요~ ^^

원하시는 작업을 하시기 위해서는 이름을 지어주는 일이 필요합니다.

저는 저희 어머님의 아들이고 또 저희 형 역시 어머님의 아들이지요

어머님이 아들~ 하고 부르신다면 형과 저는 혼돈될 수 밖에 없지요

그래서 저희들은 각자 이름이 있고 그 이름을 부르시니 곧 대답할 수 있는것입니다.

컴포넌트도 마찬가지로 생성하신다면 고유의 이름이 있습니다.

바로 메모리 주소이지요, 또한 Name 이라는 프로퍼티를 통해 우리가 알아보기 쉬운 이름을 지어줄 수도 있지요

각 컴포넌트의 이름을 지어주셔두되고 메모리 주소를 사용하셔두 됩니다.

컴포넌트 동적 생성시에 OnClick 이벤트 함수를 정의해 줍니다.

TImage *pImage = new TImage( this );
...
pImage->OnClick = ImagesClick;

TForm1::ImagesClick( TObject *Sender )
{
}

TImage를 사용하지 않을셨을 경우에는 해당 컴포넌트의 OnClick 함수원형을 알아내셔서 같은 형태의 함수를 선언하시고 OnClick 에 해당 함수 포인터를 넘겨주시면 됩니다.

모든 컴포넌트들을 저렇게 작업하시면 해당컴포넌트들의 모든 OnClick이벤트는 저 함수로 호출되게 됩니다.

이제 리스트 해두셨던 컴포넌트들의 메모리 포인터나 이름과 비교하면 되는것이지요

if( ( (TImage *) Sender )->Name == "지어준이름" ) 과 같이 비교하실 수 있으며

리스트해두신 포인터과 비교하시려면

if( List의 메모리 주소값 == Sender ) 처럼 비교하실 수 있습니다.

TImage에 큰 이미지를 Scretch하여 작게 보여준 상태라면

크게 보여줄 이미지 컴포넌트에 그냥 Assign을 하셔도 무방합니다.
( Image->Picture->Bitmap->Assign(  ( (TImage * ) ( Sender ) )->Picture->Bitmap );

여기까지입니다.

경우에 맞는 방법을 찾으셔서 작업하시는것이 좋겠습니다.

고수가 아니여서 답변을 드리기가 항상 곤란하군요... -_-;;

왜 고수님에게만 답변을 구하시는지.. ㅠ.ㅠ



왕초보 님이 쓰신 글 :
: ScrollBox안에 동적으로 생성된 컴포넌트 클릭시 이미 만들어 놓은 이미지 컴포넌트에 나타나게 하려고 합니다.
:
: 코드의 대충의 목적은
:
: 탐색기처럼  옆에 디렉토리 파일을 클릭하면 미리보기 창에 그 디렉토리안에 있는
:
: 파일들이 동적으로 생성되고, 그 미리보기창에 동적으로 생성된 파일을 클릭하면 메인 화면에 크게 출력되게
:
: 하려고 하거든여...잘 안되네여......고수님들....방법좀 갈켜주세여.....

+ -

관련 글 리스트
40249 ScrollBox안에 동적으로 생성된 컴포넌트 클릭... 왕초보 738 2005/05/21
40260     Re:ScrollBox안에 동적으로 생성된 컴포넌트 클릭... 수야!╋ 994 2005/05/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.