Q&A

  • 동적으로 만든 Panel부분 컨트롤하기.
안녕하세요... 고수님들의 도움이 필요합니다.



내용은 ACDSee프로그램에서 각 이미지를 클릭하면 그 부분만 선택이 되쟎아요...

저도 Panel을 만들고 그 위에 이미지를 만들어 이미지를 만들었거든요.

그런데.. ACDSee같이 클릭하면 그 이미지만 선택이 되게 하려고 하는데요...

Panel색상이 선택된 곳에만 변한다던지... 누른 효과같은것이 나타난다던지...



어떻게 해야 할지...

고수님들의 답변 바랍니다.

1  COMMENTS
  • Profile
    홍성락 2001.09.08 00:22
    freelab wrote:

    > 안녕하세요... 고수님들의 도움이 필요합니다.

    >

    > 내용은 ACDSee프로그램에서 각 이미지를 클릭하면 그 부분만 선택이 되쟎아요...

    > 저도 Panel을 만들고 그 위에 이미지를 만들어 이미지를 만들었거든요.

    > 그런데.. ACDSee같이 클릭하면 그 이미지만 선택이 되게 하려고 하는데요...

    > Panel색상이 선택된 곳에만 변한다던지... 누른 효과같은것이 나타난다던지...

    >

    > 어떻게 해야 할지...

    > 고수님들의 답변 바랍니다.

    ///////////////////////////////////////////////////////////////////////

    패널과 이미지 컴포넌트 이름을

    Image_1, Image_2,......

    Panel_1, Panel_2,......이렇게 주었도되구요(아래예)

    배열식으로 Panel : array[1..100] of TPanel; 주어도됩니다.



    어떻게 했든 생성후 이벤트 연결을 합니다.

    이미지.OnClick := Image_NClick;

    패널.OnClick := Panel_NClick;



    //이미지가 위에 있으므로 클릭시 그부모인 패널의 TObject를 넘기며 클릭이벤트를실행합니다

    procedure TForm1.Image_NClick(Sender: TObject);

    begin

    Panel_NClick(TImage(Sender).Parent);

    end;

    //패널클릭시

    procedure TForm1.Panel_NClick(Sender: TObject);

    var

    i : integer;

    begin

    //Panel_Comp_NUM은 전역변수로 생성시마다 증가시키면됨

    //따라서 생성된 개수만큼 초기화시킴

    for i := 1 to Panel_Comp_NUM do

    TPanel(FindComponent('Panel_' + intToStr(i))).Color := clBtnFace;

    //현 클릭된것만 색 바꿈

    TPanel(Sender).Color := clRed;

    end;