C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[18393] Re:라디오 그룹과 콤보 박스은 어떻게 사용하나요??????
유영인 [Chris] [cuperido] 1452 읽음    2002-05-13 09:51
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초라 하면 이들 중 하나를 선택하면
:  그 시간에 맞추어 타이머를 셋팅하려고 합니다.

:  쉬운 질문인지는 몰라도 어떻게 사용해야 하는지
:  전혀 감이 오지 않는 콤포넌트라 이렇게
:  글을 올립니다. 그럼 조언 부탁드립니다.
:

+ -

관련 글 리스트
18383 라디오 그룹과 콤보 박스은 어떻게 사용하나요?????? 너무쉬운가??? 892 2002/05/11
18393     Re:라디오 그룹과 콤보 박스은 어떻게 사용하나요?????? 유영인 [Chris] 1452 2002/05/13
18404         Re:Re:라디오 그룹과 콤보 박스은 어떻게 사용하나요?????? 너무쉬운가??? 850 2002/05/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.