판넬위에 TImage와 TShape 컴포넌트로서 새로운 시계 컴포넌트를 만들려구 합니다...^^
Shape는 시계의 동그란 부분을 만들고,
Image에서 시계바늘을 만들어 볼려구합니다.
그래서 생성자에서
constructor TWatch.Create( AOwner: TComponent );
begin
inherited Create( AOwner );
Caption := '';
width := 100;
height := 100;
BevelOuter := bvNone;
// 시계의 Back Ground 는 Shape로....
FWatchBack := TShape.Create( Self );
FWatchBack.Parent := self;
FWatchBack.Align := alClient;
FWatchBack.Shape := stCircle;
FWatchBack.Show;
// 시계의 바늘은 Image 로......
FWatchShow := TImage.Create( Self );
FWatchShow.Parent := self;
FWatchShow.Align := alClient; <- 이게 이상해욤.
FWatchShow.Transparent := true;
end;
이렇게 했는데욤
막상 컴파일해서 만들어보믄 시계 크기가 100,100 디폴트 크기면 딱 맞는데,
디자인 time에서 사이즈를 바꾸믄 Shape는 alClient로 지정되니까
정상적으로 크기가 변하는데,
Image 컴포넌트 이 눔은 꿈쩍두 않합니다.
한대 패주구 싶을 정도로.....T.T
어캐 조져야 시원하게 분풀이를 할수 있을까욤...^^;;;
부탁드립니다.
그래서 몇가지 속성을 조절을 해줘야 함다.
크기에 따라서 이미지를 줄이고 늘려서 표시해 주는 속성이 있는데 기억이 잘안나네.
그리고 AutoSize 속성을 False 로 해주고 alClient 보다는 크기가 변할때
직접 높이와 폭을 조절해 주시면 될거 같군요. Panel 의 OnResize 이벤트에서 직접
맞춰준다거나 그러면 되겠죠.
그리고 솔직히 이미지 콤포넌트와 콤포넌트로 하는것보다는 이미지콤포넌트에 그림을
넣고 그 그림을 StretchBlt 함수로 직접 늘이거나 줄여서 그림을 표시해 주고
하면서 그 바탕그림위에 시계를 그리고 그럼 더 좋은 것이 될거같군요.
Faster wrote:
>
> 판넬위에 TImage와 TShape 컴포넌트로서 새로운 시계 컴포넌트를 만들려구 합니다...^^
> Shape는 시계의 동그란 부분을 만들고,
> Image에서 시계바늘을 만들어 볼려구합니다.
>
> 그래서 생성자에서
>
> constructor TWatch.Create( AOwner: TComponent );
> begin
> inherited Create( AOwner );
> Caption := '';
> width := 100;
> height := 100;
> BevelOuter := bvNone;
>
> // 시계의 Back Ground 는 Shape로....
> FWatchBack := TShape.Create( Self );
> FWatchBack.Parent := self;
> FWatchBack.Align := alClient;
> FWatchBack.Shape := stCircle;
> FWatchBack.Show;
>
> // 시계의 바늘은 Image 로......
> FWatchShow := TImage.Create( Self );
> FWatchShow.Parent := self;
> FWatchShow.Align := alClient; <- 이게 이상해욤.
> FWatchShow.Transparent := true;
> end;
>
> 이렇게 했는데욤
>
> 막상 컴파일해서 만들어보믄 시계 크기가 100,100 디폴트 크기면 딱 맞는데,
> 디자인 time에서 사이즈를 바꾸믄 Shape는 alClient로 지정되니까
> 정상적으로 크기가 변하는데,
>
> Image 컴포넌트 이 눔은 꿈쩍두 않합니다.
> 한대 패주구 싶을 정도로.....T.T
>
> 어캐 조져야 시원하게 분풀이를 할수 있을까욤...^^;;;
>
> 부탁드립니다.
>