在Delphi中,我写了以下代码来识别一个Graphic是一个TBitmap:
if aImage.Picture.Graphic is TBitmap then
...
Run Code Online (Sandbox Code Playgroud)
在 C++ Builder 中,我编写了以下代码:
if (dynamic_cast<Image1->Picture->Graphic>(TBitmap) != 0)
....
Run Code Online (Sandbox Code Playgroud)
但它不起作用。C++ Builder 如何在 Delphi 中做同样的检查?
你的代码应该是
if (dynamic_cast<TBitmap*>(Image1->Picture->Graphic) != 0)
....
Run Code Online (Sandbox Code Playgroud)
或者
if (dynamic_cast<TBitmap*>(Image1->Picture->Graphic) != nullptr)
....
Run Code Online (Sandbox Code Playgroud)
或者
if (dynamic_cast<TBitmap*>(Image1->Picture->Graphic))
....
Run Code Online (Sandbox Code Playgroud)
或者
TBitmap* bitmap = dynamic_cast<TBitmap*>(Image1->Picture->Graphic);
if (bitmap)
{
....
// do stuff with bitmap
}
Run Code Online (Sandbox Code Playgroud)
这些都是等价的,你可以选择你喜欢的。
该dynamic_cast运营商在这里记载:http://docwiki.embarcadero.com/RADStudio/en/Dynamic_cast_(C%2B%2B_Type_Cast_Operator)
| 归档时间: |
|
| 查看次数: |
199 次 |
| 最近记录: |