FMX中一些delphi与C++ Builder语法的对比

以前用过BCB6,现在新学开发工具C++ Bulder XE8,发现FireMonkey比较有特色,不过网上CB资料太少,找到几个不错的delphi写的FMX界面的Demo,学习改成了CB的,

语法有些不同,整理如下部分代码,以作对比参考:

Delphi C++ Builder

TButton(Sender).Enabled := false;
SwitchTo3D;
if Assigned(FContainer) then
begin
TAnimator.AnimateFloat(FContainer, ‘Position.Z‘, 300, 0.2);
TAnimator.AnimateFloatDelay(FContainer, ‘Position.Z‘, 0, 0.2, 1);
TAnimator.AnimateFloatWait(FContainer, ‘RotationAngle.Y‘, 360, 1.5, TAnimationType.&In, TInterpolationType.Linear);
end;
SwitchTo2D;
TButton(Sender).Enabled := true;


((TButton *)Sender)->Enabled = false;
SwitchTo3D();
if(FContainer!=NULL)
{
TAnimator::AnimateFloat(FContainer, "Position.Z", 300, 0.2);
TAnimator::AnimateFloatDelay(FContainer, "Position.Z", 0, 0.2, 1);
TAnimator::AnimateFloatWait(FContainer, "RotationAngle.Y", 360, 1.5, TAnimationType::InOut , TInterpolationType::Linear);
}
SwitchTo2D();
((TButton *)Sender)->Enabled = true;

FViewport := TViewport3D.Create(Self);
FViewport.Parent := Self;
FViewport.Align := TAlignLayout.Client;
FViewport.Color := claNull;
FContainer := TLayer3D.Create(Self);
FContainer.Parent := FViewport;
FContainer.Projection := TProjection.Screen;
FContainer.Transparency := true;
FContainer.Align := TAlignLayout.Client;
LImg := TImage.Create(Self);
//LImg.Align := TAlignLayout.Client;
LImg.Position.X := rcmain.Position.X;
LImg.Position.Y := rcmain.Position.Y;
LImg.Width := rcmain.Width;
LImg.Height := rcmain.Height;
LImg.Bitmap.Assign(rcmain.MakeScreenshot);
LImg.Margins := rcmain.Margins;
LImg.Parent := FContainer;
rcmain.Visible := False;


FViewport = new TViewport3D(this);
FViewport->Align = TAlignLayout::Client;
FViewport->Color = TAlphaColorRec::Null;
FViewport->Parent = this;
FContainer = new TLayer3D(this);
FContainer->Parent = FViewport;
FContainer->Projection = TProjection::Screen;
FContainer->Transparency = true;
FContainer->Align = TAlignLayout::Client;
LImg = new TImage(this);
// LImg->Align = TAlignLayout::Client;
LImg->Position->X = rcmain->Position->X;
LImg->Position->Y = rcmain->Position->Y;
LImg->Width = rcmain->Width;
LImg->Height = rcmain->Height;
LImg->Bitmap->Assign(rcmain->MakeScreenshot());
LImg->Margins = rcmain->Margins;
LImg->Parent = FContainer;
rcmain->Visible = false;


FreeAndNil(LImg);
FreeAndNil(FContainer);
FreeAndNil(FViewport);


delete LImg;
delete FContainer;
delete FViewport;

时间: 2024-10-24 21:50:18

FMX中一些delphi与C++ Builder语法的对比的相关文章

Delphi 和 C++Builder 2014年及以后技术路线图

From http://www.itnose.net/detail/6006569.html Delphi 和 C++Builder 2014年及以后技术路线图 2014-03-08 18:47 RAD Studio, Delphi 和 C++Builder 2014年及以后技术路线图 By: Embarcadero News 内容源自Embarcadero新闻组,本人水平有限,欢迎各位高人修正相关错误! 也欢迎各位加入到Delphi学习资料汉化中来,有兴趣者可QQ:[email protect

在RedHat 和 Ubuntu 中配置 Delphi 的Linux开发环境(转)

原文地址:http://chapmanworld.com/2016/12/29/configure-delphi-and-redhat-or-ubuntu-for-linux-development/ 方便大家使用,直接转过来. Image courtesy of Jim McKeeth. One of the more exciting features of the pending 10.2 release of Delphi and RAD Studio, is support for t

Oracle中PL/SQL简介、基本语法以及数据类型

Oracle中PL/SQL简介.基本语法以及数据类型 一.PL/SQL简介. Oracle PL/SQL语言(Procedural Language/SQL)是结合了结构化查询和Oracle自身过程控制为一体的强大语言,PL/SQL不但支持更多的数据类型,拥有自身的变量申明,赋值语句,而且还有条件,循环等流程控制语句.过程控制结构与SQL数据处理能力无缝的结合形成了强大的编程语言,可以创建过程和函数以及程序包. PL/SQL是一种块结构的语言,它将一组语句放在一个块中,一次性的发送给服务器,由服

SQL中的in和not in语法对应的LINQ写法

List<testInfo> listAll = new List<testInfo>(); listAll.Add(new testInfo() { id = 1, name = "11", test = "111" }); listAll.Add(new testInfo() { id = 2, name = "22", test = "222" }); listAll.Add(new testIn

在.net中调用Delphi dll的Pchar转换

Pchar是非托管代码,要在.net中调用Delphi dll中的功能,请使用MarshalAs属性告知.net调用PInvoke去转换.net中标准的string类型.如果Delphi dll是Delphi2007以前的版本编译的,则Pchar是Ansi类型:如果Delphi dll是Delphi2009以后的版本编译的,则Pchar是Unicode类型.请看以下实例. Ansi类型: [DllImport("my.dll")] [return: MarshalAs(Unmanage

SecureCRT中 secureCRT使用VIM时对语法高亮

1.在SecureCRT中 secureCRT使用VIM时对语法高亮 其实不是secureCRT的功能,而是VIM的 设置:Options ->Session Options -> Terminal -> Emulation 中Terminal选择ANSI or linux or xterm,必须钩上 ANSI Colour 设置 选项->会话选项->终端->仿真->终端:Linux,选中ANSI Color 完成之后,就完成了高亮显示. 2.在用户目录建立.vi

在MyEclipse中如何去掉JS或jsp语法错误提示!

在MyEclipse中如何去掉JS或jsp语法错误提示! 关于在 MyEclipse 上 WEB 工程里面的 JS/JSP 经常会有语法错误提示,这是由于 MyEclipse 对其语法要求相当严格所造成的,而这些文件本身是可以运行并没有什么错误的,在你实际应用部署中并无影响 . 此问题解决办法有两种: 一.就是您不用去管它提示,直接部署到你的 WEB 容器上运行是可以的,但此方法欠妥当. 二.选择你的工程右击菜单-- > 点击 MyEclipse 菜单项的 Exclude From Valida

应用程序的关闭退出(在FMX中,Activity替代了Form的概念)

在VCL中,关闭程序的主窗体也就意味着程序的主循环结束,主程序自然而然结束.所以在主窗体中使用窗体的关闭函数(Close)即可,如下: procedure TfrmMain.btncloseClick(Sender: TObject); begin   Close; end; 在FMX中,由Activity替代了Form的概念,虽然TForm类仍然存在,但MainForm通过关闭函数无法结束程序,使用Application.Terminate均无效,调整为: uses   FMX.Platfor

What&#39;s New in Delphi and C++Builder XE7

http://docwiki.embarcadero.com/RADStudio/XE7/en/What%27s_New_in_Delphi_and_C%2B%2BBuilder_XE7 What's New in Delphi and C++Builder XE7