标签: c++builder-xe

保持滚动条隐藏在Delphi dbgrid中(即使在调整大小时)

对于我们的dbgrid,我们希望不断隐藏滚动条.由于TDBGrid没有'滚动条'属性,我们使用:

ShowScrollBar(DBGrid1.Handle, SB_VERT, False);
ShowScrollBar(DBGrid1.Handle, SB_HORZ, False);
Run Code Online (Sandbox Code Playgroud)

但是,当我们调整窗口大小(以及包含dbgrid的面板)时,只有在调用上述两种方法后,滚动条才会出现并再次隐藏.

解决方案是在DrawColumnCell中调用这些方法,但这会导致dbgrid闪烁,即使DoubleBuffered设置为true也是如此.

有没有办法永久隐藏滚动条?

提前致谢!

delphi c++builder scrollbar dbgrid c++builder-xe

8
推荐指数
1
解决办法
2万
查看次数

IDE生成的USEFORM宏调用改变了它们的顺序

我们有一个C++ Builder XE项目(VCL Forms Application),里面有几十个表单和单元.每当添加,删除或重命名属于项目的文件时,IDE都应该做两件事:

  1. 如果受影响的单元是表单或框架,则在项目源文件(ProjectName.cpp)中添加或更改对USEFORM宏的调用
  2. 添加或更改项目文件(ProjectName.cbproj)中的CppCompile元素

但是,IDE不是仅进行必要的更改,而是对现有的USEFORM和CppCompile记录进行洗牌,即使它们不受更改的影响.如果我添加一个单元(cpp和头文件),即使不需要对项目源进行任何更改,也只需要对cbproj文件进行任何更改,USEFORM都会被洗牌.

我没有看到新订单如何形成的具体模式.如果我编辑或重命名一个单元,大约一半的USEFORMs似乎改变了位置,只改变了一对或没有CppCompile记录.如果在两台不同的机器上对项目副本进行了更改,则大多数更改似乎都相似,但并非全部.这表明重新排序不是随机的.

使用Subversion合并更改时,该行为会导致问题,因为它会强制手动解决更改顺序造成的冲突.

所以问题是:什么可能导致上述行为以及如何摆脱它?

ide c++builder c++builder-xe

8
推荐指数
1
解决办法
876
查看次数

如何在C++ Builder中使用Delphi"in"运算符

我是新手程序员.我需要in在C++ Builder XE中使用Delphi的运算符,如下所示:

if (dgColLines in DBGrid->Options)
    // include vertical lines in total (one per column)
    TotalColumnWidth = TotalColumnWidth + ColumnCount;
Run Code Online (Sandbox Code Playgroud)
if (dgColLines **in** DBGrid->Options)
Run Code Online (Sandbox Code Playgroud)

如何在C++ Builder中做到这一点?

提前致谢.

delphi c++builder set c++builder-xe

7
推荐指数
2
解决办法
2207
查看次数

在c ++ builder XE中围绕带圆角的表单边框

我已经使用以下代码制作了带圆角的C++ Builder XE表单

BorderStyle = bsNone; 

void __fastcall TForm1::FormCreate(TObject *Sender)
{
     HRGN frmrgn;  

     frmrgn = CreateRoundRectRgn (0, 0, ClientWidth, ClientHeight,12,12);
     SetWindowRgn(Handle,frmrgn,true);
}
Run Code Online (Sandbox Code Playgroud)

它看起来很酷,但边框丢失,我尝试了很多东西,但没有得到好结果,所以请帮我绘制RGB颜色边框(96,96,96)

我希望整个表格可以拖动.

border c++builder rounding drag c++builder-xe

5
推荐指数
1
解决办法
2635
查看次数

如何在不重新启动IDE的情况下加载更新的组件包?

在Delphi中开发新组件时,我遇到了这种低效率.每次我对源代码进行增量更改(例如,修复bug)时,我都会构建新组件并将其安装在Component Palette上.还行吧.在IDE的另一个实例中,我打开了一个使用此组件的项目.它是我的一个表单上的可视组件.要应用新更改,需要重新启动此第二个实例 - 关闭和重新打开表单或项目是不够的.这个过程可以优化吗?

delphi development-environment custom-component c++builder-xe

5
推荐指数
1
解决办法
434
查看次数

编写C++ Builder/Delphi组件并将二进制属性保存到DFM文件

我写了一个C++构建器组件来显示SVG文件对它们执行一些操作.

现在,我发布了一个名为SvgFile(UnicodeString)的属性,该属性可以在IDE中使用SVG文件的文件名进行初始化.这很好用.此属性保存在DFM文件中,可以从中重新加载.

但是我必须为应用程序提供SVG文件,因此我想将SVG保存到DFM文件中,因为它是使用TImage组件完成的.

我想我必须写一个TPropertyEditor,也许是一个TPersistent类,但我不知道该怎么做.

有人能帮我这么做吗?

编辑2013/01/17:这是一个解决方案http://www.informit.com/articles/article.aspx?p=28278&seqNum=5

谢谢你的帮助.

delphi components dfm c++builder-xe tpersistent

4
推荐指数
1
解决办法
1063
查看次数

在调试器中每次运行后都需要重新启动C++ Builder XE3,或者在下次运行时应用程序崩溃

这有点奇怪,我似乎只在Windows 7上看到这一点(当我在Windows 8中构建应用程序时,似乎没有发生这种情况).我通过XE3使用C++ Builder XE看到了这一点.我将编译一个应用程序(静态链接包和rtl),然后从调试器运行它.如果我然后对代码进行更改并尝试重新编译并运行应用程序,则编译似乎没问题,但是当应用程序尝试启动时应用程序崩溃.如果我关闭C++ Builder并重新打开它,那么强制它通过重建所有进行重建,或者进行一些微小的更改它编译并运行正常.每次都是这种情况.我曾尝试过去切换到动态链接rtl和"出现"以使问题消失但我不确定这是否是一个可靠的假设.有谁见过这种行为,有没有人知道如何解决它.

编辑: 崩溃发生在我的任何代码之前.这是调用堆栈:

007d17b3; __delayLoadHelper2
007d7efa; __imageBase
007d308b; __wstartup
Run Code Online (Sandbox Code Playgroud)

顺便说一句:这个项目没有延迟加载dll.

crash c++builder access-violation c++builder-xe c++builder-xe2

3
推荐指数
1
解决办法
751
查看次数

如何在 Borland Builder XE 中同时显示头文件和源文件?

有人知道如何在 builder XE 中同时显示头文件和源文件吗?

我知道我可以在它们之间切换,但我宁愿每个文件都有一个选项卡。

谢谢

usability c++builder c++builder-xe

3
推荐指数
1
解决办法
1708
查看次数

这个字符串的范围是什么?

如果我有以下代码:

{
    UnicodeString sFish = L"FISH";
    char *szFish = AnsiString(sFish).c_str();

    CallFunc(szFish);
}
Run Code Online (Sandbox Code Playgroud)

那么创建的临时AnsiString的范围是什么,以及szFish指向有效数据的时间有多长?它仍然对CallFunc函数有效吗?

它的范围只是一行,还是整个块?

c++ c++builder c++builder-xe

2
推荐指数
1
解决办法
169
查看次数

如何在C++ Builder中使用Delphi Inc()和Dec()过程

我是新手程序员.我需要在C++ Builder XE中使用Delphi Inc()Dec()程序,如下所示:

Inc(Filler);

Dec(GridClientWidth);
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我怎么做?

delphi c++builder c++builder-xe

2
推荐指数
1
解决办法
1126
查看次数

如何在BCB XE中将十六进制字符串编码为整数

我想在RAD Studio C++ Builder XE中将十六进制字符串转换为16位十进制.

例如,我有十六进制字符串"8FC".二进制表示为100011111100.这个的十进制表示为:2300.

如何在C++ Builder XE中进行此转换?

c++ hex c++builder c++builder-xe

2
推荐指数
1
解决办法
5634
查看次数

绝地图书馆和德尔福XE

通常,使用安装程序完成JEDI库的安装.有人知道安装人员吗?

  1. 适用于Rad Studio XE(Delphi和Builder)
  2. 如果没有,可以轻松修改
  3. 知道一些手动安装说明吗?

谢谢

delphi c++builder jedi delphi-xe c++builder-xe

1
推荐指数
1
解决办法
2123
查看次数

有没有办法使用 WINAPI 或 Embarcadero C++ Builder XE 创建共享目录/文件夹?

可能重复:
Windows 文件夹共享 API

我需要我的 C++ 应用程序偶尔创建共享目录。我正在使用 Embarcadero C++ Builder XE,它只有CreateDir()无法指定共享访问的功能。Embarcadero C++ Builder 环境中是否有任何东西可以让我简单地做到这一点,或者如果失败了,是否有一种简单的方法可以直接使用 Windows API 做到这一点?我已经查看了 msdn 页面,了解可以让我这样做的内容,但我还没有找到任何以清晰方式记录的内容。

编辑特别是文件夹及其内容需要网络上的所有其他机器都可以访问。

c++ winapi c++builder-xe

1
推荐指数
1
解决办法
2189
查看次数