我想将内部对象的一些功能公开为DLL - 但该功能使用变体.但我需要知道:我可以使用Variant参数导出函数和/或返回 - 或者更好地转到仅字符串表示形式?
什么是更好的,从语言无关的POV(消费者不是用Delphi制作 - 但所有将在Windows中运行)?
我尝试在Delphi中调试COM dll(TAutoObject),我的断点不是绿色.
我把我这样的选择:
我的测试很好,但在Delphi中没有断点
这是怎么回事?
如何将集成的源代码格式化回Delphi?我想我禁用了一些软件包或其他东西,并且在"编辑"菜单中没有更多选项来格式化源代码.我应该安装什么包才能重新安装?
我创建了一个包,我想使用我的包的BPL文件...
我的包有VCL.dcp和RTL.dcp作为必需的库,我在我的应用程序中加载此包没有任何错误,但当我想卸载它时,显示一个访问冲突!
如果我使用运行时包("vcl"和"rtl")构建我的应用程序,则不显示访问冲突!

这是什么意思 ?!我的应用程序需要VCL和RTL库来加载BPL吗?我想像DLL文件一样加载我的包,有什么解决方案吗?
我正在使用Delphi 2010
非常感谢 ...
我正在寻找帮助将word文档(*.doc)转储到Text?我正在使用Delphi 2010.
如果解决方案是组件或库,则它应该是免费或开源组件或代码库.
鉴于这种混乱(多年前设计将一些数据写入csv"field1","field2"),输出文件已开始停止大约55个字符.在showmessage()调用或放置在本地String变量中也是如此.转换为TStringList以清除代码甚至以相同的方式失败.在代码停止时在IDE中将此检查为本地字符串变量将按计划显示整个构建的字符串.ShowMessage()甚至将尾随省略号放在最后.
我最终以"LD","BC63781S","JACKSON","MS","DENVER","CO","1186","0"......在showmessage和"LD","BC63781S","磁盘文件中的JACKSON","MS","DENVER","CO","1186","0".
更好的可读性 https://gist.github.com/788839
Writeln(F,
'"'+ ACtion
+ '","' + Ini.ReadString('IP_ITS','BAccount','TEST')
+ '","' + FieldByName('PICKCITY').AsString
+ '","' + FieldByName('PICKST').AsString
+ '","' + FieldByName('DROPCITY').AsString
+ '","' + FieldByName('DROPST').AsString
+ '","' + FieldByName('TOT_MILES').AsString
+ '","' + FloatToStr(AWeight)
+ '","' + FieldByName('LENGTH').AsString
+ '","' + FloatToStr(AStops)
+ '","' + ''{grosspay}
+ '","' + FieldByName('PICK_DATE').AsString
+ '","' + FieldByName('PICK_TIME').AsString
+ '","' + FieldByName('DROP_DATE').AsString
+ '","' + FieldByName('DROP_TIME').AsString
+ '","' + AEquip
+ '","","' + ALTL
+ '"' + ',"","' + '","1","'
+ Ini.ReadString('IP_ITS','BComp','BAccount')
+ …Run Code Online (Sandbox Code Playgroud) 我有一个AVI文件,我使用Resources Extract从shell32中提取.我想在TAnimate中使用它,但我无法弄清楚如何加载这个文件.
我使用DelphiDabbler的rcdatacreator程序成功地将AVI加载到.RES文件中(您必须下载"工作示例"才能获得rcdatacreator.但是,我现在的问题是弄清楚如何从.RES中提取AVI文件并将其提供给TAnimate.
我正在使用Delphi 2010:

任何帮助表示赞赏.
我有一张可以随键盘移动的照片.我想要的是当我将它移到另一个图像之上时,另一个图像消失了.我怎样才能做到这一点?到目前为止,这是代码,但它不起作用.提前致谢.
Image3是移动的,Image6是我想要消失的.
procedure TArmcutting.FormCreate(Sender: TObject);
begin
DoubleBuffered := true;
if Intersectrect (overlay, Image3.BoundsRect, Image6.BoundsRect) then
begin
Image6.Visible := False;
end;
end;
Run Code Online (Sandbox Code Playgroud)
编辑:谢谢大家的答案!
我需要创建一个具有下载文件功能的WCF服务.此WCF将由Delphi应用程序使用.
问题:将要下载的文件非常大,可能会导致Delphi端的内存问题.到目前为止,我有这个代码:
[OperationContract]
byte[] DownloadFile(string filePath);
Run Code Online (Sandbox Code Playgroud)
但是这段代码会导致客户端应用程序将所有数据保存在内存中,这可能是一个问题.
我已经读过WCF能够传输数据,您可以阅读:如何:启用流式传输
但我对从MSDN中删除的这段代码有疑问:
[OperationContract]
Stream GetStream(string data);
Run Code Online (Sandbox Code Playgroud)
在客户端,我想传递TFileStream给函数.通过使用TFileStream每个字节读取将直接进入磁盘.但函数RETURNS一个流和我想要的东西是不可能的,因为流不会是函数的参数.
如何将文件从WCF服务直接下载到磁盘?
我正在使用Threads(再次),这总是很痛苦......我的线程类中有一个函数,它是私有的.该函数返回一个布尔结果,以检查某个POP3服务器是否有效.检查工作,我测试了,看起来像至少工作,但我在Thread.Execute程序中尝试访问结果时遇到问题.我将解释更多,让我们去代码..这是宣言:
type
MyThread = class(TThread)
public
constructor Create(HostLine: string);
protected
procedure Execute; override;
procedure MainControl(Sender: TObject);
private
Host: string;
function CheckPOPHost: boolean; //this is the problematic function
end;
Run Code Online (Sandbox Code Playgroud)
所以函数是这样的:
function MyThread.CheckPOPHost: boolean;
var
MySocket: TClientSocket;
SockStream: TWinSocketStream;
Buffer: array[0..1023] of Char;
ReceivedText: string;
begin
Result:= false;
FillChar(Buffer, SizeOf(Buffer), #0);
MySocket:= TClientSocket.Create(Nil);
MySocket.Port:= 110;
MySocket.ClientType:= ctBlocking;
MySocket.Host:= Host;
MySocket.Active:= true;
if (MySocket.Socket.Connected = true) then
begin
SockStream := TWinSocketStream.Create(MySocket.Socket, 1000);
SockStream.WaitForData(10000);
while (SockStream.Read(Buffer, SizeOf(Buffer)) <> 0) do
ReceivedText:= ReceivedText + Buffer; …Run Code Online (Sandbox Code Playgroud)