Skip to main content


What's new

Choose your native language(Google Translate):

Next version, dev branch

next v2.x.x


The Latest release

v2.2.3

2023年8月13日

  • liblcl: 更新至Lazarus 2.2.2版本,Fixes_for_2.2.2_.28merged.29
  • 合并:合并 #101#103两个请求,并作了相关调整,主要是支持arm64(macOS M1)。
  • 增加:新增TFloatSpinEditTDirectoryEditTColorButtonTCheckComboBox组件。
  • 修复:修复i18n包错误(感谢群友Rance)。
  • 优化:调整govcl内部的一些函数名和调用方式。
  • 增加:TDateTimePicker增加HideDateTimePartsTimeFormat属性。
  • 增加:TForm增加OnUTF8KeyPress事件 #126
  • 增加:TPanel增加Canvas属性和OnPaint事件。
  • 增加:TComboBox增加ReadOnly属性。
  • 修改:macOS要求最低10.10。
  • 修复:重构事件回调功能(需要配合最新的liblcl使用),解决一些效率和有可能再次出现的事件错乱问题。
  • 增加:TFlowPanel增加ControlList及相关的类。
  • 增加:一些List类型增加ExchangeMove
  • 删除:移除一些已定义为弃用的类转换函数和stringbool转换函数。
  • 删除:删除vcl/api/memorydll包。
  • 删除:删除伪类的ptr字段。
  • 增加:增加清除事件回调,用于解除某些引用,以便于GC可以回收内存。
  • 增加:TImageList增加一些方法和修改一些参数。
  • 增加:TPageControl增加一些属性、方法和事件。
  • 增加:TMainMenuTPopuMenu增加一些属性和事件。
  • 修改:重构dll调用,不再依赖github.com/ying32/dylib包,并变更导入的API函数调用方式(测试新版本可以在linux下编译通过,也能进入debug模式。注:具体需要多少内存不知道,虚拟机中测试的)。
  • 增加:可通过 -tags hideversion 隐藏控制台输出的liblcl版本号。
  • 增加:TApplication添加一些属性和方法。
  • 增加:TImage添加OnPaintBackgroundOnPaintOnPictureChanged事件。
  • 增加:TClipboard增加AddFormatSetFormatGetComponentSetComponentSetComponentAsText方法。
  • 增加:TCanvas增加TryLockUnlock方法。
  • 调整:将liblclbinres包移到govcl/pkgs/liblclbinres下。

v2.2.0

2022年1月11日

  • liblcl: 更新至Lazarus 2.2版本,Lazarus_2.2.0_release_notesLazarus_2.2_fixes_branch
  • liblcl: 添加OnPrepareCanvas事件(#85)。
  • liblcl: 为TTreeNode添加一些新的方法和事件(#87)。
  • liblcl: 修复添加事件未正确更新引用问题。 感谢群友520反馈。
  • 加载liblcl中的函数不再使用全局变量,因为Go新版本在linux下因为导入太多造成无法编译。
  • 修复ListView的TLVCustomDrawItemEventTLVCustomDrawSubItemEventTTVCustomDrawItemEvent参数类型错误,增加OnDrawItem事件。感谢群友 丰盛辉煌
  • 放出GenlibLCL工具源码 genliblcl2

v2.0.10

2021年3月5日

-- govcl --

  • 限制:要求最小liblcl二进制版为2.0.10。
  • 增加:添加新的WINAPI: SHGetFileInfo及有关的结构和常量。

-- liblcl --

  • 修复:修复TXButton字体属性不生效问题。(感谢群友 520)
  • 修复:修复TDateTime和TDate时间类型数据溢出问题。(感谢群友 唔歌) #61
  • 添加:TBitBtn添加ImageIndex和Images属性。(感谢群友 c2meforyou

-- res2go plugin --

  • 增加:增加go1.16 go:embed支持。

v2.0.9

2021年1月6日

-- govcl --

  • 增加:TGIFImageTIconTJPEGImageTPictureTPngImageTBitmapTStringListTStrings增加LoadFromBytes方法,用于简化加载。
  • 增加:TForm增加被动方法CreateParams,用于创建窗体时修改一些窗体信息,例子参见:createparams
  • 修复:修复第三库richmemo在Windows下某些值溢出问题。

-- res2go --

  • 移除:正式移除已经标记为弃用的res2go命令行工具源码。

v2.0.8

2020年11月12日

-- govcl --

  • 修复:修复事件id在某些情况下会冲突,感谢Qomos
  • 增加:TColorBoxTComboBoxTDateTimePicker增加OnCloseUp事件。
  • 增加:TRadioGroup增加OnSelectionChanged事件。
  • 恢复:恢复之前误删除的某些属性。

-- res2go --

v2.0.7

2020年9月30日

-- govcl --

  • 增加:TClipboard导出GetFormat方法。
  • 修复:修复TClipboard.AsText超大字符串读取产生访问异常。

v2.0.6.2

2020年8月28日

-- govcl --

  • 增加:vcl包添加全局变量DEBUG,默认为false,当从资源中构建Form发生错误时可以打印完整堆栈信息。
  • 修复:修复liblcl在某些情况下事件的hash冲突,造成事件绑定错乱(感谢群友ωhī t é提供的测试例子)。

-- res2go --

v2.0.6

2020年8月23日

-- govcl --

  • 限制:liblcl二进制要求>=2.0.6。
  • 添加:新的tag:finalizerOn默认不开启,开启后,非组件Newxxx之后无需手动调用Free(实验性)。
  • 删除:TCanvas移除TextRect3方法,之后改用TextRect2替代。
  • 修改:TCanvas修改TextRect2方法参数text *string-> text string
  • 增加:TImageButton支持纵向排列的图片,优化内部绘制。
  • 增加:TClipboard增加了FindPictureFormatIDFindFormatIDGetAsHtmlSupportedFormatsHasFormatNameHasPictureFormatSetAsHtml,重构了HasFormat的实现,并调整了Formats的返回类型。
  • 增加:TImageList增加了StretchDraw, AddSliced方法。
  • 增加:所有继承自TControl的添加AnchorSame, ScaleDesignToForm, ScaleFormToDesign, Scale96ToForm, ScaleFormTo96, Scale96ToFont, ScaleFontTo96, ScaleScreenToFont, ScaleFontToScreen, Scale96ToScreen, ScaleScreenTo96, AutoAdjustLayout, FixDesignFontsPPI, ScaleFontsPPI方法。
  • 增加:TColorDialog添加CustomColors属性。
  • 增加:所有继承自TWinControl的组件添加PaintTo方法。
  • 增加:TFormTFrame增加DesignTimePPI属性。
  • 增加:TListView添加新的方法:GetHitTestInfoAt, GetItemAt, GetNearestItem, GetNextItem,新的属性:ColumnCount
  • 增加:TTreeView添加新的方法:GetHitTestInfoAt
  • 删除:删除memloaddll例子及amd64下的代码。
  • 修改:listviewvirtualdata例子,OwnerData为true时,Windows下增加模拟CheckBox功能。
  • 修复:gdiptest例子增加绘制一个按钮并响应单击事件演示。
  • 调整:调整TGraphic、TJPEGImage、TPngImage、TGIFImage、TBitmap、TIcon的基类为IGraphic。

-- res2go --

  • 增加:新的res2go-IDE插件,目前仅在群里测试,使用说明,后期会逐步废弃res2go命令行工具。

v2.0.5

2020年7月27日

-- govcl --

  • 限制:要求最小liblcl二进制版为2.0.5。
  • 添加:TListViewTTreeViewTListItemTTreeNode添加一些新的方法和属性。
  • 修复:liblcl:修复rtl.SysOpen在Windows下包含中文时打开失败问题(#42)。
  • 增加:添加一个simplecalc例子,主要用于另一种自动布局演示。
  • 增加:TListColumn添加SortIndicator属性。
  • 增加:TMemo添加Append方法。
  • 删除:移除一些未使用的枚举、事件和类型定义。
  • 增加:TStringGrid添加更多的属性和方法。演示例子:grid/stringgrid2
  • 删除:移除一些未使用的事件。
  • 修改:修复一些事件参数不正确问题。
  • 添加:TStringsTStringList添加新的方法和属性:AddStrings, AddStrings2, AddStrings3, AddPair, AddPair2, NameValueSeparator
  • 添加:vcl包添加新的对话框函数:PasswordBox, InputCombo, InputComboEx
  • 修改:TStringsTStringList更改继承自IStrings,并修改所有与之相关的参数类型变更为IStrings
  • 修改:TMemoryStream更改继承自IStream,并修改所有与之相关的参数类型变更为IStream
  • 增加:TComboBoxTColorBoxTDateTimePickerTComboBoxEx增加OnDropDown事件。
  • 增加:TMonthCalendarTDateTimePicker添加了一些属性、方法和类型。

-- res2go --

  • 增加:添加一些新的TStringGrid事件。
  • 增加:支持导出OnDropDown事件。
  • 删除:删除选项:outresscalepauseusestrencryptoutmain

v2.0.4

2020年7月10日

-- govcl --

  • 修改:liblcl:切换至Lazarus 2.0.10版本编译,Fixes for 2.0.10
  • 限制:要求liblcl二进制版本>=2.0.4
  • 修复:修复新添加的组件未注册问题。
  • 修改:TMovedEvent事件由3个参数变更为4个参数,添加isColumn参数。
  • 变更:TStringGridTDrawGrid移除SetOnColumnMovedSetOnRowMoved方法,并添加新的方法:SetOnColRowMoved
  • 修改:更新liblcl事件回调。
  • 添加:TPrinter添加SetPrinter方法。
  • 实现:Linux:Gtk2:TMiniWebview:支持LoadHTMLExecuteJS方法。
  • 添加:添加新的包:pkgs/wintaskbar;添加新的例子:windows/taskbar
  • 修改:liblcl:Windows下使用LCL默认字体。
  • 增加:vcl包添加新的函数:FindControl,FindLCLControl,FindOwnerControl,FindControlAtPosition,FindLCLWindow,FindDragTarget
  • 迁移:移动liblcl源代码和makeCHeader工具到新的仓库:https://github.com/ying32/liblcl
  • 修改:重命名包名:multilang -> i18n。
  • 增加:TFormTScreen增加ActiveControl属性。
  • 增加:TFormTLabelTStaticText增加FocusControl属性。
  • 修改:SelectDirectory2参数变更,因为不再需要兼容Delphi。
  • 移除:删除TSelectDirExtOpt类型及其枚举值,因为不再需要兼容Delphi。
  • 移除:删除TSelectDirExtOpts类型,因为不再需要兼容Delphi。
  • 修改:TTreeView的折叠箭头使用LCL默认值。

-- res2go --

  • 增加:支持更多的事件。

v2.0.3

2020年6月22日

-- govcl --

  • 添加:TTreeView添加AlphaSort方法。
  • 修复:修复一些枚举常量未导出问题。
  • 添加:TRadioButton和TCheckBox添加OnChange事件。
  • 增加:TMiniWebViewExecuteScriptExecuteJS方法支持返回值。
  • 增加:部分控件添加Showing属性。
  • 增加:win包中新添加一些Windows API、常量、类型。
  • 删除:移除Application.SetFormScaled,使用原生的Application.SetScaled
  • 增加:添加Application.Handle和Application.SetHandle,仅Windows有效。
  • 增加:添加一些其它接口。
  • 增加:增加一个Windows\nppPlugins例子,主要测试在第三方程序中使用govcl的可行性。
  • 增加:添加一个生成liblcl C语言头文件工具(Tools/makeCHeader),并提供完整的c语言头文件,位于Tools\makeCHeader\test\liblcl.h,方便其他支持c的语言调用liblcl。
  • 修改:macOS限制目标系统版本为10.8。
  • 删除:移除TMessageEventg事件。
  • 新增:新增控件:TCheckGroup、TToggleBox。
  • 增加:更新liblcl源代码,预添加异常处理机制(未启用,主要是因为考虑到生成的dll文件大小会增加不少)。
  • 替换:因为一些其他的原因,决定替换原来的TGuage组件内部为一个第三方的TATGuage,组件包:ATFlatControls
  • 添加:添加工具Tools/genbinres,用于将liblcl-x.x.x.zip格式的liblcl预编译二进制生成github.com/ying32/liblclbinres包,以便将liblcl打包到可执行文件中。
  • 添加:添加编译约束指令tempdll,用于将liblcl打包到可执行文件中,然后运行时释放到临时目录中,使用说明

-- res2go --

  • 修复:修复在非Windows系统下的控台中显示乱码问题。
  • 修复:修复-scale选项。
  • 增加:支持导出控件:TCheckGroup、TToggleBox。

注:res2go工具将不再提供预编译二进制了,可以自行编译,方法参考Tools\res2go\src中的README.md(不提供的原因:1、编译超简单。2、因为你要用到res2go,就说明你已经安装了Lazarus了,已经具备编译条件了。)。

v2.0.2

2020年5月15日

-- govcl --

  • 限制:当前版本限制liblcl二进制最低版本为2.0.2(因为liblcl中有改变)。
  • 添加:尝试添加一个TRichEdit组件(一个第三方组件,macOS下动态创建的还有问题,原因不明)。
  • 添加:添加一个richedit例子。
  • 删除:删除pkgs/skinh包,及相关例子,因为这个只能在Windows 32bit下使用,还是一个第三方的,效果也不好。
  • 添加:补充一些LCL控件的属性,主要是原来Delphi/VCL控件没有的属性。
  • 添加:添加新的组件:TSelectDirectoryDialog
  • 添加:添加所有基于TControl的控件属性:AnchorSideLeftAnchorSideTopAnchorSideRightAnchorSideBottomClientOriginChildSizingBorderSpacingAnchorSide
  • 添加:添加所有基于TControl的控件方法:AnchorToNeighbourAnchorParallelAnchorHorizontalCenterToAnchorVerticalCenterToAnchorSameAnchorAsAlignAnchorClient
  • 删除:移除所有基于TControl的控件属性:Margins,因为不再需要兼容Delphi/VCL了,用BorderSpacing属性替代即可。
  • 改变:重命名工程lcl.lprliblcl.lpr
  • 添加:IControl添加一些属性和方法接口。
  • 添加:添加一个fileshelltree例子(以树的形式显示当前目录及子目录)。
  • 修改:修改导出的函数DSynchronize,当前是主线程时则不使用线程同步,而是直接调用。
  • 修改:当copyStr的strLen参数为0时直接返回空字符串(位于api包中)。
  • 修复:修复一些控件在设计时状态下绘制不正确。
  • 禁用:禁用Application.CreateForm的"afterBindSubComponentsEvents",因为有冲突,感谢cyanBone
  • 修复:修复在macOS下因为Lazarus控件GetTextLen方法返回错误的长度(似乎返回的是一个Unicode UTF16的长度,正确的应该返回UTF-8的长度,而且只有macOS下才有),感谢cyanBone
  • 添加:rtl包中添加MainThreadIdCurrentThradId函数。
  • 修复:修复WindowsTMiniWebview边距不正确。
  • 修复:调整并修复在某些情况下字符串内存被释放。

本次的更新会造成生成的可执行文件增加1M左右。

-- res2go --

v2.0.1

2020年5月6日

  • 修复:删除了go.mod文件,修复因为go.mod引起的不能拉取代码问题。

v2.0.0

2020年4月16日

-- govcl --

  • 移除:移除Delphi/VCL的支持,只专注Lazarus/LCL的跨平台方案。
  • 修复:修复一些类的构造函数参数缺失问题。
  • 修改:vcl.RunApp支持传入func()
  • 添加:rtl包中intf.go添加一些与SendMessage或者PostMessage参数相关的函数。
  • 修复:修复types包中的WPARAM类型命名错误。
  • 修改:将所有枚举类型的值更改为lcl的。
  • 增加:TListView增加OnDataHint事件。
  • 修改:liblcl源码使用lazarus 2.0.8编译,相关修复列表:Lazarus_2.0_fixes_branch

本次的更新会造成生成的可执行文件减小2.7M左右。

-- res2go --

  • 增加:增加TSelectDirectoryDialog导出。

  • 修改:使用lazarus 2.0.8重新编译。

last-vcl-support分支(last-vcl-support branch)

  • 修改:vcl.RunApp支持传入func()
  • 添加:rtl包中intf.go添加一些与SendMessage或者PostMessage参数相关的函数。
  • 修复:修复types包中的WPARAM类型命名错误。

v1.2.10.2

2020年3月25日

-- govcl --

最后一个支持Delphi/VCL的版本: last-vcl-support

  • 添加:Colors包添加RGBRGBToBGR函数。
  • 修改:nswindowTest例子增加直接使用objective-c操作NSWindow
  • 添加:添加一个winappres/uac包,默认的资源。
  • 添加:win包添加ShellExecuteExRunAsAdministrator函数和一些ShellExecuteEx所用到的常量和结构。
  • 修复:修复win.ResourceToBytes的命名错误。
  • 修改:当As<classname>转换时,不再先分配内存,如果类实例指针为0则返回nil,否则分配内存后再返回。
  • 修改:自动绑定事件:过滤首字母不为"A-Z"的字段。

-- res2go --

v1.2.10

2020年3月20日

-- govcl --

  • 修改:liblcl:TListViewTTreeView一些默认属性修改,ScrollBars默认为ssAutoBoth。非Windows下TTreeView的TreeLinePenStyle默认值为psSolidTTreeView.ExpandSignType默认为tvestArrowFill.。
  • 修复:修复macapp打包时执行命令传入的参数会在某些时候不正确。
  • 修改:Linux下的TMiniWebview调用Navigate时不再设置控件焦点。
  • 修改:修改自动绑定事件当没有找到事件类型时,检测事件类型起始是否为“0-9,_”,如果是则不打印错误提示。
  • 增加:使用Go Graphics - 2D绘制并显示到GoVCL的控件上,例子见samples/drawusegg,演示视频见samples/drawusegg/video.mp4
  • 增加:使用Go Image Filtering Toolkit处理图片滤镜并显示到GoVCL的控件上,例子见samples/drawfilterusegift,演示视频见samples/drawfilterusegift/video.mp4
  • 增加:TForm增加InheritedWndProc方法,用于在TFormOnWndProc中使用。
  • 修改:改变TFormOnWndProc回调函数,移除handled参数。
  • 增加:添加一个vcl/bitmap包,用于将Go的Image转为VCL/LCL的图像。
  • 增加:使用Charts for Go绘制图表并显示到GoVCL的控件上,例子见samples/drawchart
  • 增加:types包中添加新的类型TSet,并添加相关函数NewSet、方法TSet.IncludeTSet.ExcludeTSet.In,如:style := types.NewSet(types.xx),style.Include(types.xxx),style.In(types.xx)。用于简化Delphi/Lazarus的集合操作,原来使用了的可能需要修改为新的方式。
  • 丢弃:rtl.Includertl.Excludertl.InSets标记为Deprecated
  • 增加:添加vcl/locales包及默认的子包zh_CN用于本地化一些对话框内的文本(macOS下的有些暂时没办法,因为被写死了,所以不好翻译)。
  • 修改:修改samples/menu例子,增加在macOS下的Application菜单中添加项目。
  • 增加:TBitmap添加新的属性TransparentModeAlphaFormat(仅libvcl)。
  • 增加:添加一个vcl.LclLoaded函数。
  • 增加:vcl/bitmap包添加新的函数ToBitmap2ToGoImage
  • 增加:TBitmap添加BeginUpdateEndUpdateClear方法(仅liblcl有效),LoadFromDevice
  • 修改:重构事件中ID的获取(主要是解决以前在某些情况下造成事件关联不对的问题)。
  • 添加:所有对象添加Is,用于简化对象的判断,如:button.Is().Control()
  • 修改:所有对象都添加一个As<classname>函数,用于动态转换对象,如:vcl.AsButton(sender)。所有对象的<classname>FromInst, <classname>FromObj, <classname>FromUnsafePointer标记为弃用。
  • 添加:TStringsTStringList添加SSetS用于简化原来的StringsSetStrings方法。
  • 修改:调整自动绑定事件,当不使用资源构TForm或者没有找到对应TForm资源时默认在创建完后绑定子组件事件。
  • 添加:liblcl:TMiniwebview初步支持Linux下的gtk3。
  • 添加:THeaderControl添加Sections属性。
  • 添加:添加一些容器控件的OnAlignPosition事件,当子控件的Align属性为AlCustom时会触发父控件的OnAlignPosition事件,用法参见samples/layout
  • 添加:添加一个samples/listboxcustomdraw2TListBox自绘演示。
  • 添加:TCheckListBoxTColorListBoxTListBox控件添加ItemAtPosItemRect方法。
  • 添加:添加intfTest例子,暂时只演示了跨平台的屏幕截图。
  • 添加:添加nswindowTest例子,测试操作NSWindow,并演示一个macOS下的无标题栏样式窗口。
  • 添加:添加一些平台相关的接口,比如:linux下获取GdkWindowGtkWidget, X11 Window Id,macOS下NSObjectNSWindow
  • 移除:移除GetGDKWindowXID函数,改使用TForm.PlatformWindow().XID()
  • 添加:添加一个新的控件TXButton,演示例子见samples/xbuttonTest

本次的更新会造成生成的可执行文件增大400+kb左右。

-- res2go --

v1.2.9

2020年3月6日

-- govcl --

  • 增加:添加新的枚举类型:TDefaultMonitor
  • 增加:TForm添加DefaultMonitorMonitor属性。
  • 增加:改变事件id的获取。
  • 增加:vcl包添加一个RunApp函数用于简化main函数中创建Form对象,用法参见samples/basicResForm例子。
  • 增加:添加一个新的包pkgs/libname函数,用于加载指定位置的libvcl或者liblcl,用法参见samples/customLibTest例子。
  • 变更:vcl/exts/macapp包移至pkgs/macapp
  • 增加:TCanvas添加Pixels属性。
  • 增加:添加一个新的drawrose例子。
  • 修复:修复Windows下TMiniWebview在64位程序中不能设置IE版本。
  • 增加:win包中增加一个GoPtrStr函数。
  • 变更:vcl/samples/mp3Player/bass包移到pkgs/bass
  • 变更:vcl/samples/simplelibvlc/libvlc包移到pkgs/libvlc
  • 变更:vcl/exts/skinh包移到pkgs/skinh
  • 变更:vcl/exts/wke包移到pkgs/wke
  • 变更:vcl/exts/miniblink包移到pkgs/miniblink
  • 变更:vcl/exts/winappres包移到pkgs/winappres
  • 变更:vcl/exts/multilang包移到vcl/multilang

-- res2go --

  • 更新:更新winappres包路径。

v1.2.8

2020年3月3日

-- govcl --

  • 增加:liblcl:部分控件增加ParentBackground属性。
  • 修改:调整liblvclliblcl资源窗口构建部分。
  • 修改:Application.CreateForm方法今后不需要传入指定的字节数据了,res2goUI设计器在保存时会添加注册相关的代码。
  • 移除:移除掉原来自己处理缩放相关(vcl.Application.SetFormScaled无效了,待我有2k显示器后再测试这个问题)。
  • 增加:liblcl:TMiniWebview初步支持Linux。
  • 增加:添加一个Windows下listviewitemedit例子,用于双击项目直接编辑数据。
  • 增加:win包:添加一些Windows下TListView API。
  • 增加:对types包中的一些类型定义增加了一些对应的方法函数。
  • 修改:调整go字符串与libvcl/liblcl交互的方式。
  • 增加:Windows下的TMiniWebview增加SetIEVersionGetIEVersion方法,并更新MiniWebview例子。
  • 增加:rtl包中增加了一些文件名相关的函数。
  • 尝试:尝试支持Windows 64位的内存dll加载模式(未解决)。
  • 增加:TActionTMenuItem组件添加AutoCheck属性。
  • 增加:TCanvas增加PolygonPolylinePolyBezierPolyBezierTo(仅限libvcl)方法。
  • 修改:dylib包移动到新的仓库github/ying32/dylib
  • 修复:修复libvcl的TMiniWebview不响应按键事件。
  • 尝试:尝试解决windows下liblcl TMiniWebview不响应按键问题(未解决)。
  • 修改:liblcl:Windows下的TTrayIcon创建时,默认加载Application的Icon。
  • 增加:添加一个vcl.RegisterFormResource,用于CreateForm时自动查找对应资源。
  • 增加:添加一个简易的markdown编辑器,用于演示。
  • 增加:liblcl:TFom添加兼容Delphi的方法ScaleForPPIScaleForCurrentDpi
  • 增加:添加一个formscale例子。
  • 增加:Tools目录下添加一个libBuild工具,用于命令行构建libvcl或者liblcl。
  • 修改:exts/tools包更改为exts/macapp包,同时更新macapp里包的打包方式和添加app图标。
  • 修改:Windows下TMiniWebview不再屏蔽右键和鼠标点击选择功能。
  • 增加:增加一个Windows下的winappres资源包,用于快速引用默认的syso文件。
  • 增加:Tools目录下添加一个LazarusPatch工具,用于对Lazarus源代码打补丁,以兼容Delphi或者其他的。
  • 增加:Tools目录下添加一个winRes模板,用于生成windows下的syso文件。
  • 增加:编译liblcl时添加USED_BY_LAZLOGGER_DUMMY指令用于屏蔽lcl的调试信息(似乎无效)。
  • 增加:liblcl兼容Delphi资源中的TListView的ItemData和TTreeView的NodeData,需要使用Tools/LazarusPatch打补丁后重新编译。
  • 更改:启用新的GoVCL图标,图标设计来自Free Logo Design

-- res2go --

  • 删除:移除-outbytes选项,总是为True
  • 增加:增加注册当前Form资源,用于自动加载。
  • 修改:-outres参数改为添加一个winappres包。

v1.2.7

2020年1月20日

-- govcl --

  • 修复:修复go版本>=1.13时,liblcl中字符串被GC回收问题。

  • 修改:更新miniblink扩展包,测试x64基本没问题,但x86仍有会有错误框弹出。

  • 修改:自动绑定事件中, TFrame的初始事件名称为OnFrameCreate。

  • 修复:liblcl:尝试修复MacOS下文本控件Text属性中文错误问题。

  • 修改:liblcl:切换至Lazarus 2.0.6版本编译,Fixes for 2.0.6

  • 调整:文本控件超大字符串获取问题。

    -- res2go --

  • 修复:修复TFrame可能转换不正确。

v1.2.6.4

2019年8月21日

-- govcl --

  • 删除:libvcl/liblcl:不再导出"DGetParam"函数,使用go原生获取。

  • 修改:libvcl/liblcl:"SendEventSrc"函数调整为最大支持12个参数,与导出的”MySyscall“函数支持参数个数保持一致。

  • 调整:govcl最低要求liblcl或者libvcl二进制版本为1.2.6。

  • 增加:添加支持Window 32位libvcl/liblcl内存加载方式。需要在编译命令中加入-tags memorydll标识,具体请参见gitee上的WIKI和例子。

  • 增加:添加一个Windows 32位下内存加载libvcl/liblcl示例:memloaddll。

  • 增加:添加一个TValueListEditor示例valuelisteditor。

  • 增加:添加一个Windows下注册全局热键示例:registerHotKey。

  • 增加:win包添加一些注册热键相关的常量与API。

  • 增加:rtl包添加一个ShiftStateToWord函数。

  • 增加:添加一个自绘时钟示例(见samples/clock示例)。

  • 增加:新增TComboBoxEx、TFrame及相关类、属性、方法、事件。

  • 调整:可从资源中加载TFrame(见samples/res2goTest/Test示例)。

  • 增加:添加一个TComboBoxEx组件示例。

  • 修复:修复部分控件 GetTextBuf、GetSelTextBuf不生效问题。

  • 修复:修复部分控件的Text属性因为超大字符串造成内存访问错误。

    -- res2go --

  • 增加:支持TComboBoxEx导出,添加默认构造方法。

v1.2.5

2019年7月1日

-- govcl --

  • 新增:增加一个listviewadv1例子。

  • 新增:liblcl:添加部分控件的“AddItem”方法。

  • 修复:liblcl:“TDateTime”时区问题。

  • 新增:liblcl:支持“TCalendar”构建(实际为“TMonthCalendar”)。

  • 新增:libvcl:添加兼容Lazarus设计器的TCalendar类。

  • 新增:liblcl:为所有继承自TControl的组件添加“Margins”属性。

  • 新增:liblcl:添加兼容Delphi的“TMargins”类。

  • 修改:独立vcl.ThreadSync的回调。

  • 修改:libvcl:使用SendMessage替代TThread.Synchronize,用来解决某些情况下异常问题,并保留原有方法并命名为vcl.ThreadSyncVcl。

  • 增加:新增一个扩展组件机制,在不修改原govcl代码的情况下扩展组件,演示例程为myext。

    -- res2go --

  • 修复:遇到字符串的“+”符号时异常问题。

  • 增加:支持liblcl“TCalendar”组件导出。

  • 修改:支持指定组件包名。

v1.2.4

2019年6月3日

-- govcl --

  • 修复: Windows下liblcl某些控件不能正确应用Windows Theme问题。

  • 新增:win包添加Windows API: EnumWindowsEnumChildWindowsSetBkMode以及一些Windows下ListView常量。。

  • 新增:添加一个simplelibvlc测试例程(已在Windows、MacOS、Linux Mint下测试通过,linux表现不佳)(主要测试可行性)。

  • 调整:由于sourceforge.net已经可以访问,liblcl macOS下的二进制已经由2.0.2编译。

  • 新增:添加一个新包floatpatch:用于解决syscall不能返回浮点结果的问题(不支持arm)。

  • 修改:Windows下的libvcl和liblcl移除TMiniWebView的边框和鼠标右键支持。

  • 新增:添加GetGDKWindowXID解决linux下获取控件的X11 ID。

  • 新增:添加一个新例子:listviewadvcustomdraw。

  • 新增:添加TForm的ShowInTaskBar属性(用来兼容Lazarus)。

  • 新增:Windows下的TMiniWebView添加ExecuteScript、ExecuteJS、LoadHTML方法及OnJSExternal事件,用法参考samples\miniwebview例子。

  • 新增:添加一个新的组件:TTaskDialog以及TTaskDialog对应例子samples\taskdialog。

  • 修改:进一步完善macOS下TMiniWebview组件并移除carbon支持。

  • 重要:不再提供macOS 32位的预编译二进制liblcl.dylib了,如有需要可自行编译。

    -- res2go --

  • 修复:res2go内存访问错误。

  • 调整:提前-outres参数语句

  • 调整:加载dfm、lfm、lpr、dpr文件访问dpr文件访问模式。

  • 增加:支持导出TTaskDialog。

v1.2.3

2019年5月13日

-- govcl --

  • liblcl添加TApplication.RestoreTopMosts方法,用来兼容libvcl。

  • 自动绑定事件中,如果组件不支持某个事件则打印提示。

  • "liblcl"源码更新至Lazarus 2.0版本LCL库,Lazarus_2.0.0_release_notesLazarus_2.0_fixes_branch

  • 添加一些TTreeView常量和结构。

  • TListView的TListItem添加ListView属性。

  • TTreeView的TNodeItem添加TreeView属性。

  • 添加一个treeview_checkbox例程,只适合用Windows。

  • 添加一个pagecontrolwizard演示例程(macOS和linux有bug)。

  • 调整Windows下dll搜索,当exe目录下有符合条件的liblcl.dll则优先加载。

  • liblcl源代码已经采用Lazarus2.0.2编译

  • macOS下的liblcl现在提供cocoa 64位的dylib

    -- res2go --

  • 添加“-pkgname”选项。用于生成的Form相关的go文件包名,不包括main.go文件。

  • 添加“-watch”参数,用于监视“-path”目录的文件改变,并自动转换。

v1.2.2

2018年12月1日

-- govcl --

  • 自动绑定事件增加:当“afterBindSubComponentsEvents=true”时自动设置组件的名称。

  • libvcl: TThumbBarButton增加ButtonState属性。

  • 更加完善的mp3Player例子。

  • 增加vcl.SelectDirectory3函数,用于简化vcl.SelectDirectory2函数。

  • 添加“rtl.LibStringEncoding”和“rtl.LibVersion”两个函数,用于获取当前库信息。

  • 修复“multilang”包,当前可执行文件目录不存在“Langs”目录时程序崩溃的错误。

  • 多国语言支持TStrings类型本地化,例如:TComboBox.Items、TListBox.Items。

  • 添加新的jsonToGo、jsonViewer例子。

    • jsonToGo是用于将一段json数据转为Go的结构,以方便json.Unmarshal填充。
    • jsonViewer是用于将一段json数据以树的形式显示
  • 添加一些剪切板格式常量。

    -- res2go --

  • 添加“-pause”选项。主要用于集成在IDE内的。选项说明:结束后根据选项暂停,比如: -pause "ew",表示有错或者警告,可选为“e”,“w”,“a” e=错误,w=警告,a=忽略其它选项,总是显示。

  • 添加支持Delphi编译,已经测试在Delphi 10.3 社区版编译通过,并简单测试转换结果。

  • 根据“.lpr”或“.dpr”文件中的内容动态删减“main.go”中“vcl.Application.CreateForm”。

v1.2.1

2018年11月20日

-- govcl --

  • govcl增加的“arm”编译约束。
  • liblcl类补丁,兼容Delphi。
  • 添加linux下获取当前系统语言。
  • win包添加新的winapi: SetForegroundWindow
  • libvcl库添加新的png解码器“TPortableNetworkGraphic”,用来兼容liblcl。
  • 使用新的“hash”函数传递事件回调ID,解决上下文信息丢失问题。
  • 修改liblcl窗口默认宽度=678和高度=321。
  • api包中不再直接公开eventCallbackMap、messageCallbackMap两个变量,并使用EventCallbackOf、MessageCallbackOf替代。
  • api包DSynchronize函数,当执行完后删除事件ID。
  • 重构“事件关联”功能。
  • “事件关联”增加tag字段用于res2go共享事件,支持多个事件共享。
  • rtl包添加一个"IsNil"函数,用于判断interface{}为空。
  • libvcl与liblcl移除TGoEvent类型,改用方法地址替代TGoEvent 。
  • libvcl修改AllowDropFiles属性read方法不再使用变量。并修复样式改变的情况下失效问题。
  • liblcl使用宏简化事件代码。
  • 添加一个新的TMiniWebview组件,支持liblcl/libvcl 32bit/64bit, macOS32/cocoa接口。
  • 调整exts/tools包中mactool,如果存在则复制$GOPATH/bin/liblcl.dylib至当前可执行文件目录。
  • liblcl:修复TCanvas.TextRect2。
  • 添加新方法:TCanvas.TextRect3。
  • liblcl: TStringGrid、TDrawGrid、TValueListEditor添加OnDrawCell事件。
  • 添加新枚举类型TGridOptionLz,用于liblcl库Grid控件Options属性。因为无法兼容Delphi。
  • 添加一个新的drawgrid例子,见samples/grids/drawgrid。
  • 在非Windows下“LazyProc”的Find方法增加互斥锁。
  • 所有libvcl源代码文件编码变更为UTF-8。
  • TApplication.CreateForm参数变化,详细参考注释。
  • 正式移除标记为丢弃的方法: TApplication.CreateFormFromFile、TApplication.CreateFormFromStream、TApplication.CreateFormFromBytes。

-- res2go --

  • 添加linux和macOS编译配置。
  • 修改:检查到不支持的组件后直接停止当前文件转换。
  • 添加检测环境变量“LANG”判断是否为中文系统。
  • 修复“-outbytes”选项保存时太慢的问题。
  • 修复没有“-outbytes”选项时不保存gfm文件问题。
  • 添加新选项“-usestr,默认为true”。
  • 增加支持共享事件导出(支持多个事件,见res2goTest例程)。
  • 添加新选项-origfn,生成的.go文件使用原始的delphi/lazarus单元名,默认为false。
  • 移除“-gui”选项。
  • 修改:“-encrypt”默认为false。
  • 更新res2go二进制,并添加res2go macOS二进制。

v1.2.0

2018年11月5日

  • 修复liblcl在linux和macOS下在协程中使用vcl.ShowMessage或其它模态窗口时应用程序崩溃问题。bug提交来源于issues #14。
  • 限制govcl最要低要求go1.9.0;
  • res2go增加新的选项“-outbytes”。
  • res2go添加新特性, 私有字段,详见“res2goTest”例子。
  • 修复了xunleidownloader例子中的bug。
  • 多国语言包修改:"RegisterLibResouces"的调用移至包内init函数,以后不再需要手动注册了并移除“RegisterLibResouces”函数。
  • “api.DSynchronize”增加互斥锁。防止多个go协程更新造成崩溃问题。
  • res2go说明中增加集成到Delphi/Lazarus IDE的方法。
  • res2go “输入”、“输出”默认目录使用相对路径。
  • 添加新组件:TSpinEdit。并更新stdcontrols例程用于演示新组件。
  • “win”包增加资源相关的api和类型。
  • res2go添加支持“TSpinEdit”组件导出。
  • 增加窗口的消息捕获事件“OnWndProc”。用法例子见“messageTest”。
  • 添加一个新的“message”包,里面包含windows消息常量(linux、MacOS也可用)和VCL消息常量。用法例子见“messageTest”。
  • “win”包增加新api"GetModuleFileNameExW"。
  • 更新windowsProcess和multilanguage例程。
  • 更新go编译约束。

For earlier logs, please check git commit