[杂谈] Android 下预编译的 OpenSSL 库(1.0.2g)

这个是一位德国的朋友 hmm.fanz 分享给我的,经过其同意分享给大家。大家将其随自己的 android 程序一起发布就可以了,具体的发布过程就不在这里说了,大家可以参考以前的文章。 下载 感谢 hmm.fanz,这样子通过 QSendMail 发送邮件时,大家在 Android 下就可以使用 SendBySSL 了

[FMX] 计算文本所占用的显示区域大小

我们有时需要手动计算文本内容显示所需要占用的区域大小,在 VCL 中相信大家都很熟悉怎么做了。但在 FMX 中如何去跨平台的实现它,这就需要研究研究了,毕竟连 FMX 自带的 TLabel 的 AutoSize 设置为 true 都没产生任何效果。 好吧,首先看看我们要包含的单元: FMX.TextLayout :我们

[FMX] TListBox 的设置 ItemIndex 不会自动滚动到相应记录的处理

好吧,我不确定这是不是Bug,不过按我的想法,设置了 ItemIndex 属性,显示时应该让记录滚动到可视区,让我看见,但却就是看不见呀看不见~~~~ 跟进源码,原来是 ContentLayout 没有值造成的,所以,要修正这一问题的简单做法就是先调用一下列表框的ApplyStyleLookup 方法。 所以,截止 B

[FMX] FMX 的 Style designer 支持 FixedWidth/FixedHeight 属性设置了

这两个属性用于控制控件的大小是否允许通过 Object Inspector 改变,如果设置为非0值,则在Object Inspector 或者代码中设置 Width / Height 属性不会起作用,也就是说会固定宽度或高度。这个在XE 8 中需要我们手动处理样式文件,目前看已经不需要了。

[杂谈] iOS 开发跳坑记:使用 NSSet 对象

Delphi 中开发 iOS 程序中,许多地方需要一个 NSSet 类型的参数,但是,怎么使用很伤脑筋。可怜的少的可怜的文档,都不如我的 QDAC 了(至少俺绝大部分代码有函数注释,这连个注释都没有)。为了搞明白怎么用,本人利用了源码搜索大法,搜索 Delphi 自带的 Source 目录下,看看它自身是如何使用的。整

[杂谈] 在 Delphi 中开发 iOS 程序使用非默认框架的步骤

1、使用 SDKTransform 转换生成框架的接口文件,具体参考 前面的一篇 试用笔记。 2、将生成的接口文件放到程序的目录搜索路径中,以便引用。 3、在程序中的 uses 单元中加入对框架的引用。 4、确保在使用之前框架对应的扩展库已经加载,这里提供一个函数,用来完成这一工作: uses Sysutils,iOS

[转]红鱼儿:Delphi berlin 如何自定义Listview外观样式

访问原文请点击 这里。 这个版本的Listview终于支持自定义Item的显示样式,也是这版本的卖点之一。参考Help,我们来看看,如何使用这个功能,来自定义Item的样式。 首先,通过ListView的ItemAppearance属性,具体就是在设计期,双击他,进入定义样式面版。在这里,我们可以定义Footer,He

[转]红鱼儿:TNetHttpClient支持异步访问(Delphi 10.1 Berlin)

访问原文请点击 这里 Delphi 10.1进一步改进自Delphi 10带来的Http访问控件TNetHttpClient,支持异步访问,同时增加ConnectionTimeout及ResponseTimeout两个超时属性。你也许会问,这有什么?其他的语言早就有了,而我想到的确实别看这些常规的功能增加,他可以跨平台

[杂谈]Delphi/C++ Builder 10.1 柏林更新内容简译

原文太长,我就不全文翻译了,以意译为主。 1、安装程序更新 新的安装器让你快速安装基本的功能,然后通过 Feather Installer 来安装额外需要的功能,从而加快安装速度,减少不必要的带宽占用。 2、FireMonkey 更新 Android 6.0 支持 新增 TAddressBook 来访问联系人信息 St

[杂谈] Access volation 的前因后果

Access volation 直译过来是访问违例,说的直白点,就是不按规矩访问内存的内容,我们一般称为 AV 错误。那么,访问内存的内容需要啥规矩呢? 一、基本原则:不是你的,你不能动 1、不能跨进程访问另一个进程的内存区域 一个进程不能试图跨进程访问另一个进程的内存,就象你不能随便上邻居家拿人家的东西一样(那叫偷,

[技巧] DLL 中使用多线程的一点提示

在 Delphi 或 C++ Builder 中,如果你使用 TThread 的子类实现多线程,如果你在 DLL 卸载前,没有单独提前终止线程,可能会造成 DLL 锁死无法退出。查看线程的栈和主线程的栈,你会发现两者相互等待,处于死锁状态。所以,正确的做法是在主程序退出前,如主窗体的 OnClose 里,调用 DLL

[技巧]C++ Builder 中慎用 Supports 函数来取接口的实例

实际上,这个问题在于 C++ Builder 是通过一个模板来处理接口的自动释放的,实际上相当于玩了一个auto_ptr,但 Supports 需要的第三个参数,确是一个指针,那么这个就用来比较麻烦了。 这样用: _di_IQService AService; if(Supports(PluginsManager()-

[FMX] 字体大小调整两种方法的另类对比

在编写跨平台的程序时,一般控件的字体的名称和大小都是平台默认的。我们可以通过两种方式调整字体的大小: 设置 TextSettings.Font.Size 的值 修改控件的 Scale 属性,按比例缩放 我们看一下对比图,第一个是 Windows 下,分别是调整缩放和直接设置 TextSettings.Font.Size

[杂谈] 用户、角色及权限漫谈

用户、角色、权限是一个软件里的多用户系统的基本内容。那么它们之间的相互关系,以及在系统设计中要考虑啥呢? 首先,是它们之间的关系,其基本关系我们可以概括为:一个用户隶属于一到多个角色,它的权限来自于自身和所隶属的角色继承而来。而权限本身也可以分组,子权限是父权限的一个子项,如果用户选中了父权限,那么它也就同时拥有了子权