|
RadioGroup은 ItemIndex라는 프로퍼티를 가지고 있습니다. 이 프로퍼티는 현재 선택한 아이템의 일련 번호를 가르킵니다. 이 일련번호의 순서는 Items 프로퍼티에서 설정한 순서와 동일하며, 0부터 시작됩니다.
예를 들어, Items 프로퍼티를 더블클릭하셔서, "시작", "중지" 라는 항목을 차근차근 넣으셨다면, "시작" 이라는 아이템은 0 번, "중지" 라는 아이템은 1 번 아이템이 됩니다.
RadioGroup은 OnChange 이벤트를 가지고 있지 않으므로, OnClick에서 처리를 해주면 됩니다. 아래의 소스는 OnClick 이벤트에서 ItemIndex 숫자에 따라 처리하는 소스입니다.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioGroup1Click(TObject *Sender)
{
switch(RadioGroup1->ItemIndex) {
case 0 : {
ShowMessage("시작 되었습니다!");
break;
}
case 1 : {
ShowMessage("중지 되었습니다!");
break;
}
}
}
//---------------------------------------------------------------------------
두번째로 체크 박스의 경우에는, Checked 라는 프로퍼티를 제공합니다. (이 Checked는 RadioButton에서도 존재합니다. RadioButton은, RadioGroup과 기능은 동일하지만, 배치를 자유자재로 할 수 있다는데 장점이 있습니다)
이 Checked 프로퍼티가 True면, 체크가 되었다는것을 의미합니다.
아래 소스는 Button1 을 클릭했을때, CheckBox1 부터 CheckBox3 까지 체크된 항목을 나타내주는 간단한 소스입니다.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(CheckBox1->Checked) ShowMessage("1번 항목 체크되었음");
if(CheckBox2->Checked) ShowMessage("2번 항목 체크되었음");
if(CheckBox3->Checked) ShowMessage("3번 항목 체크되었음");
}
//---------------------------------------------------------------------------
그리고 마지막으로, RadioGroup 과, CheckBox 가 틀린점은, RadioGroup는 동시에 선택 사항이 선택이 될 수 없다는 반면에, CheckBox는 동시에 몇개라도 선택이 가능하다는 차이가 있습니다. 따라서, 사용하실 목적에 맞는 컴포넌트를 찾으시는게 중요합니다. 예를들어, 님께서 말씀하신, 10초, 20초, 30초 중에 선택하여 그 시간에 따른 타이머 설정의 경우에는, 각 아이템들이 동시에 설정되면 안되므로, CheckBox 보다는 RadioGroup로 디자인 하시는 것이 좋다고 생각합니다.
너무쉬운가??? 님이 쓰신 글 :
:
: 라디오 그룹안에 두가지를 선택할 수 있게
: 만들었습니다. 하나는 '시작'이고 다른 하나는 '중지'
: 거든요. 그런데 라디오 그룹의 사용법을 모르겠어요.
: 그러니까 디폴트는 '중지'로 놓고 '시작'을 선택하면
: 다른 리스트에 내용을 표시하게 하고 싶습니다.
:
: 콤보박스도 비슷한 것 같은데
: 마찬가지로 어디에다가 어떻게 코딩해야
: 할지 감이 안 옵니다.
: 콤보박스에도 3가지를 선택할 수 있게 했거든요.
: 모두 같은 종류인데 타이머의 시간을 조정하게
: 하려고 합니다. 콤보 박스의 아이템이 각각 10초
: 20초 , 30초라 하면 이들 중 하나를 선택하면
: 그 시간에 맞추어 타이머를 셋팅하려고 합니다.
:
: 쉬운 질문인지는 몰라도 어떻게 사용해야 하는지
: 전혀 감이 오지 않는 콤포넌트라 이렇게
: 글을 올립니다. 그럼 조언 부탁드립니다.
:
|