delphi中可以用is来判断某种类的类型,VC++ MFC中可以用IsKindof来判断,C++ Builder的语法是什么呢?

mailtocc 2005-07-05 01:07:05
RT
...全文
179 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Maconel 2005-07-05
  • 打赏
  • 举报
回复
翻译成bcb的应该大概就是这么个样子吧。
void TForm1::frReport1BeforePrint(TStringList* Memo, TfrView* TfrView)
{
TfrRichView* RichView = dynamic_cast<TfrRichView*>(View));
if (RichView != NULL)
{
RichView->RichEdit->ReadOnly = true;
...
}
}

至于bcb里还有没有和楼主代码更相象的,就不知道了。
mailtocc 2005-07-05
  • 打赏
  • 举报
回复
之所以碰到这种情况是因为用fastreport的时候
其中有一个函数是这么些的
procedure TForm1.frReport1BeforePrint(Memo: TStringList; View: TfrView);
begin
if (View is TfrRichView) then
begin
(View as TfrRichView).RichEdit.ReadOnly := true;
.....
end;
end;

这个(View as TfrRichView)可以用c++的(TfrRichView*)View这样的强制转化实现。
楼上提到的classname事实上delphi也都有这样的语法,BCB中当然是可以这样写的。
不过View is TfrRichView这个就想不到了,之所以求助是因为我想这个毕竟都是borland的一套东西,
也许会有什么特定的语法,并不用使用ClassName或者dynamic_cast这样的方法。
Maconel 2005-07-05
  • 打赏
  • 举报
回复
bcb提供了一个ClassName,可以得到一个类的类名。比如
TButton* btn = new TButton(this);
if (AnsiString(btn->ClassName()) == "TButton")
{
ShowMessage("这是一个TButton");
}
当然,这只有属于vcl的类才有这个方法。

c++本身也提供了相应的功能:
TButton* btn = new TButton(this);
if (dynamic_cast<TButton*>(btn) != NULL)
{
ShowMessage("这是一个TButton");
}
delete btn;
btn = NULL;

dynamic_cast类似强制转换,可以将一个指针转换为你需要的指针类型,如果不能转换,则返回NULL。vc里也可以用这种方法。
ThinkX 2005-07-05
  • 打赏
  • 举报
回复
template <class DT, class BT>
bool _is(BT const * b)
{ return dynamic_cast<DT const *>(b) != NULL; }
FengSC 2005-07-05
  • 打赏
  • 举报
回复
delphi和VC不怎么懂,CB中的__classid是否符合你的要求?
【解决大规模MIMO系统的数据检测问题】混合框架来改善VP格降(LR)辅助预编码的性能(Matlab代码实现)内容概要:本文介绍了一个旨在解决大规模MIMO系统数据检测问题的混合框架,重点在于改善向量扰动(VP)预编码格降(LR)辅助技术的性能。该方案通过Matlab代码实现,结合了格降技术与向量扰动预编码的优势,以提升下行链路多用户通信系统的传输效率与信号检测精度,有效降低计算复杂度并增强系统整体性能。文详细阐述了算法设计原理、实现流程及仿真验证结果,展示了该混合框架在大规模MIMO场景下的可行性与优越性。; 适合人群:具备通信工程、信号处理或电子信息专业背景,熟悉MIMO系统与预编码技术的研究生、科研人员及从事无线通信系统开发的工程师。; 使用场景及目标:①用于研究和优化大规模MIMO系统的预编码算法;②提升VP预编码在实际应用的性能,特别是在多用户干扰抑制和计算效率方面的表现;③为相关领域的学术研究和技术开发提供Matlab仿真支持与算法实现参考。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注格降辅助预编码与向量扰动技术的融合机制,并通过仿真实验验证不同参数设置下的系统性能变化,以便更好地应用于实际通信系统优化
【项目名称】:运用C++编程语言开发的视觉图像三维重构系统 【目标用户】:面向有意涉足跨技术领域学习的入门者及资深开发者。适合用作毕业设计课题、教学实践任务、大型作业、工业实训或初级科研项目启动。 【系统概述】: 本系统通过视觉图像数据实现三维物体的几何建模,其核心模块涵盖以下功能: - **基础架构**:集成工程所需的基础数据组织形式,涵盖影像资料、深度图谱、网格模型、视角参数等元素的存储与交互机制。 - **数学运算库**:包含矩阵操作、矢量计算、四元数变换等数学工具,支撑几何计算需求。 - **特征处理单元**:支持SIFT与SURF两特征识别算法的提取与匹配操作。 - **运动结构复原模块**:实现摄像机位姿推算、三维空间点三角定位及光束法平差等关键技术。 - **多视角立体模块**:通过立体匹配算法生成高密度点云数据。 - **表面重建组件**:将离散点云转化为连续网格曲面。 - **纹理映射单元**:生成贴合模型表面的纹理贴图。 - **应用案例库**:提供典型应用场景的代码示范。 - **缓存目录**:用于暂存运算过程产生的临时文件。 系统以模块化架构确保各功能单元独立可拓展,适用于计算机视觉与图形学领域的算法研究及工程实践。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!

13,873

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧