mormot.core.threads--TSynQueue
mormot.core.threads--TSynQueue
以下是对 mormot.core.threads中部分代码的翻译,特别是关于 TSynQueue类的部分:
const
// 在这里定义以避免在uses子句中显式链接到syncobjs单元
wrSignaled = syncobjs.wrSignaled; // 等待结果:已发出信号
wrTimeout = syncobjs.wrTimeout; // 等待结果:超时
wrError = s ...
mORMot虚拟数据集--TOrmTableDataSet
如何快速显示 OrmTable--可以使用TOrmTableDataSet
这是mormot.db.rad.ui.orm的主要功能
type
/// 只读虚拟TDataSet,能够访问TOrmTable
TOrmTableDataSet = class(TVirtualDataSet)
protected
fTable: TOrmTable; // 关联的TOrmTable实例
{$ifndef UNICODE} // 如果不是在Unicode版本的Delphi中
fForc ...
mORMot模糊概念--FormatSQL-第1部分
mORMot里面的模糊概念--FormatSQL第1部分
mORMot 的 Fast Format 到底是% 还是 ? 作为参数!,先看看关键代码。
下面是代码原始注释
function FormatSql(const Format: RawUtf8; const Args, Params: array of const): RawUtf8;
fast Format() function replacement, handling % but also ? inlined parameters
will in ...
Delphi游戏学习
Dgame
毋庸置疑,Delphi是一个绝佳的、强大的游戏开发平台!希望这个网址列表能对Delphi程序员普及游戏开发知识作出一点贡献!1、http://www.savagesoftware.com.au/DelphiGamer/说明:著名的Delphi游戏开发网站,分类详细,有资料,源码,Delphi开发的游戏网址等等!更新很快!2、http://turbo.gamedev.net/说明 ...
delphi Image32 路径
用 Image32的理由之一,也是路径这块做得比delphi(FMX)自带的要好,skia中支持svg,但对路径处理功能不够强大。VCL只能使用第三方库。
VCL如果要支持SVG,只有 Image32好点,SVGIconImageList 第三方库也使用 Image32.
unit uFrmPaths;
interface
uses
Winapi.Windows, Winapi.Messages, System.S ...
mormot.core.threads.pas unit
mormot.core.threads.pas unit 中文翻译
Purpose: Framework Core Multi-Threading Support
- this unit is a part of the Open Source Synopse mORMot framework 2, licensed under a MPL/GPL/LGPL three license - see LICENSE.md
目的:框架核心多线程支持
本单元是开源Synopse mORMot框架2的一部分,根据MPL/GPL/LGPL ...
mORMot and Open Source friends SynProject Tutorial (SynProject教程)
mORMot and Open Source friends SynProject Tutorial--(SynProject 教程)
第一步
本页介绍SynProject的一些典型用法。
我们将为mORMot框架本身创建一个源代码存储库和相关的文档。
您要求文档,我们将通过SynProject自动生成它!
我们需要什么
因此,我们在硬盘上的D:\Dev\Lib文件夹中拥有所有mORMot框架源代码文件(主单 ...
SynProject 介绍---(synopse理解的版本控制和文档自动化生成)
SynProject 介绍---(synopse理解的版本控制和文档自动化生成)
Synopse SynProject是一个用于Delphi项目的源代码版本控制和自动化文档生成的开源应用程序。它在GPL许可下发布。
有关其全部功能的完整列表,请参阅SynProject功能。
源代码可从本源代码存储库获取。请选择上方的“文件”按钮,并查看SynProject文件夹。
另 ...
Modern Pascal is Still in the Race (Modern Pascal 仍在竞赛中)
Modern Pascal 仍在竞赛中
作者:Arnaud Bouchez,2022年11月26日。永久链接
Pascal 编程
博客
集合
跨平台
数据库
Delphi
FPC
垃圾回收器
泛型
Go
优秀实践
元编程
mORMot
mORMot2
性能
RTTI
Rust
最近在Lazarus/FPC 论坛上的一项民意调查突显了一个事实:Pascal 程序员比其他大多数程序员年龄都大。通常来说,到了我们 ...
Safe locks for multi-thread applications(多线程应用程序的安全锁)
Safe locks for multi-thread applications(多线程应用程序的安全锁)
由AB4327-GANDI,2016年1月9日。永久链接
开源 › mORMot框架
博客
临界区
Delphi
良好实践
mORMot
多线程
一旦你的应用程序是多线程的,就应该保护并发数据访问。我们已经写过关于调试多线程应用程序可能很困难的文章。
否则,可能会出现“竞态条件 ...
Three Locks To Rule Them All(三把锁统治一切)
Three Locks To Rule Them All(三把锁统治一切)
【英文原文】
为了确保线程安全,特别是在服务器端,我们通常使用临界区(critical sections)或锁(locks)来保护代码。在最近的Delphi版本中,我们引入了TMonitor特性,但我更倾向于信任操作系统提供的锁机制,这些锁是通过Windows临界区或POSIX futex/mutex来实现的。
...
End Of Live OpenSSL 1.1 vs Slow OpenSSL 3.0
End Of Live OpenSSL 1.1 vs Slow OpenSSL 3.0
【英文原文】
你可能已经注意到,OpenSSL 1.1.1 系列将于下周一(2024 年 5 月 27 日)达到寿命终止(EOL)……
最明智的选择是尽快切换到 3.0 或 3.1 版本。
当然,我们的 mORMot 2 OpenSSL 单元在 1.1 和 3.x 分支上运行,并在运行时自适应每个分支之间存在的各种 API 不兼 ...
IDocList/IDocDict JSON for Delphi and FPC
IDocList/IDocDict JSON for Delphi and FPC
【英文原文】
多年来,我们的开源 mORMot 框架提供了多种方法来处理在运行时定义的数组/对象文档的任意组合,例如通过 JSON,具有许多功能和非常高的性能。
我们的 TDocVariant自定义变体类型是处理这类无模式数据的一种强大方式,但一些用户觉得它有些令人困惑。
因此,我们围 ...
Delphi TMSMQTT使用笔记
服务端用的是 mosquitto ,下载地址https://mosquitto.org/download/
安装完成后需要配置
找到安装目录:mosquitto.conf,打开后修改 allow_anonymous false(禁止匿名登录),password_file D:\Program Files\mosquitto\pwfile.example(密码存放位置)
创建新用户,安装目录下执行 mosquitto_passwd ...
delphi安卓动态权限申请
delphi安卓动态权限申请
安卓8及以上版本,除了原来的静态权限申请以外,还需要动态权限申请。
delphi10.3开始支持安卓动态权限申请。
delphi11开始官方改变了安卓动态权限申请的参数类型,导致原来编写的代码,编码报错。
下面的代码,可以很好地解决权限问题。兼顾了delphi10.3和delphi11以后版本。
{sensor 2022-07-12 ...
Quick Library 简介
QuickLib 是一个快速开发库
QuickLib是一个快速开发库,它提供了诸如AutoMapper、LinQ、IOC依赖注入、MemoryCache、计划任务、Json和Yml配置、序列化程序等多种功能。这个库特别支持Delphi和Firemonkey的多平台开发,包括Windows、Linux、Android、OSX和IOS。同时,QuickLib也支持freepascal,使得开发人员能够更轻松地构建 ...
delphi ORM和泛型模板实现CRUD
delphi ORM和泛型模板实现CRUD
1)定义数据模型(data-model)
数据模型是ORM数据序列/还原所必需的。
TTable<T: record> = record //1个表
rows: TArray<T>; //表的行
end;
TTable2<T, T2: record> = record //2个表
table1: TTable<T>; //表1
table2: TTable<T2>; ...
Delphi提高开发效率之GExperts专家的使用说明
GExperts是一组通过扩展集成开发环境(IDE)来提高Delphi和C++ Builer程序员工作效率的工具。是一款开源的IDE扩展专家,由于去外网下载GExperts非常的麻烦,这里直接提供了Delphi7和Delphi11.1下的GExperts安装包,并连带最新源码一起打包,方便大家使用学习。下面直接看他具有哪些功能,留下实用的功能,去掉非必要的功能 ...
Delphi TDictionary字典类
TDictionary 是一个开放哈希表,支持泛型,并提供了以下常用属性和方法:
属性:
Count:返回字典中元素的数量。Keys:返回字典中所有键所组成的动态数组。Values:返回字典中所有值所组成的动态数组。
方法:
Add:向字典中添加一个键和其对应的值。Clear:清空字典中的所有元素。ContainsKey:判断字典中是否包含指定的键 ...
delphi Byte 与 字符串(AnsiString、WideString) 相互转换
Byte 与 字符串(AnsiString、WideString) 相互转换
代码
String转Byte
procedure TForm1.Button1Click(Sender: TObject);
var
buf: TBytes;
I: Integer;
begin
//ANSI编码
buf := BytesOf('测试内容');
Memo1.Lines.Add('ANSI编码');
for I := 0 to Length(buf) - 1 do
Memo1.Lines.Add(buf.ToString);
...