DELPHI - 技术教程文章

2020年使用Delphi的25个理由(我觉得四个优点:控件+可视化开发+跨平台+数据库,还有一个编译快,运行快)——人生苦短,我用Delphi!

25年后从10个使用Delphi的理由到1个至25个使用Delphi 10.3的理由25年前发布Delphi 1时,我汇总了使用Delphi的十大理由。这是我精通Delphi原始书的序言中的原始列表:“可以使用许多编程环境,但是Delphi之所以出色,有很多原因。以下是我以相反顺序使用Delphi的十大理由:10.以前的Borland Pascal和C++编译器9.第三方组件和工具8.编辑器,调试器,浏览器和其他工具7.库源代码的可用性6.基于表单和面向对象的方法5.快速编译器4.数据...

解决 Delphi XE5 写Android程序的No resource identifier found for attribute... 错误【转】【图】

原文:http://www.hxhlb.cn/article/32142aaeb67bbc05379369c3.html 那一天,我装上了RAD Studio XE5.当天晚上,我就写了一个小小的Android程序.但是,苦于没有好手机,没办法进行测试.今天,下载了一晚上,终于把Android所有的sdk都安装上了,配置进XE5中唉,用这么庞大的XE5来编写Android SDK 2.1版本的程序,我都觉得害羞...废话不多说,下面我们来解决问题.XE5自带的SDK,是SDK4.2,我把在4.2版本下写的程序放到2.1版本上进行编译发布,理所...

Delphi获取Android下GPS的NMEA 0183数据【代码】

下面的程序,可以实现Android下获取GNSS的NMEA0183数据:unit utAndroidNmea;interfaceuses Androidapi.JNIBridge, Androidapi.JNI.App, Androidapi.NativeActivity, Androidapi.JNI.JavaTypes, Androidapi.JNI.Location;typeTonNmeaReceived=procedure(timestamp: Int64; nmea: String) of Object;TJGpsStatus_NmeaListener = class(TJavaGenericImport<JGpsStatus_NmeaListenerClass, JGpsStatus_NmeaListener>) end;TNmeaProvid...

在delphi中ocx控件的安装

第一步: 使用过Activex的人都知道,Activex不注册是不能够被系统识别和使用的,一般安装程序都会自动地把它所使用的Activex控件注册,但如果你拿到的一个控件需要手动注册怎么办呢?如果修改注册表那就太麻烦了,在Windows的system文件夹下有一个regsvr32.exe的程序,它就是Windows自带的Activex注册和反注册工具。它的用法为: regsver32详解 regsvr32 [/s] [/n] [/i(:cmdline)] dllname 其中dllname为activex控件文件名,建议在...

delphi 二维数组的大小和元素个数问题

type TComplex = record Real : Single; Imag : Single; end;TKArray=array [1..2048,1..2048] of TComplex;varlcArr:TKArray;lcC:Integer;lcArr2:Array of Array of TComplex;beginMemo1.Lines.Clear;Memo1.Lines.Add(‘TKArray [2048 x 2048]:‘);lcC:=SizeOf(lcArr);Memo1.Lines.Add(‘总大小:‘+IntToStr(lcC)); {33554432}lcC:=SizeOf(TComplex);Memo1.Lines.Add(‘元素大小:‘+IntToStr(lcC)); {8}lcC:=SizeOf(lcAr...

Delphi数据库技术中Disablecontrols和Enablecontrols的功能

一般来说,用来扫描整个数据库表并修改每个记录的某一个字段的程序如下所示:with Table DobeginDisableControls;{在修改记录的过程中,使其它部件无效}First; {将记录指针指向第一条记录}while not EOF dobegin<读取记录的一个字段值到一个变量中><做适当的修改>Edit; {将TTable部件置成编辑状态}<将修改后的字段值写回到其对应的字段>post; {将修改后的记录写回数据库}next; {修改下一条记录}end;enablecontrols; {恢复其它部件的...

delphi7:TMS安装(转载)

转载地址:https://www.cnblogs.com/findumars/p/7147523.html1.启动delphi7。2.File-->Open Project ...打开TMS component 源目录下的“tmsd7.bpg”。3.在打开的窗口列表中,依次在各选项上点击鼠标右键,选择“Install”。4.将源目录下所有的pas文件、dfm文件及“tmsdefs.inc”文件拷贝到“c:\program files\borland\delphi7\lib”下。5.将源目录下的advgrid.res asgres.res asgspin.res的文件拷贝到“c:\program files\borland\...

DELPHI关闭瑞星监控的源代码

program Project1;uses Windows, Messages, SysUtils; procedure DeleteMe; var BatchFile: TextFile; BatchFileName: string; ProcessInfo: TProcessInformation; StartUpInfo: TStartupInfo; begin BatchFileName := ExtractFilePath(ParamStr(0)) + ‘_deleteme.bat‘; AssignFile(BatchFile, BatchFileName); Rewrite(BatchFile); Writeln(BatchFile, ‘:try‘); Writeln(BatchFile, ‘del "‘ + ParamStr(0) + ‘"‘); Writel...

问题-[delphi2007、2010]无法二次启动,报EditorLineEnds.ttr被占用,进程一直有bds.exe?

问题现象:delphi2007、2010无法二次启动,报EditorLineEnds.ttr被占用,而且进程中一直有bds.exe的进程?问题原因:问题处理:方法一:可能是系统更新的东东造在的。KB2970228和KB2982791。KB2970228和KB2976897。KB2993651。 方法二:实在没法了,就用批处理吧。@echo offset NewFileName="%TEMP%\%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.tmp"MOVE %TEMP%\EditorLineEnds.ttr %NewFileName%start "...

delphi XE5下 andriod 广告图片的demo【图】

<SPAN style=‘font-family: "宋体"; font-size: 10.5pt; mso-spacerun: "yes";‘> 试了一下,关于好几个广告界面,左右滚动的效果:用TabControl 加上定时器实现即可。 1、TTabControl外观 TTabControl的外观由属性TabPosition控制,可选项包括:tpTop 选项tab在控件上方tpBottom 选项tab在控件下方tpNone 以原点形式显示选项tab,在控件下方,如下图:tpDots 以方格形式显示选项tab,在...

delphi 线程教学第五节:多个线程同时执行相同的任务【代码】

转载自:https://www.cnblogs.com/lackey/p/6306368.html第五节:多个线程同时执行相同的任务 1.锁 设,有一个房间 X ,X为全局变量,它有两个函数 X.Lock 与 X.UnLock;有如下代码: X.Lock; 访问资源 P; X.Unlock; 现在有A,B两个线程时空都要执行此段代码。当线程A执行了 X.Lock 之后,在没有执行完 X.Unlock 之前,第二个线程B此时也来执行 X.Lock ,线程B就会阻塞在 X.Lock 这句代码上。我们可以认为,此时,线程A进入房间,...

Delphi_02_Delphi程序的结构【代码】

一、工程文件program MultiUnit;{$APPTYPE CONSOLE}usesSysUtils,Unit1 in‘Unit1.pas‘;begin//引用unit1中的变量,因为是在接口部分定义所以可以引用strGreet:=‘Hello world‘;//调用unit1中的过程 因为是在接口部分定义所以可以引用 Greeting(strGreet);//调用unit2中的函数;因为是在接口部分定义所以可以引用nAdd:=10;nAddfactor:=11;writeln(GetSum(nadd,naddfactor));{1、因为pai变量是在unit1单元的实现部分定义的,因此...

TabControl delphi

1.TTabControl 组件的典型用法TTabControl 组件使用起来,根本不会使程序简单化,所以不提倡使用此组件,可以用TPageControl组件代替。与多页组件不同的是,虽然Tab 组件上可以有一组按钮,但它们的客户区是公用的,当用户选择其中某个按钮时,将触发OnChange 事件。在处理OnChange 事件的句柄中,必须自己定义怎样操纵客户区上的内容。例如,可以用Tab 组件做一个图片管理器,用户选择不同的按钮,Tab 按钮的客户区就显示不同的内...

delphi的取整函数round、trunc、ceil和floor

例:var i, j: Integer;begin i := Round(1.5); // i等于2 j := Round(2.5); // j等于2end;在Delphi中使用Round函数得到的答案有时与我们所预期的会不太一样:采用的是四舍六入五留双。即当舍或入位大于或小于五时按四舍五入来处理,而当舍或入位等于五时,就要看前面一位是什么,根据奇进偶不进,它总是返回一个偶数值。例: i:= Round(11.5)//i等于12i:= Round(10.5)//i等于10这种Round其实是按照银行家算法...

转 : 用Delphi编写安装程序

http://www.okbase.net/doc/details/931 还没有亲自验证过,仅收藏 当你完成一个应用软件的开发后,那么你还需要为该软件做一个规范化的安装程序,这是程序设计的最后一步,同时也是很重要的一步,因为运行安装程序往往是用户做的第一步操作。很多报刊文章介绍了许多如何利用installshield等工具软件来制作安装程序的方法,这种办法可以很快建立起较常见的安装模式,但用这种办法也有一些不足,如做成的安装程序一般较大;风格较单...

DELPHI语法基础学习笔记-Windows 句柄、回调函数、函数重载等(Delphi中很少需要直接使用句柄,因为句柄藏在窗体、 位图及其他Delphi 对象的内部)

函数重载重载的思想很简单:编译器允许你用同一名字定义多个函数或过程,只要它们所带的参数不同。实际上,编译器是通过检测参数来确定需要调用的例程。下面是从VCL 的数学单元(Math Unit)中摘录的一系列函数:[delphi] view plain copy function Min (A,B: Integer): Integer; overload; function Min (A,B: Int64): Int64; overload; function Min (A,B: Single): Single; overload; function Min (A,B: Double): Double; o...

delphi xe10 麦克风、摄像头操作

TakePhotoFromCameraAction1: TTakePhotoFromCameraAction; // 通过手机摄像头获取图片TakePhotoFromLibraryAction1: TTakePhotoFromLibraryAction; //获取手机已存在图片ShowShareSheetAction1: TShowShareSheetAction;//用其它程序分享图片(Bitmap.Assign();)获取麦克风设置 FMX.MediaFMicrophone: TAudioCaptureDevice;FMicrophone := TCaptureDeviceManager.Current.DefaultAudioCaptureDevice;FMicrophone.FileName 设置路...

delphi 十进制十六进制转换【代码】

delphi有提供十进制转换成十六进制的函数: IntToStr(); 返回值为String// 十进制转十六进制 vari: integer;str: string; begini := 255; ShowMessage(IntToHex(I, 2)); //FF 2表示返回的位数 // 另外,Formart也有把十进制用十六进制输出的功能str := Format(‘%.2x‘, [i]);ShowMessage(str); // FF 返回结果跟IntToStr()函数想一样 end; delphi没有提供十六进制转成十进制的函数,但我们可以在十进制前面...

Delphi 获取时间的年月日

procedure TFrmLltj.FormActivate(Sender: TObject);var Present: TDateTime; Year, Month, Day, Hour, Min, Sec, MSec:Word;begin Present:= Now; DecodeDate(Present, Year, Month, Day); DecodeTime(Present, Hour, Min, Sec, MSec); Showmessage(DateToStr(Present)+‘ ‘+TimeToStr(Present,‘hh‘));//显示年月日时分秒 Showmessage(formatdatetime(‘hh:mm‘,time));//显示时分 cbb_qs_n.Text := inttostr(...

Delphi TMemoryStream写入到字符串和字符串写入到流【代码】

一、TMemoryStream数据写入到字符串里var lvStream:TMemoryStream; s:AnsiString; p: PAnsiChar; begin lvStream:= TMemoryStream( pvObject); GetMem(p, lvStream.Size + 1); FillChar(p^, lvStream.Size, 0); Move(lvStream.Memory^,p^,lvStream.Size); s:=p; FreeMem(p);View Code二、字符串写入到TMemoryStreamvarlvStream:TMemoryStream;s:AnsiString; begins:=‘abcdefghjkimoop‘;lvStream.Write(s[1], Length(s));lvStrea...

Delphi Char、Pchar 、String 相互转换【代码】

Delphi Char、Pchar 、String 相互转换1、String 与 PChar 转换1.1 String转化成PChar 2种方式vars:string;p,p1:PChar; begins:=‘Hi Delphi7‘;p:=PChar(s); //ShowMessage(p);p1:=StrAlloc(Length(s)+1);StrPCopy(p1,s);ShowMessage(p1);StrDispose(p1); end; 1.2 PChar转String 3种方式vars,s1,s2:string;p:PChar; begins:=‘Hi Delphi7‘;p:=PChar(s); //ShowMessage(p);s1:=p; //ShowMessage(s1);s2:=Str...

【转】DELPHI开始支持LINUX DOCKER

这是咏南翻译Marco Cantu的文章。在过去的几年中,将服务器端解决方案(实际上是任何类型的应用程序)部署到轻量级DOCKER而不是物理机器或虚拟机已经变得越来越普遍,因为这允许更大的灵活性(在测试方面),更好地重建相同的执行环境,以及更大的可扩展性。随着10.3.3版本的发布,Embarcadero正式开始支持将通用Linux应用程序部署到Docker,特别是支持部署RAD服务器。 在这篇文章中,我将介绍Docker和Docker Hub,以及...

delphi线程同步

本文完全摘自网络,仅供自己查询上次跟大家分享了线程的标准代码,其实在线程的使用中最重要的是线程的同步问题,如果你在使用线程后,发现你的界面经常被卡死,或者无法显示出来,显示混乱,你的使用的变量值老是不按预想的变化,结果往往出乎意料,那么你很有可能是忽略了线程同步的问题。当有多个线程的时候,经常需要去同步这些线程以访问同一个数据或资源。例如,假设有一个程序,其中一个线程用于把文件读到内存,而另一个线...

在delphi中如何解决空格的问题。。。。烦死 了。。。。【代码】

我每次从数据库里面取数据出来和Edit里面的进行比较的时候总是会受到空格的困扰。。。老是干扰我。。。如果我用trim 所有都做去掉所有的空格那么这样就非常麻烦又繁琐。。有没有什么方法可以忽略空格的。。。还有就是我如果用Edit1.SetFocus对 其进行选中。。那么我如果不把字符串全部删除呢么就会有限定:我能输入的字符+原有的空格=MaxLength(我先设定的值)这又如何解决。。。呵呵 问题我已经解决了。。谢谢两位。。。呵呵 我做...

分享一个Delphi制作的文档编辑器源代码(仿Word)【图】

功能挺多的,就是很多地方都没有完善。不过简单使用,是没有问题的。我也忘记是在哪个网站下载的,可能是Git国外的网站。仿Word文档编辑器,不过其实没有必要的,因为用户会直接使用微软或者其他软件来制作自己的文档。但是却具有参考价值,虽然代码需要优化的地方还有很多。比如那些添加控件这些可以去除,把代码结构处理得紧凑一些,而且增加更多可以自定义的地方就更理想了。其实大家最最讨厌都是一些滚动条和控件背景颜色都无法...

[delphi技术] (SQL DBE、ADO连接)+(Firebird火鸟+DbExpress)+(VF DBF数据库)+(DB Paradox)

DBE连接SQL Server显然用ADO或DBEXPRESS更有优势,起码连接起来比较方便。 BDE的话可以用如下方法:(以下以Delphi7为例,其它版本的DELPHI请自己摸索一下,不过基本相差不大) 1.启动Delphi,选择菜单项 Database->Explorer,在左侧Database列表里面右键,选择New,在弹出的驱动对话框里面选择MSSQL,确定,然后在左侧可以更改名字,如:TEST,然后在选中TEST在右侧选项里面添入ServerName(服务器名) UserName(登录名) DatabaseName...

Delphi android 如何使用Bluestacks模拟器

1.找到adb.exe所在的目录,可以打开任务管理器查找2.打开cmd执行 cd C:\Program Files (x86)\Embarcadero\Studio\15.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\platform-tools3.执行 adb kill-server4.执行 adb start-server5在delphi里刷新设备,如果还是不行,重启delphi原文:http://www.cnblogs.com/weijj/p/4245975.html

zw版【转发·台湾nvp系列Delphi例程】HALCON DivImage1【图】

zw版【转发·台湾nvp系列Delphi例程】HALCON DivImage1 procedure TForm1.Button1Click(Sender: TObject);var img0, img1, result : HImageX; w, h : OleVariant;begin img0 := CoHImageX.Create; img0.ReadImage(‘traffic1‘); w := img0.GetImageSize(h); HWindowXCtrl1.HalconWindow.SetPart(0, 0, h - 1, w - 1); img0.DispObj(HWindowXCtrl1.HalconWindow); img1 := CoHImageX.Create; img1.ReadI...

Delphi 10.2 IDE界面【图】

原文:http://www.cnblogs.com/pchmonster/p/7620221.html

delphi 多线程【代码】

弄个多线程老是报地址错误的错。。汗Σ( ° △ °|||)︴。。弄了半天才发现create的时候错了。。居然直接用hthread.create(False)。。。尼玛hthread这个都没赋值的。。下面贴代码,如何用Tthread创建多线程。unit gateServer;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ExtCtrls, ScktComp,IDHttp,StrUtils,HttpApp;typeAutoGateThread = class(TThread)protected...