标签: c++builder

将 Vcl::Controls::TCaption 又名 (System::UnicodeString) 转换为 const char *

我目前正在使用 C++Builder 创建一个将文本复制到用户剪贴板的应用程序。我已经放置了一个TMemo控件,我想将其包含在一个const char *变量中,如下面的代码所示:

const char* output = TMemo1->Text;
Run Code Online (Sandbox Code Playgroud)

当我编译程序时它抛出错误

没有从“Vcl::Controls::TCaption”(又名“System::UnicodeString”)到“const char *”的可行转换

以下是将文本复制到剪贴板的代码:

const char* output = TMemo1->Text; // Error here
const size_t len = strlen(output) + 1;
HGLOBAL hMem =  GlobalAlloc(GMEM_MOVEABLE, len);
memcpy(GlobalLock(hMem), output, len);
GlobalUnlock(hMem);
OpenClipboard(0);
EmptyClipboard();
SetClipboardData(CF_TEXT, hMem);
CloseClipboard();
Run Code Online (Sandbox Code Playgroud)

c++ c++builder tmemo

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

如何将System :: WideString转换为char*,反之亦然?

我有一种情况需要将a char*与a 进行比较WideString.
如何在C++中将WideString转换为char*?

c++ c++builder char widestring

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

如何从Visual Studio 2010分离文档窗口?

我有2个显示器具有非常不同的分辨率(这使得只是在它们上面拉伸窗口不是一个好主意)并且主动使用它们,通常在另一个显示时查看一个.

所以我想知道我是否可以从它的主窗口边界内移动Visual Studio 2010的子窗口,将其移动到另一个显示器.现在,我喜欢Borland C++ Builder中子窗口的行为方式(每个窗口,包括一个工具栏和一个属性窗格作为桌面上的一个独立窗口)(虽然我实际使用它的时候是无意义的).

c++builder visual-studio-2010 visual-studio

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

什么可能导致C++ Builder/Delphi线程和应用程序无法关闭?

有一次,在测试期间,我的C++ Builder/Delphi应用程序在后台工作线程中引发了一个未捕获的异常. EurekaLog发现异常并发送了错误报告,正如我预期的那样,一切似乎都没问题.

但是,当我关闭应用程序的主窗口时,某些内容仍在后台运行,因为应用程序仍然列在任务管理器中(并且仍然打开了资源).

我试图通过故意在后台工作线程中引入各种错误来复制这个问题,但我不能.

什么可能导致一个线程和应用程序保持这样运行,即使在主窗口关闭后(并且,可能是,已调用PostQuitMessage)?

如何确保应用程序始终完全关闭?

windows delphi multithreading shutdown c++builder

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

如何深度复制Builder组件,例如TPanel,TButton等

有人知道如何深度复制构建器组件吗?

我的印象是我可以使用Assign函数,因为他们没有可用的复制构造函数?

我正在使用Assign,但是它不喜欢它用于TPanel(对于Graphics :: TBitmap可以正常工作)。我得到的错误是“无法将TPanel分配给TPanel”?

有人对我应该怎么做有任何想法吗?一段代码如下:

CConfigComponentPanel::CConfigComponentPanel( const CConfigComponentPanel& rkConfigComponentPanel ):
CConfigComponent( rkConfigComponentPanel ),
m_pkPanel( new TPanel(this) )
{
    m_pkPanel->Assign( rkConfigComponentPanel.m_pkPanel );
}
Run Code Online (Sandbox Code Playgroud)

c++ c++builder

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

C#等效于FILE声明

可能重复:
更改文件扩展名c#

以下代码在c ++中,我将如何在c#中表示?

FILE fp = fopen(ChangeFileExt(Application.ExeName, ".DAT").c_str(), "w");
Run Code Online (Sandbox Code Playgroud)

与此主题相关的另一个问题是:

以下是c#中的等价物:

fputs((thisstring.CommaText + "\n").c_str(), fp); 
Run Code Online (Sandbox Code Playgroud)

c# c++ file c++builder

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

哪个线程是TIdThreadComponent OnTerminate和OnStopped执行的?

关于TIdThreadComponent以下问题的简单而重要的问题:

在哪个线程是OnTerminateOnStopped执行-主线程或者工作线程?

我在这些事件中(并调用VCL属性和方法)可以安全地假设我在主线程中吗?

更新:我想我可能会使用调试器,并在尝试之后,看起来像是OnStopped在工作线程内并且OnTerminate在主线程内.另外一个好处是调试器可以帮助确定执行启动/停止/控制线程的其他相关功能的位置,并减少可能的错误.

delphi indy c++builder indy10

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

从UnicodeString创建CData节点时XML无效字符

IDE:Embarcadero XE5 c ++构建器。

我试图在XML CData 节中转储UnicodeStrings

这样的字符串的小摘录:

 u"‰PNG\r\n\x1A\n\0\0\0\rIHDR\0\0\0õ\0\0\02\b\x06\0\0\0„\\i\0\0\0\x01sRGB\0®Î\x1Cé\0\0\0\x04gAMA\0\0±\vüa\x05\0\0\0\tpHYs\0\0\x0EÃ\0\0\x0EÃ\x01Ço¨d\0\0\v¼IDATxÚíœypUÕ\x19ÀO\x06…°¤\x04D$ˆ²\b1š\b\x18@...etc"
Run Code Online (Sandbox Code Playgroud)

我知道一个XML文档可以包含非ASCII字符,并且我认为XML解析器无法解析XML CData节的内容(节末尾指示符“ [[> ” 除外)不存在在我的数据中进行检查)。

创建(写入)CDATA节,我仍然得到“ 无效字符在文本内容创建节点时被发现的错误”。

代码示例:

_di_IXMLDocument pXMLDocument = NewXMLDocument("1.0");
// I've played around with the document encoding with no success, guessing it's only applicable while reading the document.
// pXMLDocument->SetEncoding(L"iso-8859-1"); 

String myString;   // Unicode, contains my data string.

// 1st param of CreateNode method is of type UnicodeString.
di_IXMLNode pCDataNode = pXMLDocument->CreateNode( myString, ntCData ); 
Run Code Online (Sandbox Code Playgroud)

有什么想法为什么会失败?编码有问题吗?

c++ xml c++builder

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

如何在XE6中禁用嵌入式设计器?

为了在一个窗口中看到多个视图我读了这个答案,但似乎那些选项不再可用,现在我的问题是如何配置rad studio xe6以 在窗口中查看多个视图(例如实际代码和设计形式) .

c++ delphi c++builder delphi-xe6

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

当没有添加孩子时,有没有办法显示TTreeNode的>符号?

我在一个TTreeView对象中显示项目.当一个项目有子项时,控件>在图标旁边绘制一个(或者如果展开则绘制一个向下箭头).

我想知道>即使没有添加任何孩子,我是否能以某种方式告诉该项目.

在我的软件中存在某些条件,其中向用户显示有孩子是有意义的,而没有实际添加孩子(然后在选择项目时完成)

使用c ++ Builder 2009 VCL,但这个Q也应该对Delphi有效.

delphi vcl c++builder

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