Delphi

Qt使用GDI绘图(仅Windows平台)

偶尔善良 提交于 2020-04-13 14:46:09
【今日推荐】:为什么一到面试就懵逼!>>> 绘图引擎 Windows环境下二维绘图引擎有多种选择:GDI、GDI+、DirectDraw、Qt/QPainter、Agg、Cairo、skia、Direct2D、Direct3D、OpenGL等。 GDI:微软原生的二维绘图引擎。 优点:微软的全力支持,作为操作系统核心层效率方面不用担心,支持多种开发框架(含语言):WinSDK、MFC、Delphi等。 缺点:不是面向C++对象组织的,使用起来较为繁琐;不支持反锯齿,不支持复杂的绘图效果(这个相对于GDI+而言)。 GDI+:微软后来推出的二维绘图引擎。 优点:微软的全力支持,支持多种开发框架(含语言):WinSDK、MFC、Delphi等,可以实现复杂的绘图效果,如反锯齿、路径画刷等;面向对象的架构,使用起来比较方便。 缺点:绘图效率较GDI稍低,绘图交互性不如GDI(缺少GDI的支持位运算的绘图模式),开启反锯齿后效率不如Qt。 Qt:Qt的二维图形引擎是基于QPainter类的,绘图的效果取决于QPainter的设置。面向对象的方式组织,使用起来较为方便。 Agg:C++编写的开源绘图引擎(基于GPL协议) Cairo:C编写的开源绘图引擎(基于LGPL协议),大名鼎鼎的FireFox就是用这个绘图引擎的。 Skia:Google的Android的绘图引擎。 Direct2D

Delphi Error Dataset not in Insert or Edit Mode

最后都变了- 提交于 2020-04-12 19:51:12
问题 Objective: Click on the button on the TRxDBCombo to call a search box On Selecting the record from search box, the result is set as Field Value for the TComboEditBox and is posted in the TRxMemoryData Dataset The Error: Dataset not in Insert or Edit Mode appears the second time of calling this function TDBEditBox1.SetFocus; Form_Search:= TForm_Search.Create(Application); with Form_Search do Begin showmodal; //Get Result from Database if trim(TempResult) <> '' then Begin TDBEditBox1.Field

Delphi10.3的DBGrid美化(03)

旧街凉风 提交于 2020-04-12 18:38:11
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var i: Integer; begin if gdSelected in State then Exit; // 定义表头的字体和背景颜色: for i := 0 to (Sender as TDBGrid).Columns.Count - 1 do begin (Sender as TDBGrid).Columns[i].Title.Font.Name := ' 宋体 ' ; // 字体 (Sender as TDBGrid).Columns[i].Title.Font.Size := 9 ; // 字体大小 (Sender as TDBGrid).Columns[i].Title.Font.Color := $000000FF; // 字体颜色 ( 红色 ) (Sender as TDBGrid).Columns[i].Title.Color := $0000FF00; // 背景色 (绿色 ) end ; // 隔行改变网格背景色: if (Sender as TDBGrid).DataSource

libvlc delphi开发环境搭建

﹥>﹥吖頭↗ 提交于 2020-04-10 10:01:36
libvlc delphi开发环境搭建 下载libvlc ,链接为 http://download.videolan.org/pub/videolan/vlc/ 获取paslibvlc控件 ,paslibvlc是DELPHI控件。 1.windows端 (1)拷贝压缩包vlc-3.0.4-win64\vlc-3.0.4\sdk中的include和lib文件夹到个人项目中。 (2)拷贝压缩包vlc-3.0.4-win64\vlc-3.0.4\中的plugins文件夹和libvlc.dll、libvlccore.dll至可执行程序目录。 2.linux端 详情请见github https://github.com/alonegiveup/vlc_demo 来源: oschina 链接: https://my.oschina.net/u/4265014/blog/3227441

delphi 数据库技术沉浮录--谨献给成为历史的BDE

梦想与她 提交于 2020-04-09 01:13:51
2014年9月,delphi xe7 出来了,这次在数据库技术方面,彻底抛掉了从1995 年delphi 1.0 就自带的BDE(Borland Database Engine)数据库访问技术。从而宣告了这个持续 了20余年的delphi 访问数据库技术进入历史。 纵观delphi 数据库技术的20年发展史,其实也是delphi 的发展史。通过数据库技术的变化,也可以了解delphi的发展历史及未来的方向。 一、 话说当初 Delphi 1.0 是16 位的编译器,当时的互联网几乎是不存在,拿到的第一份delphi 1.0 是那种软件集合光盘(你懂得),在486的win95 上好长时间,才安装好,安装界面是borland 经典的赛车仪表盘窗口。装完以后,就进入了拖拽控件的设计界面,配套的数据库技术就是BDE,BDE(Borland Database Engine)是borland公司的数据库引擎,它结合了SQL Links允许程序员 通过它能够连接到各种不同的数据库(例如oralce,sybase,sql server等)。最早的 BDE是给Paradox 用的,后来borland 把paradox 卖了,保留了BDE,在delphi 里面就直接使用BDE 作为访问数据库的技术。由于当时真正的数据库服务器还很少,所以开发的数据库还是以本地为主,数据库为Paradox

Read and Write registry entry of type REG_MULTI_SZ using Delphi

 ̄綄美尐妖づ 提交于 2020-04-08 18:31:06
问题 Delphi offers the library System.Win.Registry to manipulate the windows registry. Unfortunately it doesn't contain read/write procedures for the registry datatype REG_MULTI_SZ (=list of strings). The following code returns an ERegistryException with "invalid datatype" - it seems only to work with datatype REG_SZ: Registry := TRegistry.Create; Registry.RootKey := HKEY_LOCAL_MACHINE; Registry.OpenKey(cKey, false); sValue := Registry.ReadString('MyRegEntry'); Meanwhile I am able to read the REG

Android实例-Delphi在运行时更改Android屏幕旋转(IOS也支持,不过我可没有苹果机,测试不了)

十年热恋 提交于 2020-04-08 11:51:35
相关资料: https://www.it1352.com/624177.html android实例: unit Unit2; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMXTee.Engine, FMXTee.Procs, FMXTee.Chart, FMX.Layouts, FMX.Controls.Presentation, FMX.StdCtrls; type TForm2 = class(TForm) Layout1: TLayout; Chart1: TChart; Layout2: TLayout; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; procedure Button1Click(Sender: TObject); procedure Button5Click(Sender: TObject); private { Private declarations

Delphi面向对象编程思想读书笔记3——理解对象

送分小仙女□ 提交于 2020-04-07 14:16:38
对象的本质 计算机内存常用的有两块,栈(stack)和堆(heap)。 对象的引用存储在栈中,栈中的变量是不需要由程序员手动去释放内存空间的。简单数据类型的值和对象的引用存储在栈中,对象存储在堆中。 查看创建对象所占用内存的大小,调用InstanceSize()方法,从TObject继承。 对象引用和类引用。对象是类的动态实例,对象总是被动态分配到堆上,一个对象引用就如同一个句柄或者一个指针。一个对象引用通常以一个变量的形式存在,也有函数或者属性返回值的形式。类引用类型是类的模板。类引用最普遍的使用是通过调用构造函数来生成该类的实例,也可以用引用类测试对象类型(is)或者将对象转换为特定类型(as)。 常用的参数床底机制分为值传递和引用传递(var)。 赋值操作符(:=)将一个对象的以用赋值给一个对象变量。Assign和AssignTo方法可以将对象属性进行赋值。 简单的数据类型(如Integer,Char,Record等)无论作为参数还是变量都是按值传递和使用的,通常称为值类型。对象变量是引用类型变量,分配一个对象引用给一个变量时,Delphi仅复制引用,而不是整个对象。 对象的生死 Delphi用Constructor声明一个构造函数Create,可在对象产生的时候调用。用Destructor声明一个析构函数Destroy,将在对象销毁的时候调用。 Destroy直接销毁对象

UltraEdit支持Delphi语法高亮显示的设定

孤街浪徒 提交于 2020-04-07 10:52:33
将以下内容添加到UltraEdit安装路径下的 WORDFILE.TXT 文件的结尾即可,注意:/L9数值根据自己的实际更改一下。 /L9"Dephi" Line Comment = // Block Comment On = { Block Comment Off = } Block Comment On Alt = (* Block Comment Off Alt = *) Escape Char = \ String Chars = ' Nocase File Extensions = PAS DPR DPK DFM COD INC /Delimiters = ~!@%^&*()-+=|\/{}[]:;"' <> , .? /Function String = "%[a-zA-Z_]* ^([a-zA-Z_]+^)(*)[~;]" /Function String 1 = "%[a-zA-Z_]*.^([a-zA-Z_]+^)(*)[~;]" /Indent Strings = "begin" /Unindent Strings = "end" /C1"Keywords" absolute abstract and array as asm assembler automated begin break case cdecl class const constructor

delphi中Webbrowser

筅森魡賤 提交于 2020-04-07 10:36:43
1.获得网页中变量值 htm中<script> var currID=123</script> 程序中可以这么调用 id := Form1.WebBrowser1.OleObject.Document.script.currID 值得说明的是,变量可以是javascript定义的,也可以是vbscript定义的,如果Webbrowser1中找不到该变量,调用会触发一个异常事件,即变量currID不存在 2.执行网页中的函数 tmp := 'currID = getNextID(currID)'+#13#10; Form1.WebBrowser1.OleObject.Document.parentWindow.execScript(tmp,'JavaScript'); 调用函数的方法就是execScript接口,同样,如果函数不存在,或者运行错误也会触发脚本错误异常 3.设置网页背景 背景图片 WebBrowser1.OleObject.Document.body.background := ' http://seelearn.com/bg.gif ' 背景颜色 WebBrowser1.OleObject.Document.body.bgcolor := '#eeeeee' 4.调用网页中已知对象 src := WebBrowser1.OleObject.Document