小编War*_* P的帖子

INDY 10.1.5 - 哪些SSL dll与Delphi 2006一起使用?

我正在尝试连接到谷歌文档(遵循Marco Cantu的优秀REST示例),但我收到以下SSL错误:

1)如果我使用openssl-0.9.8i-i386-win32.zip中的SSL dlls,我收到错误:

"无法加载SSL库"

2)如果我使用indy_OpenSSL096m.zip中的SSL dll我得到错误:

"与SSL连接时出错"

3)如果我使用openssl-0.9.8h-i386-win32-Indy-IntraWebEdition.zip中的SSL dlls我得到错误:

"无法加载SSl库"

现在我已经研究了这个,并且有很多关于dll死链接的建议,包括堆栈溢出的链接.我怀疑我需要找到与我正在使用的INDY版本兼容的SSL dll.

我的问题是,有没有人确切知道哪些SSL dll与Delphi 2006和INDY 10.1.5兼容?

delphi ssl openssl indy delphi-2006

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

我应该用什么delphi代码替换我对不推荐使用的TThread方法Suspend的调用?

之前有人问过,但没有完整答案.这与所谓的着名"'致命线程模型!'"有关.

我需要用安全的东西替换这个调用TThread.Suspend,当终止或恢复时返回:

procedure TMyThread.Execute;
begin
  while (not Terminated) do begin
     if PendingOffline then begin
          PendingOffline := false;   // flag off.
          ReleaseResources;
          Self.Suspend; // suspend thread. { evil! ask Barry Kelly why.}
          // -- somewhere else, after a long time, a user clicks
          // a resume button, and the thread resumes: --
          if Terminated then
              exit; // leave TThread.Execute.
          // Not terminated, so we continue..
          GrabResources;
     end;
    end;
end;
Run Code Online (Sandbox Code Playgroud)

最初的答案含糊地暗示了"TMutex,TEvent和关键部分".

我想我正在寻找一个TThreadThatDoesntSuck.

以下是带有Win32Event的TThread派生示例,供评论:

unit SignalThreadUnit;

interface

uses
  Classes,SysUtils,Windows;

type

TSignalThread …
Run Code Online (Sandbox Code Playgroud)

delphi tthread

16
推荐指数
2
解决办法
5543
查看次数

TBitmap的按钮控件和底层替换,可以在不编写预混合代码的情况下正确处理PNG透明度

Delphi 2010的TSpeedButtons似乎并没有真正支持PNG透明度,因为Glyph属性在内部使用TBitmap,TBitmap用于位图,并且不能正确支持PNG透明度,并且TSpeedButton.Glyph不能支持透明度然后.. 更新:但实际的问题是我有一些外部的东西(Developer Express组件)让delphi的PNG支持无功能,另一方面TImage,虽然它仍然是TPicture,并且可以支持PNG,也受此开发者快递的影响错误.

这里已经提出了一个问题,答案显示了如何使用预混合,以便透明度不会变成黑色像素.我想知道是否有另一个按钮控件将使用在设计时加载的alpha混合PNG,并且不会将PNG资源转换为丢弃Alpha通道的BMP格式,并导致此处显示的黑色边框.

简而言之,此控件不会使用TBitmap,也不会使用TBitmap所具有的颜色键透明度功能.

重复一遍,我不是问如何在仍然使用过时的基于TBitmap/TSpeedButton的VCL功能的情况下解决黑外问题,因为它缺乏现代的PNG透明功能,我要求用它替换它"正常工作"的其他东西.

作为次要的缺点,将一个小的.png文件转换为.DFM位图资源本质上是浪费空间并使我的表单.DFM内容太大..dfm中的原生.png文件格式存储应该使得结果形式更小.

在此输入图像描述

更新: PngComponents看起来应该可以工作,但是Invalid Graphic format当我尝试将png加载到Png speedbutton时出现错误.请注意,Png图像列表组件没有这样的问题.似乎cxLibrary(开发人员快递包)正在破坏事物.一旦我删除了所有开发者表达的东西,这个问题就消失了.因此,尽管我选择了Pngcomponents作为答案,但如果你安装了devex的东西,请改用他们的按钮,而不是pngcomponents.

在此输入图像描述

delphi png delphi-2010 png-transparency

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

Interface Builder XIB错误 - 无法写入路径

在清理或按住Option键并单击产品 - >清理构建文件夹后,我偶尔会出现偶尔出现的一次性错误,这些错误通常会在第二次构建时出现问题.

有什么我可以做的,以避免像这个似乎绑定到我的主要xcode项目的单个.xcproj(XCode项目)的错误.它永远不会出现在新产品或空产品上,并且似乎总是在同一个Nib文件上失败(MainWindow-iPhone.nib).

完整的错误消息:

  /Users/user/XCodeWork/iPhoneDev/MyAppSourceFolder/en.lproj/MainWindow-iPhone.xib: 
  Compilation failed. Unable to write to path:        
  /Users/user/Library/Developer/Xcode/DerivedData/MYAPPNAME-
  dudnhxzgpqtcnqcgaguirvkhmvco/Build/Intermediates/ArchiveIntermediates/
  MYAPPNAME/InstallationBuildProductsLocation/Applications/MyAppname.app/
  en.lproj/MainWindow-iPhone.nib
Run Code Online (Sandbox Code Playgroud)

我已经查看了文件夹权限,并且我拥有上面显示的Intermediates文件夹路径的完全权限.只是因为sudo在XCode的构建中发生了一些类似的垃圾,我设置了每个人都有读写权限的路径,但这并没有解决它.

上述错误发生在常规调试构建期间,也发生在归档操作期间,并且通常会阻止我完成归档步骤.

我在OS X Mavericks 10.9(13A603)上使用XCode 5.0.1(5A2053)

xcode interface-builder xcode5

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

将Char数组转换为String?

如何将char数组转换为字符串?

我有一个正常的字符数组,我想将其值转换为字符串.我怎样才能做到这一点?

编辑: 最初这个问题询问"字符串到字符串的数组",但OP接受了一个答案,上面写着"字符串数组,字符串".

delphi

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

带Firemonkey的Delphi Xe2:您是否可以使用非默认Windows非客户端绘画样式绘制的非客户区?

这是我使用firemonkey + Delphi XE2制作的delphi应用程序示例.

如您所见,您可以使用Firemonkey中的视觉样式"stylebook"来自定义窗口框架内大多数内容的外观.然而,窗框的外部是使用Windows决定的任何样式绘制的.现在,如果我使用的是VCL而不是Firemonkey,我可以在暗色方案中应用"VCL样式"和"皮肤"整个VCL应用程序.

我的猜测是,这与Delphi XE2 + Firemonkey无关.任何人都可以说明如何做到这一点?

在此输入图像描述

在设计时,表单的"预览"显示一个漂亮的黑色边框.但是当我运行我的应用程序时,Windows XP"Luna"主题边框(下图中的蓝色部分)看起来很糟糕.具有讽刺意味的是,VCL比Firemonkey更漂亮(在样式的XE2中)......

delphi delphi-xe2 firemonkey

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

Delphi VCL样式教程 - 如何在运行时更改样式

是否有一个很好的VCL样式教程,我们看到如何动态(在运行时)加载/更改样式?

这应该适用于Delphi XE2及更高版本,因为XE2是第一个带有VCL样式的版本.

delphi delphi-xe2 vcl-styles

14
推荐指数
3
解决办法
4万
查看次数

如何让Delphi XE2通过SSL与Google Calendar API对话?

这是再次提出这个问题的时候了,但这次使用的是Delphi XE2.

我正在使用XE2附带的Indy版本10.5.8.0,我尝试了四种不同版本的SSL dll.我已经尝试了1.0.x最新版本,以及大约3种不同的0.9.8版本(e,h,x,....).

当他们在calendar.google.com上与https:// urls进行通信时,它们都不起作用." Sync-components.com " 上的Delphi Google Calendar组件的作者提供了他自己的二进制openssl DLL运行时,其中没有版本信息,但它似乎是一个非常小的,非常旧版本的早于0.9的SSL库. 8.该组件的作者说,只有他的私有无版DLL才有效.我简直不敢相信.当然,至少有一个版本的openSSL dll可以与Delphi XE2连接到Google Calendar.

为了让他的自定义古代DLL加载到Delphi XE2中的Indy 10中,他修改了IdSSLOpenHeaders.pas方法Load,就像这样,最后:

 function Load: Boolean;
 begin
   /// ... lots of stuff
   //Result := (FFailedFunctionLoadList.Count = 0); // original.
   Result := (FFailedFunctionLoadList.Count <= 18); // changed to.
 end;
Run Code Online (Sandbox Code Playgroud)

当然,我正在评估的组件在XE2中不起作用,但我怀疑它是(a)与XE2一起提供的Indy 10的这个特定快照,或者(b)SSL DLL世界的事实的破坏.一个名副其实的"为你而破碎但为我工作"的不同版本.

在Delphi XE2中,如何使用Indy(或任何其他支持SSL的delphi组件库)与Google Calendar建立SSL连接?

或者,如果任何人都有谷歌日历API实现,可以使用Indy以外的任何我可以用来测试的东西,我会很感激链接和指针.

delphi openssl indy delphi-xe2

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

如何在Visual Studio 2017中将PCL更改为.net平台标准库?

我试图弄清楚如何将便携式.net类库更改为.net平台标准库.项目设置中有一个可点击的链接,看起来正确,显示"Target .net platform standard".

目标.net平台

对我来说似乎很荒谬的错误是:

项目的目标无法更改.所选目标要求项目选择加入NuGet 3.0支持,但是,Visual Studio无法自动为您执行此操作.请卸载所有NuGet包,然后重试.

有没有办法做到这一点比上面的字面上删除我的所有引用然后尝试添加它们的荒谬方法更有意义?我不知道如何把这个我没写过的项目转换成.net标准,除了在一张纸上写下所有的引用,然后再尝试再添加它们.那是字面意思我被告知要做什么?还有另外一种方法吗?我做错了吗?

其次,即使我删除了所有可以删除的引用,项目仍然不会转换.我删除了Newtonsoft和所有其他可以删除的引用,只留下.net,system和system.core,它们是不可移除的.

我仍然得到同样荒谬的错误.我正在尝试修改的项目是github上提供的一个开源项目,但是我故意试图让这个问题更加通用,因此对于遇到这个问题的其他人来说这可能是有用的.目标.net平台标准不起作用在所有"问题.

c# visual-studio-2017 .net-standard

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

这些Dsymutil警告在XCode 4.5中意味着什么?

我正在连接iOS的静态框架和armv7 ios 6应用程序,我怀疑原始二进制文件来自XCode 3.x并使用GCC编译,我现在使用CLang编译器链接它.我没有框架的源代码,只有二进制文件:

(null): warning: (armv7) /.../DerivedData/.../armv7/HardwareObjectFile.o unable to open object file
Run Code Online (Sandbox Code Playgroud)

我得到69个警告,如上所述,每个.o文件链接到静态框架.

这个警告是否因任何原因而严重?我已经简化了巨大的路径,这似乎表明库中的二进制文件已经硬编码了"/ Users/somedeveloperthatisntme"中的路径,这条路径几乎无法帮助但不存在,因为我在不连接的计算机上使用此库有一个名为"Users/somedeveloperthatisntme"的文件夹.

Dsymutil似乎是一个"操作存档的DWARF调试符号文件"的工具,虽然我完全不知道它是什么以及它做了什么,尽管Apple提供了全面的文档,它告诉我什么,但从来没有,为什么.它在做什么,这个警告对我意味着什么?我怀疑我需要一个来自供应商的新库/静态框架来清除它?

更新:我无法解决这个问题,看起来原因是由非常旧的XCODE版本编译的非常旧的二进制文件,作为移动框架的一部分从第三方供应商提供.在这种情况下的问题将通过让供应商重建他们的库来解决,我要求他们这样做,因为这些警告让我疯狂,但他们似乎无法做到.最后,我抛弃了他们的技术并用其他东西取而代之.(GRIN)

xcode ios dsymutil xcode4.5

13
推荐指数
3
解决办法
8583
查看次数