c++ builder XE4, 10.2 Tokyo > コンポーネントのタイプ?(TLabelなど)を取得する > srcPtr->ClassName() / bool isTLabel = (dynamic_cast<TLabel *>(lblPtr) != NULL);
動作確認
C++ Builder XE4
Rad Studio 10.2 Tokyo Update 2 (追記: 2017/12/27)
try1
コンポーネントがTCheckBoxかどうかの確認にはClassName()を使う。
static bool isTCheckBox(TControl *srcPtr)
{
if (srcPtr->ClassName() == L"TCheckBox") {
return true;
}
return false;
}
ヘルプのVcl.Controls.TControl のメソッド
を参考にした。
try2
SOにて教えていただいた方法。
以下を使う。
if (dynamic_cast<TLabel*>(ParentControl->Controls[i]) != NULL)
実装してみた。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TControl *lblPtr = (TControl *)Label1;
bool isTLabel = (dynamic_cast<TLabel *>(lblPtr) != NULL);
bool isTComboBox = (dynamic_cast<TComboBox *>(lblPtr) != NULL);
Memo1->Lines->Add(BoolToStr(isTLabel));
Memo1->Lines->Add(BoolToStr(isTComboBox));
}
結果
-1
0
Author And Source
この問題について(c++ builder XE4, 10.2 Tokyo > コンポーネントのタイプ?(TLabelなど)を取得する > srcPtr->ClassName() / bool isTLabel = (dynamic_cast<TLabel *>(lblPtr) != NULL);), 我々は、より多くの情報をここで見つけました https://qiita.com/7of9/items/e601b8fb10a2a40423e3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .