Sign in Join
Wiki copytemporary

Lazarus 1.6.0 release notes: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11Lazarus 1.6 was released at February 18, 2016.
22
33Statistics:
44
551. commits: 2683
662. log: svn log -r 47337:50707
77
88# LCL Interfaces Changes
99
1010# LCL Changes
1111
1212- Added TFlowPanel in ExtCtrls.pp
1313- The TreeNodes of TShellTreeView are now of type TShellTreeNode. In order to access the nodes as such, you need to explicitely cast the node to TShellTreeNode. The TShellTreeNode class provides the following functions and properties:
1414 - ShortFilename: returns the filename without path.
1515 - FullFilename: returns the fully qualified filename.
1616 - IsDirectory: returns True if the node represents a directory.
1717 - BasePath: returns the basepath of the node.
1818- Added 'iscancel' parameter to QuestionDlg. If no cancel button is explicitely set, mrCancel is returned in case the dialog is closed with ESC or system close button.
1919- Added support for TCustomEdit.TextHint.
2020- Added TTimeEdit in editbtn.pas.
2121
2222# IDE Interfaces Changes
2323
2424- [[Lazarus IDE Tools|Quick fix]] for fpc message *Local variable "i" does not seem to be initialized* inserts an assignment.
2525- Local variable completion (e.g. Complete Code on "i:=3;") now groups variables of same type. You can get the old behaviour in *Tools / Options / Codetools / Code Creation / Group automatically defined local variables*.
2626
2727# IDE Changes
2828
2929- Editor
3030 - Basic multi-caret mode
3131 - Option for multi-line notebook-tabs
3232 - line-number part of gutter now allows to select the current line, or several lines.
3333
3434- Project
3535 - Additions and Overrides are now added as last. Formerly they were added after the inherited and before the custom compiler options.
3636
3737- Messages Window
3838 - The IDE now warns when there are duplicate units or include files in packages.
3939 - Success line. New option to show compiler message "n lines compiled. m sec". *Tools / Options / Messages Window / Show FPC message "lines compiled"*
4040
4141- Desktops
4242 - See [[IDE Window: Desktops|Desktops]]
4343 - Multi-monitor screen layouts are supported by the IDE.
4444
4545- IDE CoolBar and Editor Toolbar
4646 - A new configurable IDE CoolBar replaces the static Toolbar. It shares settings GUI with EditorToolbar which was moved to IDE's codebase. The command set that can be selected was refined. Earlier only IDEMenuCommands could be selected, now a limited selection of all IDECommands.
4747 - EditorToolbar package is empty and deprecated. It's functionality is now part of the IDE. Please uninstall it from the IDE because it will be removed from the 1.8 release.
4848
4949- Object Inspector
5050 - The Boolean property editor now uses a CheckBox by default. A ComboBox with "False", "True" can still be selected in options.
5151
5252- Package editor
5353 - Two separate buttons for adding files were replaced by one button with a dropdown menu. The "Add" and "Add more" buttons can be considered a failed experiment.
5454 - Many usability issues were fixed. The whole tree is not updated any more after each operation and focus stays in right place after them.
5555
5656- Environment
5757 - new Environment setting "Multiple Lazarus instances" to set up what happens if Lazarus is started with a file in command parameter.
5858
5959- [[lazbuild]]
6060 - new option --verbose-pkgsearch to show what packages are searched and found.
6161
6262- lazarus
6363 - new option --force-new-instance to force opening a new instance and ignoring the "Multiple Lazarus instances" option.
6464
6565- Code navigation and completion for class helpers, record helpers and type helpers.
6666
6767# Components
6868
6969## LazControls
7070
7171- Added [[TListViewFilterEdit]], having the same idea as other FilterEdits but working on [[TListView]]. This is still very basic and will be improved later.
7272- All FilterEdits now use TextHint property for the grey '(Filter)' text which is shown when not active.
7373- Added [[TCheckBoxThemed]], a custom drawn CheckBox. It is in development for use as OI Boolean property editor.
7474
7575## Codetools
7676
7777- Support for type, record and class helpers
7878- Support for operator type evaluation "I := A + B;"
7979- Improved support for ObjCCategory
8080- Class completion of properties can use prefixed variable name and const parameter. See Options / Codetools / Class Completion.
8181- New option Options / Codetools / Code Creation / Insert new event methods to section
8282- New option Options / Codetools / Identifier Completion / Miscellaneous / Jump to error
8383- It now finds sources of units installed via fppkg.
8484
8585## Project Groups
8686
8787- New IDE package to manage projects, packages and Pascal files, see [[Project Groups|here]].
8888
8989## Docked Form Editor
9090
9191The package implementing a docked form editor can be found in components/sparta/dockedformeditor/sparta_dockedformeditor.lpk. It makes the most sense with [[Anchor Docking]] but can be used also without it.
9292
9393IMPORTANT: the docked form editor is included in 1.6 but is not stable there and has known bugs that affect its usage. Please do not report issues based on your 1.6 experience but always check against the current trunk where the designer has been improved further. Docked editor bug fixes won't be merged into 1.6 since a lot of them were OS/WS dependent and the LCL code had to be changed as well.
9494
9595If you want to use the docked form editor, you have to use complete Lazarus trunk. Copying the sparta packages from trunk into your 1.6 fixes won't work.
9696
9797## Package Tabs
9898
9999- New IDE package to replace source notebook tabs/pages with buttons sorted by package and name, see [[Package Tabs]].
100100
101101## Favorites
102102
103103- New IDE package to add projects to favorites and keep them up in the "Open" button drop-down menu, see [[Favorites]].
104104
105105## Debugger / win 32
106106
107107The version of gdb shipped with the win32 installer was updated to 7.7.1
108108
109109PRO:
110110
111111- solves some gdb crash issues for all current window versions (7 and up)
112112- solves a bug, that environment changes were not passed on
113113
114114REGRESSIONS
115115
116116- <https://sourceware.org/bugzilla/show_bug.cgi?id=16016> this manifests for example:
117117
118118:* records may be displayed as class and vice versa
119119
120120:* pointer to record may be dereferenced without warning (hiding the fact that a value is a pointer)
121121
122122:* shortstrings may not display correct (they are internally encoded as record)
123123
124124# Changes affecting compatibility
125125
126126## LazUtils
127127
128128- Unit LazUTF8 now sets UTF8 as default codepage when compiled with FPC 2.7+ making programming with Unicode easier, but there are some incompatibilities. Read [[Unicode Support in Lazarus|more]].
129129- There are wrapper functions around LCL, CodeTools and LazUtils for some string functions defined in LazUtils. The wrappers are now deprecated. They can be compeletely disabled by defining "DisableWrapperFunctions". They will be removed in the next release (after 1.6).
130130
131131### SysToUTF8 does not convert
132132
133133Similar: AnsiToUTF8
134134
135135- Old behaviour: SysToUTF8 converted on Windows from system codepage to UTF-8.
136136- New behaviour: Does not change the string (unless you disable the new UTF-8 mode).
137137- Reason: function was mainly used for converting strings from the RTL, which is now talking UTF-8.
138138- Remedy: use function WinCPToUTF8 from unit LazUTF8 or CP1251ToUTF8 from unit LConvEncoding.
139139
140140### UTF8ToSys does not convert
141141
142142Similar: UTF8ToAnsi
143143
144144- Old behaviour: UTF8ToSys converted on Windows UTF-8 to system codepage.
145145- New behaviour: Does not change the string (unless you disable the new UTF-8 mode).
146146- Reason: function was mainly used for converting strings for the RTL, which is now talking UTF-8.
147147- Remedy: use function UTF8ToWinCP from unit LazUTF8 or UTF8ToCP1251 from unit LConvEncoding.
148148
149149### CopyFile behaviour changed
150150
151151- Old behaviour: CopyFile raised exceptions by default when copying failed under arbitrary circumstances.
152152- New behaviour: CopyFile returns False upon all failures, regardless of the reason.
153153- Reason: a function that returns False upon failure should not raise an exception in such cases.
154154- Remedy: an optional parameter ExceptionOnError has been added. Set it to True to get the old behaviour.
155155
156156### Wrappers for string functions are deprecated
157157
158158Various units in LCL, LazUtils and Codetools have wrappers for string functions in LazUTF8 and LazFileUtils. They are now deprecated and the hint after "deprecated" tells where the actual function can be found. The wrappers can be completely disabled by defining "DisableWrapperFunctions".
159159
160160## LCL incompatibilities
161161
162162### QuestionDlg modal result on close by ESC key and system close button changed
163163
164164- Old behavior: the cancel modal result was picked up from the actual button list.
165165- New behavior: the cancel modal result is always mrCancel.
166166- Reason: the ESC or system close button are in a way a third "virtual button" that is always there. If your dialog shows only buttons "Yes" and "No", closing by ESC doesn't really mean any of them.
167167- Remedy: use the new 'IsCancel' parameter to define cancel modal result and get the old behavior.
168168- More information: [[Dialog Examples|Dialog_Examples#QuestionDlg]]
169169
170170## Other Packages and Components
171171
172172### AnchorDocking improved
173173
174174- Due to recent bug fixes in AnchorDocking, your application can be started with slightly changed docked layout (docked window size growing/shrinking).
175175- Remedy: Call TAnchorDockMaster.ResetSplitters after your layout and form have been initialized (the docking site has the correct height at last).
176176- More information: [Issue \#29475](https://bugs.freepascal.org/view.php?id=29475)
177177
178178### SynMemo is now Deprecated
179179
180180- SynMemo was deprecated.
181181
182182
183183Any code referring to SynMemo will now give a warning about this.
184184
185185- SynMemo was also removed from the component palette.
186186
187187
188188However SynMemo is still a registered component, and if you open any project already containing a SynMemo it will load correctly.
189189
190190If you must have an IDE with SynMemo on the component palette, you can compile the IDE with WithSynMemo defined. This is temporary, and will be removed at some point after the release.
191191
192192SynMemo was nearly identical to SynEdit (except it did publish less properties).
193193
194194It only featured 2 extra method:
195195
196-`   function CharIndexToRowCol(Index: integer): TPoint;   `\
197-`   function RowColToCharIndex(RowCol: TPoint): integer;  `
196+``` pascal
197+ function CharIndexToRowCol(Index: integer): TPoint;
198+ function RowColToCharIndex(RowCol: TPoint): integer;
199+```
198200
199201Those are now available in SynEdit. However with a strong warning
200202
201-`   experimental; deprecated 'SynMemo compatibility - very slow / SynEdit operates on x/y';`
203+```text
204+ experimental; deprecated 'SynMemo compatibility - very slow / SynEdit operates on x/y';
205+```
202206
203207It is highly recommended not to use them. The calculation in those methods was always done without taking in account trailing spaces (if trim trailing spaces was active). This may have lead to wrong results.
204208
205209A common use case for those methods was apparently:
206210
207211
208212\- Get the caret position as CharIndex.
209213
210214\- Insert some text
211215
212216\- Add the text length to the CharIndex
213217
214218\- Set the caret position from the CharIndex
215219
216220If setting the text changed trailing spaces (e.g. text was appended at the end of line, behind some trailing spaces, which then would not be trailing any more) then the calculation would not be correct.
217221
218222Yet if the 2 methods would include trailing spaces, it could equally go wrong. If between getting the caret position, and restoring it any trailing spaces where trimmed, then the restore is wrong.
219223
220224For this reason, and for the fact that they are extremely inefficient (slow) their use is not recommended.
221225
222226To archive caret adjustment in SynEdit, use InsertTextAtCaret, TextBetweenPointsEx or SetTextBetweenPoints, which all have the option of adjusting the caret.
223227
224228### TSynEditExporterHtml behaviour has changed
225229
226230- Old behaviour: both ExportAsText and CreateHTMLFragment controlled the output.
227231- New behaviour:
228232
229233
230234Output is now controlled by the property Options
231235
232236The property CreateHTMLFragment is deprecated and will be removed in a future release
233237
234238ExportAsText now only affects how the exportbuffer is put on clipboard
235239
236240- Reason:
237241
238242
239243More options than CreateHTMLFragment were needed
240244
241245The comments in the parentclass (TSynEditExport) state that this property controls the way the export buffer is put onto the clipboard
242246
243247- Remedy:
244248
245249
246250Use Options property to control the output.
247251
248252Remove references to CreateHTMLFragment
249253
250254### TSynCustomHighlighter.GetIdentChars implementation has changed
251255
252256- Old implementation: \[#33..#255\]
253257- New implementation: \['_', 'A'..'Z', 'a'..'z', '0'..'9'\]
254258- Reason:
255259
256260
257261The new character array better suits most uses.
258262
259263### EasyDocking isn't supported in the IDE anymore
260264
261265You cannot install easydockmgr and easydockmgrdsgn in the IDE anymore. Use AnchorDocking instead. easydockmgrdsgn package was removed from 1.7.
262266
263267## IDE incompatibilities
264268
265269# Previous release notes
266270
267271---
268272*From the Free Pascal wiki, page "Lazarus 1.6.0 release notes", as it stood on 2020-08-08 after a change by Arent, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
269273Category: Lazarus
270274Category: Release Notes

Back to history