一步一步学习使用LiveBindings(1) 使用向导无代码创建基于绑定的FireMonkey应用程序
这将是一个系列的文章,主要通过实际操作的模式一步一步来揭开LiveBindings的面纱。
在VCL框架中,传统的数据绑定模式是这样的:用 TDataSource 组件连接数据集和数据显示控件。数据显示控件(一般以TDB开头的控件)能自动同步数据变化,能处理用户操作,使得数据修改和更新更简单而且直观。
在FireMonkey中,传统的数据绑 ...
Delphi
Delphi/Object Pascal 是一种结合了高性能编译与快速可视化开发的技术栈,尤其在Windows桌面和企业级应用中仍有不可替代的价值。以下是其核心应用场景与技术优势分析:
一、Delphi的现代应用场景
1. 高性能Windows桌面开发
行业软件:医疗影像处理(如DICOM阅片系统)、工业控制界面(SCADA)、财务终端(如股票交 ...
delphi 注解+反射
delphi 通过注解+反射,可以实现数据的ORM编程,不再需要DATASET。
注解:是一种RTTI。
始创于java,go/c#/java/delphi。。。目前都支持注解。
RTTI对程序性能的影响:https://www.cnblogs.com/hnxxcxg/p/19660714
go语言的注解:
type Person struct {
Name string `json:"name" xml:"name"`
Email string `json ...
Python可视化开发工具,类似VB、Delphi
收集类似VB、Delphi的 Python可视化开发工具,如下:
1、(国产)pythonstudio : 下载地址 https://www.glsite.com/?Studio/37.html ,最新教学视频教程更新在b站:https://space.bilibili.com/690222995/channel/series
基于 delphi VCL 的python 包 进行扩展而来。参考官方:Python GUI & ...
delphi MessageDlg 和 MessageBox的用法
在 Delphi 中,MessageDlg 和 MessageBox 都可以用于显示消息对话框,但它们在使用方式、功能特性和适用场景等方面存在一些差异。下面分别介绍它们的用法。
1. MessageDlg 函数
1.1 所在单元
MessageDlg 函数位于 Dialogs 单元。
1.2 函数原型
function MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsg ...
从Delphi到Lazarus——Delphi转换器
0.前言
在Lazarus中使用Delphi编写的文件是一件很简单的事情,这是因为Lazarus可以直接打开Delphi的任何文件,甚至有些文件可以不做任何修改就可以直接使用到你的Lazarus程序中。
不过,Lazarus与Delphi毕竟不是同一个东西,还是存在一些区别的,这就需要将Delphi文件转换为Lazarus需要的格式。
关于从Delphi转换到Lazarus ...
delphi内存表
delphi内存表
delphi内存表最大的特点就是有data和delta属性,有了它,极大地简化了数据库CURD编程。这是其他语言所不具备的优势。
在当前流行软件平台化,IDL盛行的时候,可能也是其最大的缺陷。
就算FPC几乎山寨了整个delphi的数据集体系,但内存表的data和delta属性就是山寨不了。
1)TClientDataSet
早年datasnap基于CO ...
从Delphi到Lazarus——Lazarus开发环境使用入门教程
0.前言
曾经有过更换开发环境体验的编程爱好者都会有同样的感受:打开新更换的开发环境后,看到陌生的界面无从下手。想写一段小程序试一试,却你找不到自己需要的组件在哪里。
其实,我们每到一个新地方,首先要找点资料熟悉周围的环境。编写程序也是这样,使用一个新的开发环境首先要熟悉这个环境。熟悉开发环境的方法是什 ...
从Delphi到Lazarus——安装最新版的Lazarus
0.前言
在这篇文章里将会介绍以下内容:
下载最新版的Lazarus安装程序
安装Lazarus
安装整合IDE界面的软件包
编译运行你的第一个测试程序
结束语
1.下载最新版的Lazarus安装程序
在浏览器中百度一下“Lazarus”,从搜索到的信息中点击Lazarus Homepage进入Lazarus主页https://www.lazarus-ide.org/
点击Download Now ...
delphi 新版内存表 FDMemTable
c++builder XE
官方demo最全60多个
http://community.embarcadero.com/blogs?view=entry&id=8761
FireDAC.Comp.Client
用好FDMemTable代替之前的ClientDataSet,以前ClientDataSet内存表转换太繁琐了步骤。
TClientDataSet *cds = new TClientDataSet(this); DataSetProvider1->DataS ...
从Delphi到Lazarus——我的编程之路
今天终于下定决心,把我使用的编程环境从Delphi转变成Lazarus了。这也许是一个明智的选择,但做出这个决定的过程包含了辛酸和无奈。
这应该是我第三次安装Lazarus了。以前安装之后总是感觉有很多不尽人意的地方,最终还是放弃了。这一次,也许是因为我看到了希望,也许是Lazarus的发展达到了我需要的程度,总之,我下定决心 ...
Delphi 中禁止 TStringGrid 单元格被选中
Delphi 中禁止 TStringGrid 单元格被选中
环境
Windows 11 23H2
Delphi 12 Update 1
FXM 框架
使用 Delphi 中 FMX 框架的 TStringGrid 展示数据而不愿意某个单元格被选中时,OnSelectCell 事件提供了很简单的方法实现了这一目的。
procedure TFrom.StrGrdSelectCell(Sender: TObject; const ACol, ARow: Integer; var C ...
常用Delphi IDE环境配置
目录
一、android SDK
二、环境变量
1、User System Overrides :覆盖用户操作系统的全局配置参数
2、System Variables 操作系统层面的全局变量
3、其中:重要的,和自己个性化的
三、自己的类库路径
四、测试工程默认路径
五、PAServer
六、需个性化的常用项 ...
delphi 导出到excel的7种方法
delphi 导出到excel的7种方法
本文来自 爱好者8888 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/kpc2000/article/details/17066823?utm_source=copy
===================================================================================================
第一种方法delphi 快速导出excel
uses ComObj,cli ...
Delphi 线程
不是原创,只是看到好的内容复制了保存下来,留着学习。
CreadteThred参考,同步参考,WaitForSingleObject参考,互斥参考,
一、在 Delphi 中使用多线程有两种方法: 调用 API、使用 TThread 类; 使用 API 的代码更简单.
1、调用 API:CreateThread()
function CreateThread( lpThreadAttributes: Po ...
mormot.core.threads--TSynThreadPool
mormot.core.threads--TSynThreadPool
{ ************ 面向服务器进程的线程池 }
TSynThreadPool = class; // 前向声明TSynThreadPool类
/// 定义了TSynThreadPool所使用的工作线程
TSynThreadPoolWorkThread = class(TSynThread)
protected
fOwner: TSynThreadPool; // 线程池所有者
fThreadNumber: integer; ...
mormot.core.os--TSynLocker和TSynLocked
mormot.core.os--TSynLocker和TSynLocked
TLightLock
{ **************** TSynLocker/TSynLocked 和 低级线程特性 }
type
/// 一个轻量级的独占非重入锁,存储在 PtrUInt 值中
// - 在自旋一段时间后调用 SwitchToThread,但不使用任何读写操作系统API
// - 警告:方法是非重入的,即在一个裸调用中两次调用 Lock 会 ...
mormot.core.threads--TSynParallelProcess
mormot.core.threads--TSynParallelProcess
{ ************ 线程池中的并行执行 }
type
/// TSynParallelProcess 的并行化过程回调
// - 如果 0<=IndexStart<=IndexStop,则应执行某些过程
TOnSynParallelProcess = procedure(IndexStart, IndexStop: integer) of object;
/// 为 TSynParallelProcess 执行过程的 ...
mormot.core.threads--TSynBackgroundThread
mormot.core.threads--TSynBackgroundThread
在mORMot 2框架中,TSynBackgroundThreadEvent、TSynBackgroundThreadMethod、TSynBackgroundThreadProcedure、TSynBackgroundThreadProcess和 TSynBackgroundTimer这几个类虽然都涉及到后台线程的执行,但它们各自有不同的用途和设计目标。以下是对这些类之间差异的概述:
TS ...
mormot.core.threads--TBlockingProcess
mormot.core.threads--TBlockingProcess
type
/// TBlockingProcess 实例的当前状态
TBlockingEvent = (
evNone, // 无状态
evWaiting, // 等待状态
evTimeOut, // 超时状态
evRaised); // 触发状态
{$M+} // 开启RTTI详细信息模式,用于调试
/// 用于等待某个进程完成的信号量 ...