Q&A

  • Tag로 Label 찾아내기..
여러분의 도움덕에 조금씩 실력이 늘고 있는 급한 사람입니다..



4개의 라벨을 만들어서 선택된 경우는 노란색으로 그렇지 않은 경우는 검은색으로 처리한다고 할때요..4개의 라벨은 반드시 하나만 선택됩니다..

각각의 tag를 0,1,2,3으로 주었다고 할때 클릭했을때 아래의 이벤트로 들어가게 됩니다.

예를 들어 tag 1번이 선택되었다고 할때,



procedure TForm1.LabelClick(Sender: TObject);

begin

TLabel(Sender).Font.Color := clYellow; //tag 1번에 대한 처리..



???????????//나머지 tag에 대한 처리..

end;

????부분을 어떻게 처리해야 될지 모르겠습니다..

즉, tag번호를 가지고 해당되는 Label을 찾아야하는데 그 방법을 모르겠네요..

고수님들 부탁드립니다..어찌하면 좋습니까?







1  COMMENTS
  • Profile
    류종택 2001.08.07 09:10
    사실 라벨이 4개밖에 안된다면..

    그냥 무식하게 코딩하는 게 더욱 효율적이라고 생각합니다..

    즉,



    Procedure TForm1.LabelClick.....

    Begin

    Label1.Font.Color:= clBalck;

    Label2.Font.Color:= clBalck;

    Label3.Font.Color:= clBalck;

    Label4.Font.Color:= clBalck;

    TLabel(Sender).Font.Color := clYellow;

    End;



    그 외에 몇 가지 방법을 생각해볼 수 있겠으나..

    라벨 갯수가 고무줄일 경우..

    고정된 코드로 적용할 수 있는 간단한 방법은..



    Procedure TForm1.LabelClick.....

    Var

    Loop : Integer;

    begin

    For Loop:= 0 to Self.ComponentCount-1 do

    If Self.Components[Loop].ClassType = TLabel then

    Begin

    If Self.Components[Loop] = Sender then

    TLabel(Self.Components[Loop]).Font.Color:= clYellow

    Else

    TLabel(Self.Components[Loop]).Font.Color:= clBlack;

    End;

    end;



    과 같이하시면 됩니다..

    왠지 루프를 돌리는 것이 상당히 맘에 안들지만..

    그리고 쓸데 없이 Begin End하나 더 집어넣은 것은..

    코드를 보기 쉽게 하기위해서입니다..





    From 류..





    급한 사람 wrote:

    > 여러분의 도움덕에 조금씩 실력이 늘고 있는 급한 사람입니다..

    >

    > 4개의 라벨을 만들어서 선택된 경우는 노란색으로 그렇지 않은 경우는 검은색으로 처리한다고 할때요..4개의 라벨은 반드시 하나만 선택됩니다..

    > 각각의 tag를 0,1,2,3으로 주었다고 할때 클릭했을때 아래의 이벤트로 들어가게 됩니다.

    > 예를 들어 tag 1번이 선택되었다고 할때,

    >

    > procedure TForm1.LabelClick(Sender: TObject);

    > begin

    > TLabel(Sender).Font.Color := clYellow; //tag 1번에 대한 처리..

    >

    > ???????????//나머지 tag에 대한 처리..

    > end;

    > ????부분을 어떻게 처리해야 될지 모르겠습니다..

    > 즉, tag번호를 가지고 해당되는 Label을 찾아야하는데 그 방법을 모르겠네요..

    > 고수님들 부탁드립니다..어찌하면 좋습니까?

    >

    >

    >