c++ builder XE4, 10.2 Tokyo > TPanel에서 TCheckBox 이름 가져오기

4217 단어 TPanelcppBuilder
운영 환경
C++ Builder XE4
RAD Studio 10.2 Tokyo Update 2 (追記: 2017/12/27)

관련 h tp : 작은 m / 7 오 f9 / MS / B16fdc19 아 C4 BDB5260

TCheckBox의 Checked 속성을 행렬로 얻는 경우 관련이없는 TCheckBox를 무시하고 싶습니다.

TPanel상의 TCheckBox인지 여부는 해당하는 TCheckBox의 부모 컴퍼넌트를 조사하면 좋을 것 같다.

Unit1.cpp
//---------------------------------------------------------------------------

#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)
{
    for(int idx=0; idx < this->ComponentCount; idx++) {
        TComponent *srcPtr = this->Components[idx];
        TComponent *prntPtr = srcPtr->GetParentComponent();
        if (dynamic_cast<TPanel *>(prntPtr) == NULL) {
            continue;
        }

        OutputDebugString(srcPtr->Name.c_str());
    }
}
//---------------------------------------------------------------------------



결과
デバッグ出力: CheckBox1OnPanel プロセス Project1.exe (3084)
デバッグ出力: CheckBox3OnPanel プロセス Project1.exe (3084)

위에서는 부모 컴포넌트가 TPanel 형인 경우로 하고 있지만, 한층 더 조건을 짜내어 부모 컴퍼넌트의 Name 프로퍼티로 짜내는 것으로, 특정 Panel 상의 체크 박스의 상태를 취득할 수 있다.

좋은 웹페이지 즐겨찾기