Q&A

  • image위에서의 포커스 사이즈는 바꿀수없나요?
이미지를 scrollbox에 놓고 불러와

포커스를 이동하는 등의 소스의 일부분입니다

여지서 DrawFocusRect란걸 썼는데 이것에대해 좀더 자세히 알고싶구요

또 이때의 포커스의 크기나 색깔지정은 어떻게 하는지 궁금합니다

여러분들이 많이 도와주세요

제발이요...

정초부터 나온질문이 좀 두서없구 그렇죠?

암튼 부탁드립니다~~

해결좀해주세요오오오오~~~





procedure Tfrmkep1901e.e_scroll_controlKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if (Shift = ([ssShift])) then

begin

if Key = vk_down then

begin

Image1.Canvas.Brush.Color := clBackGround;

Image1.Canvas.DrawFocusRect(d_rect);

d_rect.Top := d_rect.Top + 1;

d_rect.Bottom:= d_rect.Bottom + 1;

Image1.Canvas.DrawFocusRect(d_rect);

end

else if Key = vk_up then

begin

Image1.Canvas.Brush.Color := clBackGround;

Image1.Canvas.DrawFocusRect(d_rect);

d_rect.Top := d_rect.Top - 1;

d_rect.Bottom:= d_rect.Bottom - 1;

Image1.Canvas.DrawFocusRect(d_rect);

end

else if Key = vk_right then

...

...

...

...

...



4  COMMENTS
  • Profile
    Black}{ole 2001.01.03 04:40
    쌩초보 wrote:

    > 이미지를 scrollbox에 놓고 불러와

    > 포커스를 이동하는 등의 소스의 일부분입니다

    > 여지서 DrawFocusRect란걸 썼는데 이것에대해 좀더 자세히 알고싶구요

    > 또 이때의 포커스의 크기나 색깔지정은 어떻게 하는지 궁금합니다

    > 여러분들이 많이 도와주세요

    > 제발이요...

    > 정초부터 나온질문이 좀 두서없구 그렇죠?

    > 암튼 부탁드립니다~~

    > 해결좀해주세요오오오오~~~

    >

    >

    > procedure Tfrmkep1901e.e_scroll_controlKeyDown(Sender: TObject; var Key: Word;

    > Shift: TShiftState);

    > begin

    > if (Shift = ([ssShift])) then

    > begin

    > if Key = vk_down then

    > begin

    > Image1.Canvas.Brush.Color := clBackGround;

    > Image1.Canvas.DrawFocusRect(d_rect);

    > d_rect.Top := d_rect.Top + 1;

    > d_rect.Bottom:= d_rect.Bottom + 1;

    > Image1.Canvas.DrawFocusRect(d_rect);

    > end

    > else if Key = vk_up then

    > begin

    > Image1.Canvas.Brush.Color := clBackGround;

    > Image1.Canvas.DrawFocusRect(d_rect);

    > d_rect.Top := d_rect.Top - 1;

    > d_rect.Bottom:= d_rect.Bottom - 1;

    > Image1.Canvas.DrawFocusRect(d_rect);

    > end

    > else if Key = vk_right then

    > ...

    > ...

    > ...

    > ...

    > ...

    >



    안녕하세요. ^^



    소스에. d_rect값을 바꿈.. 포커스 사이즈가 바뀔것 같은뎅? 아닌감? ^^

    그리고,. DrawFocusRect로 그린 포커스는 색깔못봐꿉니다.

    걍.. Canvas.Rectangle함수를 이용해 직접 그려 주면 될것 같네여..

    자세한건 도움말 참고하세요.



    그럼..20000.



  • Profile
    쌩초보 2001.01.03 20:56
    Black}{ole wrote:

    > 쌩초보 wrote:

    > > 이미지를 scrollbox에 놓고 불러와

    > > 포커스를 이동하는 등의 소스의 일부분입니다

    > > 여지서 DrawFocusRect란걸 썼는데 이것에대해 좀더 자세히 알고싶구요

    > > 또 이때의 포커스의 크기나 색깔지정은 어떻게 하는지 궁금합니다

    > > 여러분들이 많이 도와주세요

    > > 제발이요...

    > > 정초부터 나온질문이 좀 두서없구 그렇죠?

    > > 암튼 부탁드립니다~~

    > > 해결좀해주세요오오오오~~~

    > >

    > >

    > > procedure Tfrmkep1901e.e_scroll_controlKeyDown(Sender: TObject; var Key: Word;

    > > Shift: TShiftState);

    > > begin

    > > if (Shift = ([ssShift])) then

    > > begin

    > > if Key = vk_down then

    > > begin

    > > Image1.Canvas.Brush.Color := clBackGround;

    > > Image1.Canvas.DrawFocusRect(d_rect);

    > > d_rect.Top := d_rect.Top + 1;

    > > d_rect.Bottom:= d_rect.Bottom + 1;

    > > Image1.Canvas.DrawFocusRect(d_rect);

    > > end

    > > else if Key = vk_up then

    > > begin

    > > Image1.Canvas.Brush.Color := clBackGround;

    > > Image1.Canvas.DrawFocusRect(d_rect);

    > > d_rect.Top := d_rect.Top - 1;

    > > d_rect.Bottom:= d_rect.Bottom - 1;

    > > Image1.Canvas.DrawFocusRect(d_rect);

    > > end

    > > else if Key = vk_right then

    > > ...

    > > ...

    > > ...

    > > ...

    > > ...

    > >

    >

    > 안녕하세요. ^^

    >

    > 소스에. d_rect값을 바꿈.. 포커스 사이즈가 바뀔것 같은뎅? 아닌감? ^^

    > 그리고,. DrawFocusRect로 그린 포커스는 색깔못봐꿉니다.

    > 걍.. Canvas.Rectangle함수를 이용해 직접 그려 주면 될것 같네여..

    > 자세한건 도움말 참고하세요.

    >

    > 그럼..20000.

    >



    d_rect으로는 위치밖엔 안되는듯....아닌가요? 제가 아는게 없어서리...-.-;;

    글구 Canvas.Rectangle함수를 이용하는 거 자세히 설명해주실순 없나요?

    너무 쉬운질문인지...

    부탁드려요 히히 ^^(에구 민망....)

  • Profile
    Black}{ole 2001.01.04 18:17
    d_rect에 d_rect.Right와 d_rect.Bottom에 위치를 설정해 크기를 바꿀수 있습니다.

    그리구,.. 팁으로 특정콘트롤에 클라이언트 크기를 구하고 싶을때 API중에

    GetClientRect가 있습니다. 이걸 이용해서 크기를 구해서.. 이용하면 더 좋을것 같네여.

    Windows.GetClientRect(Image1.Handle, R);



    그리구..

    Canvas.Brush.Color := clRed; //채움색

    Canvas.Pen.Color := clWhite; //선색.

    Canvas.Rectangle(10, 10, 100, 200);







    이런식으로 하면될것 같네여..



    그럼..20000.



  • Profile
    쌩초보 2001.01.05 18:59
    블랙홀님 감사해여~