Q&A

  • RADIOBUTTON사용법
RADIOGROUP을 사용할 수 없는 특별한 경우가 생겨서요..
GROUPBOX안에 RADIOBUTTON을 열세개 만들었습니다.  --;

사용자가 선택한  RADIOBUTTON의 변호를 변수에 담아야 하는데...
RADIOBUTTON의 클릭이벤트에서 설정해주려하니...

procedure RadioButton1Click(Sender: TObject);
begin
    if RadioButton1.Checked := True then
        변수:= 1;
end;

--> 위의 문장을 총 열세번 적어주어야 하는군요... 어떻게 다른 방법이 없을까요...?

간단하게 끝낼 수 있는 방법이... 있다면 알려주세요~~~
그럼 감사...
4  COMMENTS
  • Profile
    주정호 2004.01.13 00:33
    원하시는 답이 이거 같은데요.. 흠...

    이렇게 해보세요.
      넘겨줄 변수의 값이 정수라면 각 라디오 버튼의 Tag값을 원하는 값으로
      Object Inspector에서 값을 설정합니다.
      만약 문자열을 넘기고 싶으면 Hint를 참조하면 됩니다.
    그외의 자료들은 문자열을 이용해서 형변화하면 되겠고요..

      이렇게 한 후 최초의 아무 라디오 버튼의 클릭이벤트에서 다음과 같이
      작성하고 다음 라디오 버튼들은 Object Inspector에서 Onclick Event를
      보시면 RadioButton1Click 으로 잡으시면 됩니다. 백개의 라디오 버튼이
      있어도 한번만 코딩하면 됩니다.
      만약 최초로 작성한 라디오 버튼을 복사해서(Ctrl+C) 계속 붙여 나가면
      그 이후에 복사되는 모든 라디오 버튼의 OnClick 이벤트는 자동으로
      RadioButton1Click으로 잡힙니다.
      이상 즐델
      그리고 If 문에는 := 이거 안되시는거 알죠?

    procedure RadioButton1Click(Sender: TObject);
    begin
       //  if RadioButton1.Checked := True then 잘못된 표현임.
       //   if RadioButton1.Checked = True then 이것도 맞는 표현이나...
        // if RadioButton1.Checked then 이렇게만 해도 됩니다.

        if  TRadioButton(Sender).Checked then
            변수(정수형):= TRadioButton(Sender).tag;

        //변수(문자열):=TRadioButton(Sender).Hint;
        //변수(날짜):= StrtoDate(TRadioButton(Sender).Hint);
    end;


  • Profile
    김형수 2004.01.10 02:16
    radiogroup 안에 버튼을 만들때,
    property 에서 items 에서 만들면,
    각각의 itemindex 가 있어요
    0 A
    0 B
    이런식이면,
    case radiogroup.itemindex of
    0 : begin   => A
          ....
          end;;  
    1 : begin     => B
         .....
         end;;
    end;

    이렇게 사용하시면 될껍니다.



  • Profile
    김지영 2004.01.10 02:24
    ㅜㅡ RADIOGROUP 사용 못한다고 말씀드렸는데요...
    RADIOGROUP 안에 있는 각 항목들을 경우에 따라 사용자들이 클릭할 수 없게 비활성화시켜야 할 필요가 있어서요...
    RADIOGROUP에서는 방법이 없는 것 같아서 그냥 그룹박스에 RADIOBUTTON을 만든거거든요...
    한번 더 봐주세요... ㅜㅡ

  • Profile
    권오현 2004.01.10 03:14

    RadioGroup1.Controls[0].Enabled := false;
    이러면 비활성화 되요...