Delphi / Lazarus
池龙
这个作者很懒,什么都没留下…
展开
-
减小Lazarus编译的可执行文件的体积
菜单:工程/编译选项在“链接”页面,清除“当出现运行错误时显示行号”复选框,确定转载 2010-09-18 19:15:00 · 1844 阅读 · 0 评论 -
为Lazarus控件指定图标
在自己制作Lazarus控件的时候为控件指定图标原创 2017-07-30 22:14:38 · 1161 阅读 · 0 评论 -
待解决:如何打开lazarus中math.pp下FPDOC_MATH编译选项
使用math单元中的max和min函数时发现仅能支持长整形,如果使用了浮点型,则会收到形如 Error: Incompatible type for arg no. 2: Got “Single”, expected “LongInt”的错误提示。 检查了math.pp的内容,发现此处的代码如下{$ifdef FPC_HAS_TYPE_SINGLE} function Min(a, b:原创 2017-08-10 23:31:17 · 427 阅读 · 0 评论 -
设置Lazarus组件包的版本信息
在Package菜单中打开包文件(Open Package File(.lpk))之后,在Options里找到Description,右边的窗口里可以设置描述、作者、许可说明、版本等信息。原创 2017-08-11 21:20:27 · 851 阅读 · 0 评论 -
Lazarus控件中控件尺寸变化的处理机制
TControl类通过Left、Top、Width和Height四个属性定义了控件的尺寸和位置信息,对这四个属性以及BoundsRect的修改(GetBoundsRect和SetBoundsRect函数也是操作这四个变量)会调用SetBounds过程(SetBounds过程亦可手动调用)重新设置控件的相关变量。当通过SetBounds过程(KeepBase=false)或布局器(KeepBase=t原创 2017-08-04 23:26:25 · 1204 阅读 · 0 评论 -
Lazarus的INI文件处理机制
TINIFile使用FillSectionList过程读取和分析INI文件结构。在这个过程中,会检查该文件是否具备微软的UTF-8文件头(#$EF#$BB#$BF),如果有,则记录下来,并在保存的时候也同样添加这个文件头。 if (AStrings.Count > 0) and (copy(AStrings.Strings[0],1,Length(Utf8Bom)) = Utf8Bom) the原创 2017-08-22 22:07:40 · 1186 阅读 · 0 评论 -
在Lazarus中对字符串进行代码页转换
由于Lazarus基于UTF-8,因此当读写Windows建立的纯文本文件的时候,由于其中的中文使用GBK(CP936)编码,可能会出现错误。此时可使用Lazarus自带的代码页转换单元LConvEncoding对编码进行转换。如UTF8和GBK互转function CP936ToUTF8(const s: string): string; // Chinesefunction UTF8原创 2017-08-22 22:29:26 · 2583 阅读 · 1 评论 -
关于Lazarus下PowerPDF控件的使用
如何输出PDF PowerPDF使用TPRPage作为页面容器,只要简单地将一个生成好的TPRPage输出到TPReport中即可生成PDF文件的一个页面,页面的尺寸由TPRPage的高度宽度决定。 PReport1.FileName:= 'test.pdf'; PReport1.BeginDoc; PReport1.Print(PRPage1); PReport1.EndDoc;原创 2017-09-13 00:53:01 · 2180 阅读 · 0 评论 -
在Delphi 10.2中安装ImageEN 5.2
找到ie.inc文件,在其中添加下述编译开关,先打开并编译PKIECtrlxx.dpk,然后再安装DKPIECtrlxx.dpk即可。// Delphi 10.2 Tokyo{$ifdef VER320} {$define Delphi5orNewer} {$define Delphi6orNewer} {$define Delphi7orNewer} {$define Delph原创 2017-09-24 11:07:20 · 3279 阅读 · 1 评论 -
解决Lazarus中窗体不能正确最大化显示的问题
某些情况下虽然已经设置了窗体的WindowState为wsMaximized,但是创建窗体并显示的时候窗体并不能正确最大化。此时可以尝试将窗体的WindowState依然设置为wsNormal,再在窗体的OnShow事件中设置窗体的状态。uses LCLIntf, LCLType;procedure TForm1.FormShow(Sender: TObject);begin LCLIntf.原创 2017-11-08 16:49:31 · 924 阅读 · 0 评论 -
Lazarus和Delphi中一些函数的对应关系
Lazarus函数 所在单元 Delphi中的对应函数 AppendPathDelim LazFileUtils IncludeTrailingBackSlash原创 2017-11-04 09:43:00 · 1627 阅读 · 0 评论 -
避免StringList将空格识别为分隔符
正常情况下,用Delimiter对字符串进行分隔时,无论分隔符为什么,空格都会自动按分隔符处理。设置Stringlist.StrictDelimiter := True;可以避免这种情况。示例代码:procedure TForm1.btn1Click(Sender: TObject);var s : TStringList;begin s := TStringList.Cr...转载 2018-03-25 11:27:53 · 1222 阅读 · 0 评论 -
Delphi 的内存操作函数:复制内存
Delphi 的内存操作函数:复制内存MoveMemory、CopyMemory 的功能是一模一样的, 都是复制内存, 都是调用 Move 过程;MoveMemory、CopyMemory 操作指针; Move 操作实体.转自《万一的Delphi博客》转载 2010-10-31 21:42:00 · 3221 阅读 · 0 评论 -
在Lazarus中使用打印机
打印机控制仍然使用Printer单元,但是如果直接使用Printer单元的话会提示对象没有初始化,在使用Printer单元之前需要先加入Printer4Lazarus包。方法为:在“Project”菜单里打开“Project Inspector”,选中“Required Packages”分支,单击“Add”按钮,找到“Printer4Lazarus”包,添加。之后使用Printer对象的方法和De原创 2017-04-22 22:24:45 · 966 阅读 · 1 评论 -
升级Lazarus自带的FPC编译器版本
从Lazarus官方网站上下载的安装程序通常已经自带了FPC的编译器,比如http://sourceforge.net/projects/lazarus/files/上目前最新的0.9.28.2带的是FPC2.2.4,而现在FPC已更新到2.4了。从FPC网站http://www.freepascal.org/download.var上下载编译器,并安装。假设我们使用了默认的c:/fpc作为安装目录。打开Lazarus,菜单:环境->选项在IDE Options对话框左侧的树状列表中选中“环境/文件”,设置原创 2010-09-18 17:29:00 · 3597 阅读 · 0 评论 -
在Ubuntu下安装FPC编译器
1. 从http://sourceforge.net/projects/freepascal/files/Linux/下载最新版本的tar包 2. 解压文件 3. 打开终端窗口,进入解压出的文件保存的目录,运行sudo sh install.sh,跟随提示进行安装。原创 2010-12-22 00:54:00 · 2228 阅读 · 0 评论 -
使用Delphi自带的TUDPSocket收发数据
摘自:http://moosewoler.blog.163.com/blog/static/6986605200801241719611/ 作者:Moose W. Oler 1. 通过参考VC++的范例程序得知,UDP通信时,server端要做的工作有:open->bind->send/recv->close,其中bind这步很重要,它将一个socket绑定到一个本地地址。 2. TUDPServer是继承于TCustomIPClient的。缺少bind这一步过程,被设计为只能当作一个客户端来用。转载 2011-01-16 11:24:00 · 10678 阅读 · 0 评论 -
当一个程序需要阻止屏幕保护程序一段时间时,有以下两种方法
第一种方法是使用API函数SystemParametersInfo来禁止屏幕保护程序,最来再激活它。 使用这种方法,你只最简单地在Form.OnCreate中加入禁止代码,在Form.OnDestroy加入激活代码: -------------------------------------------------------------------------------- TMyForm = class(TForm) ... procedure FormCreate(转载 2011-01-20 21:51:00 · 4036 阅读 · 0 评论 -
显示和隐藏鼠标指针
调用ShowCursor函数。 Windows单元 function ShowCursor; external user32 name 'ShowCursor';原创 2011-01-20 22:41:00 · 6206 阅读 · 0 评论 -
在Delphi 2010中安装ShellTreeView等控件
找到dclshlctrls.dproj打开,并安装dclshlctrls.dpk控件包即可通常这些文件位于C:\Program Files\CodeGear\RAD Studio\6.0\Demos\DelphiWin32\VCLWin32\ShellControls\目录下原创 2012-07-18 15:19:51 · 3177 阅读 · 0 评论 -
解决Delphi 2010启动时出现cannot create xxxx\EditorLineEnds.ttr问题
由于在Windows安装了最近的更新(KB2982791, KB2970228)后,Delphi的IDE需要创建的一个文件%TEMP%\EditorLineEnds.ttr会被系统锁定,导致除非重新启动操作系统,否则Delphi 8~2010无法启动两次。Delphi的IDE在启动时提取了一个字体资源到%TEMP%\EditorLineEnds.ttr,然后使用AddFontResou翻译 2014-09-01 10:18:06 · 17526 阅读 · 2 评论 -
解决Delphi 2010启动时卡死并报“displayNotification: 堆栈溢出”错误
1. 清理IE的历史记录,删除浏览器缓存(不需要清cookie) 2. 禁用startpage 2.1 从 Delphi 2010 启动菜单上点右键 -> 查看属性->快捷方式->目标: "C:\Program Files\CodeGear\RAD Studio\7.0\bin\bds.exe" -pDelphi 这里已经有了一个启动参数: -pDelphi; 当然也可以是: -pD转载 2015-04-19 22:17:54 · 4514 阅读 · 0 评论 -
减小新版Lazarus编译的可执行文件的体积
新版本Lazarus中Project Options界面的选项略有改动在Project Options对话框中,选择Compiler Options下的Debugging项目清除“Display line numbers in run-time error backtraces (-gl)”和“Generate debugging info for GDB (slower / increa原创 2015-07-22 13:19:39 · 2351 阅读 · 0 评论 -
解决Delphi的TAnimate控件的Common AVI在Vista以后版本中不能正常工作的问题
解决方法:在窗体上放置控件TShellResources(Win32页)或直接在引用中增加单元ShellAnimations,两种方法是一样的。这个单元会在编译时将新的动画资源文件包括在内。来源:http://stackoverflow.com/questions/1492799/how-do-i-get-tanimates-common-avis-to-work-on-vis转载 2016-05-31 00:50:20 · 1425 阅读 · 0 评论 -
将Lazarus的IDE窗体变为停靠窗体
在安装目录,如C:\lazarus\components\anchordocking\design里找到anchordockingdsgn.lpk,安装并重新编译即可原创 2019-01-23 16:25:16 · 1924 阅读 · 0 评论