CodeGear Rad Studio2007新特性(本人搜集Waiting4you的帖子)

dongliangyu

BCB6.0里的TChart是在Additional页次里,版本4.0。功能较少。
BCB2007中,TChart为单独一个页次,其中包括多个控件,版本7.0,功能齐全。

theLibra12
ToolBar   CoolBar
都多了一个Gradient属性,可以设置渐变色。
TForm
也多了一个GlassFrame属性,在Vista下可以显示成玻璃效果。

zdhsoft

BCB2007dbx支持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
加入了FastMMFastRTL以及最新的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

TEvent构造函数
C++Builder6
__fastcall   TEvent(Windows::PSecurityAttributes   EventAttributes,   bool   ManualReset,   bool   InitialState,   const   AnsiString   Name);
C++Builder2006
__fastcall   TEvent(Windows::PSecurityAttributes   EventAttributes,   bool   ManualReset,   bool   InitialState,   const   AnsiString   Name,   bool   UseCOMWait)/*   overload   */;
TCustomClientDataSet
Data属性SetData方法
C++Builder6:
procedure   TCustomClientDataSet.SetData(const   Value:   OleVariant);
begin
    FSavePacketOnClose   :=   False;
    Close;
    ClearSavedPacket;
    if   not   VarIsNull(Value)   then
    begin
        SafeArrayCopy(VarToDataPacket(Value),   FSavedPacket);
        Open;
    end;
end;
C++Builder2006
procedure   TCustomClientDataSet.SetData(const   Value:   OleVariant);
begin
    FSavePacketOnClose   :=   False;
    Close;
    ClearSavedPacket;
    if   not   VarIsNull(Value)   then
    begin
        SafeArrayCheck(SafeArrayCopy(VarToDataPacket(Value),   FSavedPacket));
        Open;
    end;
end;
注意在C++Builder2006中多了SafeArrayCopy().所以在使用Data属性时有些变化了。

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

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

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();来让它气泡显示.
       
好像是没找到生成ApacheDLL的方法,不知道是不是没发现?

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,所以菜单跟标准的不一样,所以用bcbdelphi做的软件一下就给人呢知道,比如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里需要设置好几个地方了。

  Seamless   support   for   Microsoft   Windows   Vista   Aero,   Vista   Desktop   and   Vista   APIs  
        *   Increased   ANSI   C++   conformance   and   compatibility   including   Boost   and   Dinkumware   library   support  
        *   New   C++   build   flexibility   and   custom   configurations   powered   by   the   Microsoft   MSBuild   engine  
        *   Up   to   5   times   in-IDE   build   performance   improvements   over   prior   versions  
        *   UML   C++   source   code   visualization  
        *   Integrated   C++   unit   testing  
        *   New   DBX   4   RAD   data   access   with   support   for   the   latest   versions   of   popular   RDBMs   including   CodeGear   InterBase,   Microsoft   SQL   Server,   MySQL,   Oracle,   IBM   DB2,   and   Sybase  
        *   C++   IDE   enhancements   including   virtual   folders   and   enhanced   C++   structure   pane  
        *   New   INDY   10   Internet   Protocol   component   suite  

Waiting4you
to   Javpp:
        Loki
BCB6的时候就已经支持了,Loki里有一个专门为Borland   C++做的文件夹,Unicode看来是要看2008版的了:)
很多控件都支持了渐变色,不过TCanvas好像还是没有封装GradientFillAPI,   好在找到一个叫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.Top50,当Align=alClientalTop时将在上方有50像素的间隔,当然前提是必须设定AlignWithMarginsTrue
WordWarp   :  
使按钮中的文本可以换行显示
TToolBar
Margins,AlignWithMargins   :  
同上
AllowTextButtons   :  
允许Style=tbsTextButtonToolButton,看不出有什么分别
(TToolButton
增加了tbsTextButtonStyle)
DrawingStyle,GradientDirection,GradientDrawingOptions,GradientStartColor,GradientEndColor
很诱人哦,可以制作和BDS一样的界面,顾名思义是渐变色的设置,首先必须设置DrawingStyledsGradientGradientDirection是渐变方向(横或纵),然后就是颜色了
TPanel
Locked   :  
这是BCB6中就有的,不属于新属性
ParentBackground   :  
和父控件相同的背景,相当于透明Transparent,因为XP中有些控件包含渐变色,比如PageControl...
Padding,Margins,AlignWithMargins   :  
同上
VerticalAlignment   :  
设置Caption的对齐,以前只有Alignment,只能设置水平方式的左中右,现在这个属性可以设置垂直方向的上中下
TCheckBox,TRadioButton  
TWinControl都增加了WordWrap属性,可多行显示Caption,这个好.
另外,所有的容器控件都设为了透明,以显示XPVista的渐变色窗体或控件,所以产生了ParentBackground属性,和TLabelTransparent属性有类似含义。
增加了几个ColorMap控件,这下可以方便的访问Windows的颜色设置了,好。
增加了TFlowPanelTGridPanel
增加了TCategoryButtonsTButtonsGroup   :可产生如BDSTool   Palette的按钮组效果
其他的还有如VistaDialog等了。
事件方面,TWinControl都增加了
OnMouseActivate   :  
类似于OnMouseDown,只不过参数不同
OnMouseEnter
OnMouseLeave分别代表鼠标移入和移出,这个好,以前为了得到鼠标移出事件,只能在外围的控件上处理移入事件来代替...

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

先前我说的玻璃效果下显示的MenuButton字体显示问题,有问题的显示效果:
https://p-blog.csdn.net/images/p_blog_csdn_net/aniven/207912/o_glass.jpg
看菜单部分,如果放置一个Button也是一样的问题。
其实帮助里已经给出了答案:
设置相关控件的DoubleBufferedtrue即可。

zplinze
Project-> Options->
选中Application,勾上Enable   runtime   themes
就支持windowsxpthemes了,不再需要TXPManifest

sfengnetBCB6里没有代码折叠功能

 
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页