请问C++BUILDER2007跟C++BUILDER6.0有什么区别或新特性?

时间:2021-11-15 04:01:10
用C++BUILDER6.0已多年,看大家都在用C++BUILDER2007,
一时地摊上又买不到它,问问2007版的新特点及区别?

6 个解决方案

#1


本人搜集的一些帖子供你参考
http://blog.csdn.net/ydlchina/archive/2008/02/13/2089270.aspx

#2


主要是IDE、数据库引擎、Vista支持等方面的变化。
下一个版本据说支持unicode

#3


顶一下:)

#4


BCB6.0里的TChart是在Additional页次里,版本4.0。功能较少。 
在BCB2007中,TChart为单独一个页次,其中包括多个控件,版本7.0,功能齐全。
theLibra12
ToolBar   CoolBar都多了一个Gradient属性,可以设置渐变色。 
TForm也多了一个GlassFrame属性,在Vista下可以显示成玻璃效果。
zdhsoft
BCB2007的dbx支持mysql5.0,以及其它最新的主流数据库版本,BCB6则只能支持mysql   3.x
ADO也有变化了,支持MDAC2.8
i_love_pc
1.C++Builder   2007终于为C/C++开发人员带来了内建的C/C++   测试驱动开发(TDD)的功能。 
2.C++Builder   2007提供了VCL   For   Web   For   C/C++,这意谓C/C++的开发人员也终于拥有了最棒的Web   2.0/Ajax架框。 
3.C++Builder   2007中CodeGear开始为C/C++加入Together的功能。 
4.C++Builder   2007还有许多的改善,编译器和连结器都更新了,速度更快也更标准。 
5.C++Builder   2007加入了FastMM和FastRTL以及最新的VCL架框。

6 发现Compile   Unit变成了Build   Unit,而且多了一个Clean   Project

7 新的组件: 
TTaskDialog-封装新的   TaskDialogIndirect   API 
TFileOpenDialog-封装新的   IFileOpenDialog   interface 
TFileSaveDialog-封装新的   IFileSaveDialog   interface 
新的特性: 
TCustomForm.GlassFrame 
允许在窗体的客户区加入扩充的 "glass "   window   frame.     
为了在glass中加入控件,   窗体和控件的DoubleBuffered   特性必须设定为   True.   
新的功能: 
TaskMessageDlg 
功能和MessageDlg类似,   只多了一个参数,     “main   instruction”.   如果这个函式在非Vista   OS上被呼叫,   就会转而呼叫MessageDlg   
新的全域变数: 
UseLatestCommonDialogs 
如果设定为True就会导致

   TOpenDialog,   TSaveDialog,   TOpenPictureDialog*,   TSavePictureDialog*   和   MessageDlg的呼叫转而如果设定为Vista上对应的API   (如果应用程序是执行在Vista).   
如果设定为False,   就和以前这些组件的行为一致. 
Windows   API: 
UxThemes   –   新API 
DwnApi   –新API   
ActiveX   –   更新到Vista 
Windows   –更新到Vista 
Messages   –更新到Vista 
CommCtrl   –更新到Vista 
ShlObj   -更新到Vista

zzhong2

Borland   C++   Builder   2006里的TDBGrid   可以响应鼠标滚轮事件,并一直滚到最后一条记录 
Borland   C++   Builder   6   里的TDBGrid   也可以响应鼠标滚轮事件,但只能滚到TDBGrid当前显示的最后一条记录,超出显示范围的记录不能滚到,也就是不能把超出显示范围的记录滚出来.

songhtao

有个VistaDialog

liskman

注意在C++Builder2006中多了SafeArrayCopy().所以在使用Data属性时有些变化了。

托盘图标控件变化比较大,TrayIcon 
Indy由于版本不一样,变化也非常大。呵呵

C++Builder6程序向导在Multitier页有CORBA程序向导,生成CORBA程序很方便(尽管是BOA,不是POA)。 
C++Builder2006没有CORBA程序向导,没有CORBA知识的话,写服务实现类有点麻烦了。 
C++Builder6的WebService可以为Apache写dll(Apache   Shared   Module)(尽管只支持Apache1.3); 
C++Builder2006不行,只能写ISAPI/NSAPI和CGI。

Waiting4you

多国语言到哪里加偶都没找着:-( 
TLabel是加了一个属性:   EllipsisPosition,   用于字串太长放不下时的显示方式,   可取值: 
    epNone,         不加省略号 
    epPathEllipsis,       如果字符串里含有反斜扛,尽可能地保留最后一个反斜杠之后的正文 
    epEndEllipsis,         加在后面 
    epWordEllipsis         截短不符合矩形的正文,省略号加在后面,和前面的区别目前还没看出来:-P 
TImage   确实支持gif了,开始偶搞了半天发现加载gif动画它不动,以为它就这样了呢,后来在gifimg.hpp里发现个TGIFImage类(帮助系统里没找到?!),   图片载入之后调用如下就可以让它动了: 
TGIFImage   *gif=(TGIFImage   *)(Image1-> Picture-> Graphic); 
gif-> AnimationSpeed=1000;     //这个数字好像越大速度越快,具体情况还不清楚 
gif-> Animate=true; 
ICO的偶还没试,不过2006就已经可以了,估计应该没问题

To   liskman

        应该是多了个SafeArrayCheck,可能是个OLE   Check宏.   感谢,写得很详细.   
        TTrayIcon的确变了很多,少了很多属性,可以用TrayIcon1-> ShowBalloonHint();来让它气泡显示. 
        好像是没找到生成Apache的DLL的方法,不知道是不是没发现?

constantine

TTrayIcon其实在2006就改了,以前bcb6有这个控件,是用c++写的 
即使d7里面都没有这个控件,要自己写。到了2006就直接用pascal重写了这个控件。 
gif那个是跟“以后再说”封装的类是,必须要这样调用才行,不知道还有谁记得他。 
插到richedit里面那么动不动也跟richedit没有关系,记得好像是这样。 
ICO好像最多还是只支持256色,而且只支持单图标。 
多国语言在project--languages里面,而且还有一个翻译管理的菜单。 
不过我怎么用都觉得不是很爽。就是以前的会产生一些垃圾,现在的不清除。项目不敢移植过去。

exe编译现在直接设置DEBUG/RELEASE   这个倒是方便多了。

Application-> MainFormOnTaskBar   =   true 修改这个看看,然后用鼠标右键点击任务栏的按钮,看看弹出菜单, 代码在工程文件里面。

问:Application-> MainFormOnTaskBar起什么作用的?

答:你没用鼠标右键点一下看看弹出菜单吗,一个显示的是application,一个显示的是Mainform。以前版本显示的是application,所以菜单跟标准的不一样,所以用bcb,delphi做的软件一下就给人呢知道,比如foxmail。现在添加了这个后可以把mainform显示在任务栏,他的弹出菜单就跟标准的一样了。vc是没有application这个窗体的。

Javpp

照样不支持Unicode,   支持Loki了吧. 集成了Together,   不过不能通过together生成类框架 编译速度和编译后文件的执行速度有了很大提高

在工程的CPP里多了一行 
SetApplicationMainFormOnTaskBar(Application,   true); 
这样的话,   在任务栏里显示的标题就是主窗口的标题了,   但是调出来的showMessage等系统对话框的标题仍然是Application的标题。。。 
如果将参数true改为false,   或将这句去掉,   就和原来一样了。   任务栏显示的就是Application   的标题了

try 

Application-> Initialize(); 
//SetApplicationMainFormOnTaskBar(Application,   true); 
Application-> CreateForm(__classid(TForm2),   &Form2); 
Application-> Run(); 

通过控制参数,   可以控制任务栏里显示的标题,   但系统对话框的标题仍然是Application的标题,   即使通过   Application-> MainFormOnTaskBar   =   true;

Code   Insight   比CB6速度快多了,   Delay的速度可以设置None.

菜单[Application]/[Option]里C++   Compiler选项里Output里,Build   Configuration可以设置Base,   Debug,   Release三种选项,   可以选择Release发布模式,   不用象CB6里需要设置好几个地方了。
Waiting4you
to   Javpp: 
        Loki在BCB6的时候就已经支持了,Loki里有一个专门为Borland   C++做的文件夹,Unicode看来是要看2008版的了:) 
很多控件都支持了渐变色,不过TCanvas好像还是没有封装GradientFill的API,   好在找到一个叫GradientFillCanvas的新函数,原型如下: 
GradientFillCanvas(TCanvas   ACanvasconst,   TColor   AStartColorconst,   TColor   AEndColorconst,   TRect   ARectconst,   TGradientDirection   Directionconst); 
用它比用API方便得多了.

aniven

TForm 
GlassFrame   :   玻璃效果,可设定上下左右的透明效果的宽度,也可以指定SheetOfGlass使整个窗体有玻璃效果 
Padding   :   设定窗体的边界宽度,有点像BorderWidth,但不同的是Padding设定的边界内是可以放置控件的,只是影响了其他控件的对齐边界。 
ScreenSnap   :   磁性窗体 
SnapBuffer   :   磁性吸附的像素范围 
另外还有一个属性需要说明:   PixelsPerInch以前在BCB6里改动无效果,在2007里可以实现控件的缩放了。 
TButton 
Align   :   对其方式,终于可以和其他控件一样设置对齐方式了 
AlignWithMargins   :   参考Margins 
Margins   :   对齐时的边界宽度,比如设置Margins.Top为50,当Align=alClient或alTop时将在上方有50像素的间隔,当然前提是必须设定AlignWithMargins为True。 
WordWarp   :   使按钮中的文本可以换行显示 
TToolBar 
Margins,AlignWithMargins   :   同上 
AllowTextButtons   :   允许Style=tbsTextButton的ToolButton,看不出有什么分别 
(TToolButton增加了tbsTextButton的Style) 
DrawingStyle,GradientDirection,GradientDrawingOptions,GradientStartColor,GradientEndColor 
很诱人哦,可以制作和BDS一样的界面,顾名思义是渐变色的设置,首先必须设置DrawingStyle为dsGradient,GradientDirection是渐变方向(横或纵),然后就是颜色了 
TPanel 
Locked   :   这是BCB6中就有的,不属于新属性 
ParentBackground   :   和父控件相同的背景,相当于透明Transparent,因为XP中有些控件包含渐变色,比如PageControl等... 
Padding,Margins,AlignWithMargins   :   同上 
VerticalAlignment   :   设置Caption的对齐,以前只有Alignment,只能设置水平方式的左中右,现在这个属性可以设置垂直方向的上中下 
TCheckBox,TRadioButton   等TWinControl都增加了WordWrap属性,可多行显示Caption,这个好. 
另外,所有的容器控件都设为了透明,以显示XP或Vista的渐变色窗体或控件,所以产生了ParentBackground属性,和TLabel的Transparent属性有类似含义。 
增加了几个ColorMap控件,这下可以方便的访问Windows的颜色设置了,好。 
增加了TFlowPanel和TGridPanel 
增加了TCategoryButtons和TButtonsGroup   :可产生如BDS的Tool   Palette的按钮组效果 
其他的还有如VistaDialog等了。 
事件方面,TWinControl都增加了 
OnMouseActivate   :   类似于OnMouseDown,只不过参数不同 
OnMouseEnter,OnMouseLeave分别代表鼠标移入和移出,这个好,以前为了得到鼠标移出事件,只能在外围的控件上处理移入事件来代替...

事件部分: 
TWinControl均增加了如下事件 
OnMouseActivate   鼠标动作(任何动作) 
OnMouseEnter         鼠标移入 
OnMouseLeave         鼠标移出 
OnMouseWheel         鼠标滚动 
OnMouseWheelDown   鼠标滚轮按下 
OnMouseWheelUp       鼠标滚轮弹起 
增加了TWebBrowser控件,目前不知与TCppWebBrowser有何本质区别,只是TWebBrowser多了原本应该有的Anchors属性,TCppWebBrowser应该是为保持兼容而留的.

先前我说的玻璃效果下显示的Menu或Button字体显示问题,有问题的显示效果: 
http://p.blog.csdn.net/images/p_blog_csdn_net/aniven/207912/o_glass.jpg 
看菜单部分,如果放置一个Button也是一样的问题。 
其实帮助里已经给出了答案: 
设置相关控件的DoubleBuffered为true即可。
zplinze
Project-> Options-> 选中Application,勾上Enable   runtime   themes 
就支持windowsxp的themes了,不再需要TXPManifest

sfengnet原BCB6里没有代码折叠功能

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2089270

 ydlchina发表于 2008年02月13日 07:35:00 



#5


看样子不得不找地摊大妈升级了!

#6


顶顶

#1


本人搜集的一些帖子供你参考
http://blog.csdn.net/ydlchina/archive/2008/02/13/2089270.aspx

#2


主要是IDE、数据库引擎、Vista支持等方面的变化。
下一个版本据说支持unicode

#3


顶一下:)

#4


BCB6.0里的TChart是在Additional页次里,版本4.0。功能较少。 
在BCB2007中,TChart为单独一个页次,其中包括多个控件,版本7.0,功能齐全。
theLibra12
ToolBar   CoolBar都多了一个Gradient属性,可以设置渐变色。 
TForm也多了一个GlassFrame属性,在Vista下可以显示成玻璃效果。
zdhsoft
BCB2007的dbx支持mysql5.0,以及其它最新的主流数据库版本,BCB6则只能支持mysql   3.x
ADO也有变化了,支持MDAC2.8
i_love_pc
1.C++Builder   2007终于为C/C++开发人员带来了内建的C/C++   测试驱动开发(TDD)的功能。 
2.C++Builder   2007提供了VCL   For   Web   For   C/C++,这意谓C/C++的开发人员也终于拥有了最棒的Web   2.0/Ajax架框。 
3.C++Builder   2007中CodeGear开始为C/C++加入Together的功能。 
4.C++Builder   2007还有许多的改善,编译器和连结器都更新了,速度更快也更标准。 
5.C++Builder   2007加入了FastMM和FastRTL以及最新的VCL架框。

6 发现Compile   Unit变成了Build   Unit,而且多了一个Clean   Project

7 新的组件: 
TTaskDialog-封装新的   TaskDialogIndirect   API 
TFileOpenDialog-封装新的   IFileOpenDialog   interface 
TFileSaveDialog-封装新的   IFileSaveDialog   interface 
新的特性: 
TCustomForm.GlassFrame 
允许在窗体的客户区加入扩充的 "glass "   window   frame.     
为了在glass中加入控件,   窗体和控件的DoubleBuffered   特性必须设定为   True.   
新的功能: 
TaskMessageDlg 
功能和MessageDlg类似,   只多了一个参数,     “main   instruction”.   如果这个函式在非Vista   OS上被呼叫,   就会转而呼叫MessageDlg   
新的全域变数: 
UseLatestCommonDialogs 
如果设定为True就会导致

   TOpenDialog,   TSaveDialog,   TOpenPictureDialog*,   TSavePictureDialog*   和   MessageDlg的呼叫转而如果设定为Vista上对应的API   (如果应用程序是执行在Vista).   
如果设定为False,   就和以前这些组件的行为一致. 
Windows   API: 
UxThemes   –   新API 
DwnApi   –新API   
ActiveX   –   更新到Vista 
Windows   –更新到Vista 
Messages   –更新到Vista 
CommCtrl   –更新到Vista 
ShlObj   -更新到Vista

zzhong2

Borland   C++   Builder   2006里的TDBGrid   可以响应鼠标滚轮事件,并一直滚到最后一条记录 
Borland   C++   Builder   6   里的TDBGrid   也可以响应鼠标滚轮事件,但只能滚到TDBGrid当前显示的最后一条记录,超出显示范围的记录不能滚到,也就是不能把超出显示范围的记录滚出来.

songhtao

有个VistaDialog

liskman

注意在C++Builder2006中多了SafeArrayCopy().所以在使用Data属性时有些变化了。

托盘图标控件变化比较大,TrayIcon 
Indy由于版本不一样,变化也非常大。呵呵

C++Builder6程序向导在Multitier页有CORBA程序向导,生成CORBA程序很方便(尽管是BOA,不是POA)。 
C++Builder2006没有CORBA程序向导,没有CORBA知识的话,写服务实现类有点麻烦了。 
C++Builder6的WebService可以为Apache写dll(Apache   Shared   Module)(尽管只支持Apache1.3); 
C++Builder2006不行,只能写ISAPI/NSAPI和CGI。

Waiting4you

多国语言到哪里加偶都没找着:-( 
TLabel是加了一个属性:   EllipsisPosition,   用于字串太长放不下时的显示方式,   可取值: 
    epNone,         不加省略号 
    epPathEllipsis,       如果字符串里含有反斜扛,尽可能地保留最后一个反斜杠之后的正文 
    epEndEllipsis,         加在后面 
    epWordEllipsis         截短不符合矩形的正文,省略号加在后面,和前面的区别目前还没看出来:-P 
TImage   确实支持gif了,开始偶搞了半天发现加载gif动画它不动,以为它就这样了呢,后来在gifimg.hpp里发现个TGIFImage类(帮助系统里没找到?!),   图片载入之后调用如下就可以让它动了: 
TGIFImage   *gif=(TGIFImage   *)(Image1-> Picture-> Graphic); 
gif-> AnimationSpeed=1000;     //这个数字好像越大速度越快,具体情况还不清楚 
gif-> Animate=true; 
ICO的偶还没试,不过2006就已经可以了,估计应该没问题

To   liskman

        应该是多了个SafeArrayCheck,可能是个OLE   Check宏.   感谢,写得很详细.   
        TTrayIcon的确变了很多,少了很多属性,可以用TrayIcon1-> ShowBalloonHint();来让它气泡显示. 
        好像是没找到生成Apache的DLL的方法,不知道是不是没发现?

constantine

TTrayIcon其实在2006就改了,以前bcb6有这个控件,是用c++写的 
即使d7里面都没有这个控件,要自己写。到了2006就直接用pascal重写了这个控件。 
gif那个是跟“以后再说”封装的类是,必须要这样调用才行,不知道还有谁记得他。 
插到richedit里面那么动不动也跟richedit没有关系,记得好像是这样。 
ICO好像最多还是只支持256色,而且只支持单图标。 
多国语言在project--languages里面,而且还有一个翻译管理的菜单。 
不过我怎么用都觉得不是很爽。就是以前的会产生一些垃圾,现在的不清除。项目不敢移植过去。

exe编译现在直接设置DEBUG/RELEASE   这个倒是方便多了。

Application-> MainFormOnTaskBar   =   true 修改这个看看,然后用鼠标右键点击任务栏的按钮,看看弹出菜单, 代码在工程文件里面。

问:Application-> MainFormOnTaskBar起什么作用的?

答:你没用鼠标右键点一下看看弹出菜单吗,一个显示的是application,一个显示的是Mainform。以前版本显示的是application,所以菜单跟标准的不一样,所以用bcb,delphi做的软件一下就给人呢知道,比如foxmail。现在添加了这个后可以把mainform显示在任务栏,他的弹出菜单就跟标准的一样了。vc是没有application这个窗体的。

Javpp

照样不支持Unicode,   支持Loki了吧. 集成了Together,   不过不能通过together生成类框架 编译速度和编译后文件的执行速度有了很大提高

在工程的CPP里多了一行 
SetApplicationMainFormOnTaskBar(Application,   true); 
这样的话,   在任务栏里显示的标题就是主窗口的标题了,   但是调出来的showMessage等系统对话框的标题仍然是Application的标题。。。 
如果将参数true改为false,   或将这句去掉,   就和原来一样了。   任务栏显示的就是Application   的标题了

try 

Application-> Initialize(); 
//SetApplicationMainFormOnTaskBar(Application,   true); 
Application-> CreateForm(__classid(TForm2),   &Form2); 
Application-> Run(); 

通过控制参数,   可以控制任务栏里显示的标题,   但系统对话框的标题仍然是Application的标题,   即使通过   Application-> MainFormOnTaskBar   =   true;

Code   Insight   比CB6速度快多了,   Delay的速度可以设置None.

菜单[Application]/[Option]里C++   Compiler选项里Output里,Build   Configuration可以设置Base,   Debug,   Release三种选项,   可以选择Release发布模式,   不用象CB6里需要设置好几个地方了。
Waiting4you
to   Javpp: 
        Loki在BCB6的时候就已经支持了,Loki里有一个专门为Borland   C++做的文件夹,Unicode看来是要看2008版的了:) 
很多控件都支持了渐变色,不过TCanvas好像还是没有封装GradientFill的API,   好在找到一个叫GradientFillCanvas的新函数,原型如下: 
GradientFillCanvas(TCanvas   ACanvasconst,   TColor   AStartColorconst,   TColor   AEndColorconst,   TRect   ARectconst,   TGradientDirection   Directionconst); 
用它比用API方便得多了.

aniven

TForm 
GlassFrame   :   玻璃效果,可设定上下左右的透明效果的宽度,也可以指定SheetOfGlass使整个窗体有玻璃效果 
Padding   :   设定窗体的边界宽度,有点像BorderWidth,但不同的是Padding设定的边界内是可以放置控件的,只是影响了其他控件的对齐边界。 
ScreenSnap   :   磁性窗体 
SnapBuffer   :   磁性吸附的像素范围 
另外还有一个属性需要说明:   PixelsPerInch以前在BCB6里改动无效果,在2007里可以实现控件的缩放了。 
TButton 
Align   :   对其方式,终于可以和其他控件一样设置对齐方式了 
AlignWithMargins   :   参考Margins 
Margins   :   对齐时的边界宽度,比如设置Margins.Top为50,当Align=alClient或alTop时将在上方有50像素的间隔,当然前提是必须设定AlignWithMargins为True。 
WordWarp   :   使按钮中的文本可以换行显示 
TToolBar 
Margins,AlignWithMargins   :   同上 
AllowTextButtons   :   允许Style=tbsTextButton的ToolButton,看不出有什么分别 
(TToolButton增加了tbsTextButton的Style) 
DrawingStyle,GradientDirection,GradientDrawingOptions,GradientStartColor,GradientEndColor 
很诱人哦,可以制作和BDS一样的界面,顾名思义是渐变色的设置,首先必须设置DrawingStyle为dsGradient,GradientDirection是渐变方向(横或纵),然后就是颜色了 
TPanel 
Locked   :   这是BCB6中就有的,不属于新属性 
ParentBackground   :   和父控件相同的背景,相当于透明Transparent,因为XP中有些控件包含渐变色,比如PageControl等... 
Padding,Margins,AlignWithMargins   :   同上 
VerticalAlignment   :   设置Caption的对齐,以前只有Alignment,只能设置水平方式的左中右,现在这个属性可以设置垂直方向的上中下 
TCheckBox,TRadioButton   等TWinControl都增加了WordWrap属性,可多行显示Caption,这个好. 
另外,所有的容器控件都设为了透明,以显示XP或Vista的渐变色窗体或控件,所以产生了ParentBackground属性,和TLabel的Transparent属性有类似含义。 
增加了几个ColorMap控件,这下可以方便的访问Windows的颜色设置了,好。 
增加了TFlowPanel和TGridPanel 
增加了TCategoryButtons和TButtonsGroup   :可产生如BDS的Tool   Palette的按钮组效果 
其他的还有如VistaDialog等了。 
事件方面,TWinControl都增加了 
OnMouseActivate   :   类似于OnMouseDown,只不过参数不同 
OnMouseEnter,OnMouseLeave分别代表鼠标移入和移出,这个好,以前为了得到鼠标移出事件,只能在外围的控件上处理移入事件来代替...

事件部分: 
TWinControl均增加了如下事件 
OnMouseActivate   鼠标动作(任何动作) 
OnMouseEnter         鼠标移入 
OnMouseLeave         鼠标移出 
OnMouseWheel         鼠标滚动 
OnMouseWheelDown   鼠标滚轮按下 
OnMouseWheelUp       鼠标滚轮弹起 
增加了TWebBrowser控件,目前不知与TCppWebBrowser有何本质区别,只是TWebBrowser多了原本应该有的Anchors属性,TCppWebBrowser应该是为保持兼容而留的.

先前我说的玻璃效果下显示的Menu或Button字体显示问题,有问题的显示效果: 
http://p.blog.csdn.net/images/p_blog_csdn_net/aniven/207912/o_glass.jpg 
看菜单部分,如果放置一个Button也是一样的问题。 
其实帮助里已经给出了答案: 
设置相关控件的DoubleBuffered为true即可。
zplinze
Project-> Options-> 选中Application,勾上Enable   runtime   themes 
就支持windowsxp的themes了,不再需要TXPManifest

sfengnet原BCB6里没有代码折叠功能

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2089270

 ydlchina发表于 2008年02月13日 07:35:00 



#5


看样子不得不找地摊大妈升级了!

#6


顶顶