-
Notifications
You must be signed in to change notification settings - Fork 21
/
ChangeLog
1375 lines (1090 loc) · 55.7 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
11.8 [06-01-2025]
- Flowchart: fix comments in wrong position after inserting new block
11.7 [28-12-2024]
- further improvements to look better on Windows 11
11.6 [24-12-2024]
- set Ctl3D = False for text controls to have better look on Windows 11
11.5 [23-12-2024]
- Functions: fix too narrow local variables panel on high DPI screens
11.4 [22-12-2024]
- more robust procedure of opening project in case of errors
- "loc" directory (containing translations) renamed to "translations"
11.3 [15-12-2024]
- show warning on application start when current translation file is invalid
- fix not detecting project change in some situations
11.2 [12-12-2024]
- default English translation read from memory instead from temporary file
11.1 [01-12-2024]
- fix not opening plain-flowchart files
11.0 [01-12-2024]
- Flowchart: enable keyboard shortcuts for inserting blocks. Now it's possible without use of context menu.
- Flowchart: fix Alt-A sequence not working correctly in text box
- Code Editor: fix scroll in view sometimes not working correctly when selecting flowchart elements
10.13 [28-11-2024]
- Code Editor: fix "division by 0" errors when indent length is 0
- Code Editor Help: more clear info that functions and dataytypes can be dragged to editor starting from their tab name
- Java: add AtomicInteger, AtomicLong, AtomicBoolean, LongAdder, DoubleAdder types to Java.xml
10.12 [17-11-2024]
- mention in menu hint that resize frame can also be switched by LMB double click
10.11 [16-11-2024]
- fix sometimes not updating flowchart labels in Navigator window
10.10 [15-09-2024]
- fix disabled Undo after removing text in flowchart text controls using popup menu
- Navigator: enable navigation by arrow keys
10.9 [29-08-2024]
- set focus on created comments
10.8 [30-07-2024]
- compiled with Delphi 12
10.7 [04-02-2024]
- Code Editor: generate code for single user function or data type by drag and drop
10.6 [25-01-2024]
- fix not moving flowchart pinned comments between tabs
10.5 [31-12-2023]
- fix comparing project and app versions
- minor optimizations
10.4 [15-12-2023]
- Function Header: add hint that parameters can be reordered by mouse dragging
- Datatype: add hint that fields can be reordered by mouse dragging
- make attached SynEdit component compile with Delphi 12
- minor optimizations
IMPORTANT NOTES:
Reminder that variables/constants on declaration panel can be reordered by mouse dragging with Shift key pressed.
10.3 [30-08-2023]
- fix potential memory access violations when generating code
- minor improvements
10.2 [10-05-2023]
- fix "No attribute..." errors when importing functions
10.1 [28-04-2023]
- fix "No attribute in the header node" error when opening some older project files
10.0 [26-04-2023]
- compiled with Delphi 11
- rewrite XML backend using OmniXMLUtils unit
- fix duplicated comments saved to XML file when flowcharts overlapped
- Editor: fixed hint font
- Editor: improve setting Modified status in various scenarios
- Language Definition File: add new placeholder to LibEntry element allowing to include type or function name
- minor optimizations and fixes
9.11 [20-04-2022]
- fix displaying for..do block on high DPI screens
9.10 [15-04-2022]
- Code Editor: fix regression introduced in 9.9 with cursor not set to line associated with focused statement in flowchart
9.9 [13-04-2022]
- fix issues with for..do block after resizing in horizontal direction
- exceptions during code generation no longer force to shutdown application
- many optimizations and code cleanups
9.8 [23-02-2022]
- Flowchart: optimizations and fixes to drawing of for..do block
- add warning message upon start if display DPI is not supported by devFlowcharter
9.7 [13-02-2022]
- Flowchart: various changes to properly display blocks in HighDPI (scale 125%) with font 12
9.6 [30-12-2021]
- F10 key can now be used to unfold all blocks in a selected block
- Code Editor: various fixes in "Find in Project" (adding hint that it's working with text selection; preserving cursor position)
- minor optimizations
9.5 [06-11-2021]
- Flowchart: prevent propagating Delete key press to text boxes when used to remove block
- F11 key can now be used to enable/disable resizing frame
- F12 key can now be used to fold/unfold selected block
9.4 [04-11-2021]
- Code Editor: fix few issues with "Find in Project" feature after loading project from file
9.3 [23-10-2021]
- added possibility to remove flowchart blocks with Delete key
- Code Editor: fix indent issues in auto-updating of multiline blocks
- fix blinking comments when updating flowchart
9.2 [26-09-2021]
- make attached SynEdit component compile with Delphi 11
- Code Editor: fix width to display vertical scrollbar correctly
- minor fixes and optimizations
9.1 [25-08-2021]
- DataTypes: fix misalignments in fields box introduced in 9.0
- Functions: fix not updating function description in flowchart for parameter changes
9.0 [15.08.2021]
- fix access violation in for..do loop in some cases
- fix bugs in copy/cut with drag and drop when resize frame was enabled
- fixes for high DPI monitors (125%)
- reduce exe file size
8.12 [20.07.2021]
- compiled with Delphi 10.4.2
8.11 [16.07.2021]
- Java support: add ZonedDateTime, OffsetDateTime and Clock types;
various updates to constant value evaluation
8.10 [28.05.2021]
- language definition files: add DataTypeUnboundedArrayMask element
- small optimizations
8.9 [24.11.2020]
- catch parsing exceptions locally (do not close entire project)
- prevent for..do block flickering when adding/removing global variables
- various cleanups
8.8 [21.10.2020]
- Java: add support for Set.of(), List.of() and Map.of() methods in constant value evaluation
- Java: add support for EnumSet and EnumMap types
- Java: improve building list of imports for nested generic types
- make attached SynEdit component compile with Delphi 10.4
- minor improvements
8.7 [28.08.2020]
- fix regression in 8.6 (for..do block not drawn correctly in some situations)
8.6 [28.08.2020]
- fix blinking for..do blocks when using Navigator
8.5 [17.07.2020]
- Java: add support for DateTimeFormatter and Locale classes
8.4 [27.06.2020]
- Function headers: re-order parameters with drag-and-drop
- Datatypes: re-order fields with drag-and-drop
8.3 [17.05.2020]
- fix blinking tabs when removing functions/datatypes
- make sure function body flowchart is in visible range after import
- make sure function header is active page after import
- various cleanups and optimizations
8.2 [13.04.2020]
- various code cleanups and optimizations
8.1 [28.03.2020]
- fix too wide for..do block in some situations
- Java: improve generating package imports (package defined for data type in language definition file has precedence)
8.0 [22.03.2020]
- compiled with Delphi 10.3.3
- Flowchart: auto-resizable edit boxes in for..do block
- Java support: add java.util.regex.Pattern class
- Settings: add EditorRightEdgeColumn and EditorRightEdgeColor settings (at the moment not supported on Settings page)
- minor optimizations
7.21 [16.11.2019]
- Editor: fix displaying gutter on dark background
- Settings: add command example to Compiler command box hint
7.20 [28.09.2019]
- fix splitters in function tab
7.19 [28.09.2019]
- compiled with Delphi 10.3.2
- eliminate memory leaks in SynEdit component
- Java support: save/load color for Javadoc in settings (Windows registry or ini file) instead of being hardcoded
- Java support: add support for underscore sign in constant number literals
7.18 [08.08.2019]
- modify adding parameters for user functions and fields for user datatypes - empty value considered valid until focused
7.17 [27.07.2019]
- hotfix for regression in 7.16 (generating incorrect expressions in editor auto-update mode)
7.16 [27.07.2019]
- Settings: add setting for indent character (space or tab)
- Project Explorer: fix empty tree nodes in only flowcharts mode
- Translation: add possibility to translate dropdown list items
7.15 [17.07.2019]
- Flowchart Context Menu: add hints to Cut/Copy items with info that these operations can also be executed by drag and drop
- Comments: fix remaining border frame in some situations
7.14 [08.05.2019]
- Java support: add support for "byte" type in evaluating of constant value
- Project Explorer: add "Rebuild" to popup menu
- Project Explorer: "Refresh" in popup menu is now a real refresh (does not rebuild project tree)
7.13 [24.04.2019]
- Java support: add arrays to evaluation of constant values
7.12 [18.04.2019]
- Java support: more work on improving evaluation of constant values (e.g. support of java.util.Collections class: Collections.emptyList(), singletonMap() etc.)
7.11 [13.04.2019]
- Java support: fix unable to evaluate constant expression in Arrays.asList() when contain new constructor
7.10 [13.04.2019]
- Functions: column widths in local variables are now resizable
- Java support: improve evaluation of constant types (e.g. add type evaluation of value returned from Arrays.asList() method)
7.9 [23.03.2019]
- fix various memory access violation errors
- fix issues around cut/undo remove functions
7.8 [18.03.2019]
- fix sometimes importing flowchart to incorrect tab
7.7 [23.02.2019]
- compiled with Delphi 10.3.1
- Text Block: fix drawing upper-right corner
7.6 [12.02.2019]
- fix flowchart sometimes not refreshed after resizing block with the mouse
7.5 [02.02.2019]
- add third state (called transitive) to external checkbox for variables, constants, functions and data types;
this change was to enable setting protected access for project items in Java
IMPORTANT NOTES:
New elements added to language definition files to enable/disable transitive state in external checkboxes:
- AllowTransExternVarConst
- AllowTransExternFunction
- AllowTransExternDataType
Now up to three states instead of two can be set in the following elements in language definition files:
- VarExternModifier (example for Java: <VarExternModifier>public |private |protected </VarExternModifier>)
- ConstExternModifier
- FunctionHeaderExternalModifier
- DataTypeExternalModifier
7.4 [27.01.2019]
- Declarations: add resize contraints
- Declarations: fix situations where checkboxes were not displayed after opening project
- Java support: improve support for classes from java.time package
- Java support: generate declarations with diamond operator where possible
7.3 [18.01.2019]
- language definition file: add FunctionHeaderDescTemplate template to generate description/prefix for function headers
- Functions: add Generate button to Description/Prefix section
- Editor: enable blue color for Javadoc in Java highlighter
- minor optimizations
7.2 [01.12.2018]
- fix not populated dropdown boxes for for..do block when language was changed upon opening project
7.1 [29.11.2018]
- Explorer: fix not removing tree nodes for multi line blocks
7.0 [25.11.2018]
- compiled with Delphi 10.3
- add possibility to save/load settings and history of opened files to/from ini file (check devFlowcharter.bat script)
- add possibility to set alternate directory to load language definition files (check devFlowcharter.bat script)
- Settings: add hint to language dropdown showing location of loaded language definition file
- translation: add possibility to translate hint of menu items
- Explorer: fix various issues when removing nodes from project tree
- Editor: fix selecting code block for selecting flowchart block in Python
- Editor: fix not setting/updating current line in various situations
- language definition file: add CaseOfFirstValueTemplate element used in turning switch/case statement into sequence of if..else if statements
IMPORTANT NOTES:
1. Windows registry key containing devF settings was changed from HKEY_CURRENT_USER\Software\devFlowcharter to HKEY_CURRENT_USER\Software\devFlowcharter\Settings
2. Windows registry key containing history of opened files was changed from HKEY_CURRENT_USER\Software\devFlowcharter to HKEY_CURRENT_USER\Software\devFlowcharter\History;
Windows registry key names for opened files history were changed from History0..9 to 0..9
6.9 [10.09.2018]
- cosmetic modifications to for..do block
- add hint to "type" dropdowns
6.8 [04.08.2018]
- fix crash when removing tab containing comment
6.7 [14.07.2018]
- fix crash when creating user function
- fix hint appearing everywhere inside datatype/function header
- minor tweaks
6.6 [03.06.2018]
- language definition file: add "library" attribute for native functions; library import statement will be generated after pasting function call from popup menu (editor must be visible);
works only for one-per-line imports (not csv list) defined in LibEntry tag
6.5 [27.05.2018]
- Project->Declarations: now fully resizable with splitter (variables and constants panels as well as every column);
widths saved not as application setting but in every project
6.4 [16.05.2018]
- language definition file: enhance native functions (tag NativeFunctions); for example add hint displayed in status bar
6.3 [03.05.2018]
- add hint for function header/datatype tabs
- auto-resize to accommodate entire text for newly created input/output blocks
- minor tweaks
6.2 [19.04.2018]
- Pascal: add support for dynamic (unbounded) arrays
- Pascal Parser: add support for SetLength procedure
- C: add support for unbounded arrays
- Code Generation: skip generating entire sections (e.g. variables or functions) if no item was qualified for generation
6.1 [13.04.2018]
- add hints that validation of some fields (e.g. variable size) can be disabled in Settings
- Explorer: fix missing data types description for Java
6.0 [12.04.2018]
- add Java support
- add FileContentsTemplate tag to language definition files
- fix disappearing forms when showing dialog window
- fix code generation issues when DataTypeMask elements contained multiple lines
- Function Header: add checkbox to mark that function returns array
- Settings/Code Editor: add setting for keywords and identifiers color
IMPORTANT NOTES:
1. Language definition files and translation files from previous versions of devF will not work correctly with this version.
2. With FileContentsTemplate tag user can define layout of entire source file.
3. The way to declare array variables was changed. Now, array size must be enclosed in square brackets.
Example: for 2-dimensional array it was "100,100", now should be "[100][100]"
5.13 [27.01.2018]
- Flowchart Settings: add pen color
- Navigator: improve frame drawing performance
5.12 [21.01.2018]
- Navigator: fix red screen for newly created flowchart tab
- Flowchart: replace gray component edges with black color
- Flowchart: fixes to display correctly upon changing font size
5.11 [05.01.2018]
- fix issues with comments (disappearing after loading project or blinking upon saving)
- minor GUI improvements
5.10 [01.01.2018]
- Code Editor: fix crash when no highlighter available
5.9 [31.12.2017]
- fix several not-scrolled-in-view regressions from previous version
5.8 [29.12.2017]
- compiled with Delphi 10.2
- add scrollbars for each flowchart sheet
- minor fixes and optimizations
5.7 [25.11.2017]
- Settings: allow to predefine font size for newly created flowcharts
5.6 [18.11.2017]
- case block: add possibility to insert branch before current branch
5.5 [05.11.2017]
- add default values for function parameters
- Code Editor: fix multiline select for "Find in Project" feature
- Datatypes: fix localization issue when changing datatype kind
- fix sometimes incorrect order of function parameters after loading project from XML
5.4 [02.10.2017]
- more work on saving multiline components to XML
- fix wrong font properties for multiline blocks
5.3 [23.09.2017]
- Flowchart context menu: display Memo submenu for comments
- add "Align Right" item to Memo submenu
- fix folder memo flicker
5.2 [17.09.2017]
- fix regression in 5.1: blocks not destroyed after removing branch in case/switch block
5.1 [07.09.2017]
- Delphi project: use generic types everywhere
- Flowchart: cleaning up block state after closing popup menu
- fix incorrect error message when printing
- fix discovered memory leaks
5.0 [09.08.2017]
- various modifications to XML project file structure to make project file more informative
IMPORTANT NOTES:
In devF 5.0 saving user datatypes to XML project files was modified. There are 2 changes:
1. XML tag name changed from "structure" to "datatype".
2. Change the way how datatype kind information is stored in XML attribute. Before 5.0 it was boolean attribute for given type (e.g. array_type="True").
Now datatype kind is stored in "kind" attribute:
XML attribute before 5.0: XML attribute from 5.0:
struct_type="True" kind="dtRecord"
array_type="True" kind="dtArray"
int_type="True" kind="dtInt"
real_type="True" kind="dtReal"
enum_type="True" kind="dtEnum"
other_type="True" kind="dtOther"
Full datatype tag example:
Before 5.0:
<structure name="TResult" hash="5" ext_decl="False" library="" pointer="False" array_type="True">
<field name="" type="real" size="N" />
</structure>
From 5.0:
<datatype name="TResult" hash="5" ext_decl="False" library="" pointer="False" kind="dtArray">
<field name="" type="real" size="N" />
</datatype>
Due to various changes in XML project files it is not possible to properly open devF 5.0 projects in older versions of devF.
4.7 [30.07.2017]
- many fixes to detecting changes in project; add asterisk to title bar as project change indicator
- reduce main menu flickering when saving project
4.6 [22.07.2017]
- include devF version to saved projects and compare it with current devF version upon loading project
- reduce main menu flickering
4.5.25 [11.07.2017]
- fix memory access violation coming from Pascal parser
4.5 [08.07.2017]
- Code Editor: code folding is back
- Code Editor: fix not saving highlighter on/off setting
- Code Editor: improvements to pasting multiline comments
- fix not displayed detailed info if something went wrong upon loading project
- initial support for Python
- many fixes and improvements
IMPORTANT NOTES:
Due to some reorganizations done to language definition file structure (e.g. new tags to support Python) it is strongly advised to use config files delivered with this release.
Files from previous versions may not work properly with 4.5. The same applies to translation files.
4.4 [27.05.2017]
- fix project sheet not entirely exported to graphic or printed
- fix "Incorrect contstant value" info showed for constants of float type
- add DecimalSeparator property to language definition; default value is .
4.3.40 [09.04.2017]
- Code Editor: fix regression in auto-update introduced in 4.3.23
4.3.23 [08.04.2017]
- Code Editor: preserve bookmarks and caret position during auto-update
- enable scrollbar in import form
- update Chinese translation file
4.2 [15.03.2017]
- fix heavy flicker when changing tabs (function headers or data types)
- selective import for functions and data types
- Settings: make compiler command more flexible; now it is executed without implicit command to start Windows command prompt;
this command must be explicitly included in compiler command
IMPORTANT NOTES:
Command to start Windows command prompt (cmd.exe) must be explicitly added to compiler command. Example:
Old command:
D:\PascalCompiler\bin\fpc.bat "%s1"
New command:
cmd.exe /k D:\PascalCompiler\bin\fpc.bat "%s1"
4.1 [22.02.2017]
- fix select all operation not working for multiline components when Navigator window was visible
- fix not changing flowchart tab when changing function header tab
- fix heavy flicker when auto-updating editor for project changes
4.0 [13.02.2017]
- Compiled with Delphi 10.1 Berlin
- Unicode support
- attached FreePascal compiler upgraded to 3.0
- Code Editor: code folding temporarily disabled
3.6.4 [10.01.2017]
- Flowchart Navigator: fixes and display optimizations
3.6.3 [20.12.2016]
- Editor's Find/Replace: highlight in yellow all findings in file
- Code Generation: don't write instruction end ; when line does not contain anything else; just generate empty line
3.6.2 [26.11.2016]
- XML language definition files saved as UTF to properly handle non-English characters
- make Settings page a bit smaller to be displayed entirely on 1024x768 screen
- minor fixes and optimizations
3.6.1 [08.10.2016]
- Flowchart: fix selecting all text in text box by Ctrl-A (and by mouse double click for multiline components)
- Flowchart: enable clipboard copy/paste operations for text boxes
- Flowchart: fix comments flicker in some cases
- minor fixes and optimizations
3.6.0 [04.09.2016]
- Flowchart: new popup menu for text boxes with list of functions available
- Flowchart: move/copy blocks within flowchart structure using drag-and-drop
- Flowchart: add block labels (while, if, assign etc.)
- Flowchart: enabling strikeout style for block exclude it from code generation
- Flowchart: add export to PNG files
- Functions: add new checkbox to show/hide flowchart (function body)
- Explorer: simplify project tree
- global variables can now be external
- add XML export/import for variables/constants
- lots of updates and new tags added to XML language definition files to enhance code generation (check LanguageDefinitions/Example.xml file for reference)
- add German translation (thanks to Rudi Wagner)
IMPORTANT NOTES:
Blocks can be now moved/copied in flowcharts by drag-and-drop.
To move block, highlight and drag to any red arrow. Constraints:
- you cannot move main blocks
- you cannot move block to inside of it
To copy block, highlight it, hold SHIFT key and drag to any red arrow.
When dragging blocks inside editor window to generate code, there is no need to hold SHIFT key. Before 3.6.0,
you had to hold SHIFT key.
To enable frame for block, double click with left mouse button when it's highlighted. Before 3.6.0,
it could be done with single click.
For functions, checking External declaration option now only exclude function from code generation. Before 3.6.0,
it also hid flowchart (function body).
Due to massive updates in XML language definition files, it is strongly advised to use files delivered with 3.6.0. Files copied from earlier versions may not work correctly.
3.5.1 [23.07.2016]
- fix moving comments in parent block when inserting new block
- various fixes and optimizations
3.5.0 [11.07.2016]
- Flowchart: now can be displayed on multiple tabs
- Flowchart: eliminate flicker when resizing memo components
- Flowchart: copy/paste/export/import comment along with parent block
- Flowchart: fix displaying corner in text block when double buffering is on
- Editor: Eclipse-style hints showing closing bracket (for brackets across different lines)
IMPORTANT NOTES:
Tabs can be added/removed/renamed using popup menu displayed upon click on tab labels.
There are 2 ways to move flowcharts between tabs:
1. By selecting tab from dropdown in Flowchart section on Functions page
2. By cut/paste of function body flowchart
3.4.7 [19.04.2016]
- Flowchart: reduce flickering when updating function labels
3.4.6 [13.04.2016]
- Flowchart: improve drawing performance and reduce flickering
3.4.5 [03.03.2016]
- Flowchart: fix case block not entirely drawn after loading project
- give user a chance to save project when general exception is raised
- update Chinese translation file
3.4.4 [23.02.2016]
- Editor: fix selecting wrong lines when navigating flowcharts in Project Explorer
- Editor: fix generating wrong return statement during auto-update for Pascal
- Flowchart: fix sometimes too short width of main block
- minor fixes and optimizations
3.4.3 [11.01.2016]
- fix stealing comments when moving flowcharts
- fix performance regression while moving flowcharts introduced in 3.4.2
3.4.2 [29.12.2015]
- many improvements to comments (sticky to every block, automatically changing position, color etc.)
3.4.1 [08.12.2015]
- fix not drawing block's frame after loading project
- minor fixes and optimizations
3.4.0 [18.10.2015]
- add folder block as container for child blocks
- Toolbox: add buttons for Folder and Text blocks
- enable bigger fonts for flowchart labels
- many minor fixes
3.3.4 [23.09.2015]
- improve editor auto update in folded areas for multiline components
3.3.3 [31.08.2015]
- fix issues when copy/cut/paste multiline blocks
- fix memory access violation when folding main block
3.3.2 [25.08.2015]
- Editor: add preliminary support for simultaneous auto update and code folding
- fix not displayed hint for multiple assign block
3.3.1 [13.08.2015]
- Editor: fix autoselecting code blocks for long lines
- Editor: fix setting active line for multiline components
3.3.0 [04.08.2015]
- fixes for drawing ellipses with wide fonts
- fixes to drawing input and output blocks with wide fonts
- entirely reworked Project Explorer (include all project elements: datatypes, global declarations etc.)
- Source Editor: improvements to "Find in Project" like retaining cursor position
- many minor fixes
IMPORTANT NOTES:
Project Explorer: in order to navigate among tree items with mouse wheel, press and hold Ctrl key
3.2.2 [07.04.2015]
- Localization: add possibility to translate many (not just one default) properties of GUI component
- Navigator: fix not refreshing changes in block frames
- optimize code generation process by performing memory preallocations
- other minor fixes
IMPORTANT NOTES:
Examples of translatable properties for various component types:
Component class: Available properties:
TMenuItem Caption
TButton Caption
TLabel Caption
TEdit Text, Hint
TOpenDialog Filter
TCheckBox Caption, Hint
TRadioButton Caption, Hint
TPanel Caption, Hint
Example to translate properties for TEdit component named edtInfo:
Old way (assign value to default property which is Hint in this case):
edtInfo=Hint for some text
New way (assign values to Text and Hint properties):
edtInfo.Text=Some text
edtInfo.Hint=Hint for some text
3.2.1 [27.12.2014]
- fix various issues with detecting changes in project
- few minor code updates and optimizations
3.2.0 [18.12.2014]
- global declarations form is now resizable in vertical direction
- add possibility to change order of variable/constant declarations using drag and drop
IMPORTANT NOTES:
To change order of variable/constant declarations, hold Shift then press left mouse button on selected row
and drag to different row.
3.1.7 [24.11.2014]
- fix flickering issues when unfolding big flowcharts
3.1.6 [04.09.2014]
- Translation Manager: fix issue with loading flowchart labels
3.1.5 [04.09.2014]
- fix situations when some parts of project area were not refreshed after operations that resized components
3.1.4 [19.07.2014]
- Main window: fix unexpected scrolling
- more work on units decoupling
3.1.3 [10.07.2014]
- Flowchart: fix not refreshed expressions after changing "Syntax Check" settings
3.1.2 [09.07.2014]
- backend: all iterators as garbage collected interfaces
- fix regression discovered in previous version
- Source package: enable flags USE_FASTMM and USE_CODEFOLDING by default
3.1.1 [04.07.2014]
- Popup Menu: add "Function Here" item to insert function body at cursor position
- massive code reorganization to reduce units coupling
- Source package: add OmniXML to ThirdParty.zip
3.1.0 [15.05.2014]
- replace standard memory manager with FastMM 4
- Editor: fix for flickering scrollbars when auto-update is on
3.0.13 [08.05.2014]
- fix form not being repainted correctly after block resize
3.0.12 [06.05.2014]
- fix form not being repainted correctly after block remove
- many minor optimizations
3.0.11 [27.04.2014]
- drawing engine: eliminate repaint lags while scrolling and navigating
- Explorer: fix some folded statements to report syntax errors when should not
- XML input files: fix not setting saved values (size and style) for fonts
IMPORTANT NOTES:
When working with big flowcharts it is advisable to disable Double Buffering to increase scrolling performance.
3.0.10 [23.04.2014]
- fix displaying output block with high fonts
- further optimizations to drawing engine
3.0.9 [16.04.2014]
- optimize drawing engine (eliminate intermediary flowchart repaints during changes)
- eliminate flickering when adding record fields or function parameters
3.0.8 [09.04.2014]
- fix not showing function header tab when searching for local variables by "Find in Project"
- Settings: fix not updating color of rectangular components upon color change
- optimize drawing engine
3.0.7 [03.04.2014]
- various fixes to flowchart drawing when font other than Tahoma is used
- Case block: make text boxes for case values as long as possible
3.0.6 [07.03.2014]
- fix Functions form not possible to translate
- prevent top block to obscure function label
- reduce flickering in some sections of function header during resize
3.0.5 [05.03.2014]
- Code Editor: fix scrolling issues when auto-update is on
3.0.4.20 [26.02.2014]
- settings: font size for Code Editor is now configurable
3.0.4 [26.02.2014]
- Code Editor: further improvements to "Find in Project" feature
- smaller optimizations
IMPORTANT NOTES:
Clarification how "Find in Project" works:
Upon clicking "Find in Project" in Editor popup menu devF will switch to form containing item associated with text line. If it's for example line
that contains declaration of global variable, then Global Declarations form will open. If additionally there is selected text, devF will search for
particular variable and will select correct row if it's found. It is working similar way for functions and data types.
If current line in Editor is associated with any flowchart component, after selecting "Find in Project" devF will make it visible and focused. If there is
selected text in Editor, devF will select the same text in found flowchart component.
3.0.3 [22.02.2014]
- Code Editor: improve "Find in Project" feature introduced in previous version; now selected text is taking into consideration too
- Global Variables: various fixes for "external constant" checkboxes
3.0.2 [19.02.2014]
- add "AllowUserFunctionOverload" option to language definition file
- Code Editor: add option "Find in Project" to popup menu that quickly locates project component associated with code line
IMPORTANT NOTES:
When AllowUserFunctionOverload = 1, devFlowcharter allows adding functions with identical names.
3.0.1 [12.02.2014]
- Pascal: fix getting incorrect index for "^string" data type
- C: add "void" native data type to language definition file
3.0.0 [11.02.2014]
- add "kind" attribute for "datatype" tag in language definition XML files. For info search in Example.xml file around
"NativeDataypes" tag.
- minor fixes and optimizations
IMPORTANT NOTES:
Project files created in previous versions are not compatible with 3.x release.
The reason is changed way how type information (for variables, function returns etc.) is saved to XML.
Previously it was type index (e.g. "1" for real type in Pascal). In 3.x it is type name (e.g. boolean).
To have older projects working in 3.x there are 2 ways:
1. Opening 2.x project file in devFlowcharter 3.x and changing data types in dropdowns from "unknown" to intended one.
2. Manual modification of old project files:
Values in "type" attributes must contain type name instead of type index number. Type index is number counted from 0
for given type name in "Type" dropdown on Global Variables panel.
Example of "type" attribute modification in XML files for Pascal projects:
Old: New:
type="0" type="integer"
type="3" type="boolean"
"type" attribute must be changed in the following tags:
Tag: Applies to:
var variable (local and global)
header function return value
arg function parameter
field record field
Pascal:
"char" data type is now included as native type in language definition file. So, there is no need to define it by user
in GUI as part of the project. Such approach was suggested in notes for version 1.5.1.
The following tag names were changed in language definition files:
Old name: New name:
EnabledRoutineHeader EnabledUserFunctionHeader
EnabledRoutineBody EnabledUserFunctionBody
PreDefinedDataTypes NativeDataTypes
PreDefinedFunctions NativeFunctions
2.3.2 [13.12.2013]
- Code Editor: fix for "List index out of bounds" exception in code folding
2.3.1 [08.12.2013]
- Code Editor: auto-updating implemented for all elements (function headers, data types etc.)
- Code Editor: fix issues in auto-updating for big projects
- improve speed of code generation with FastCode functions
2.3.0 [26.11.2013]
- Code Editor: initial implementation of auto-updating code for flowchart changes
- Code Editor: fix for not auto-selecting line if it's last line
- fix not working as expected templates for input and output blocks
IMPORTANT NOTES:
Turning on code auto-updating automatically disables code folding and vice versa.
At the moment auto-updating code works only for flowchart changes. Changes in global variables or
function headers have no effect.
2.2.4 [04.11.2013]
- Settings: modify placeholders in compilation command; add separate compilation command for
projects without main program (till now it was supported only on developer level)
IMPORTANT NOTES:
As placeholders for compilation commands were modified, updating these commands is required following
new placeholders. To get know new placeholders check hints in edit boxes.
Examples for MinGW C compiler using new placeholders:
Compiler command: C:\MinGW\bin\gcc.exe %s1 -o %s2.exe
Compiler command for no-main projects: C:\MinGW\bin\gcc.exe -c %s1
If project is no-main and compiler command for such projects is not provided then
standard (first) command is used.
2.2.3 [30.09.2013]
- fix for remaining placeholders in generated code
- fix for remaining placeholders in function labels
- Code Editor: fix for first fold region not being refreshed after "Expand All" operation
2.2.2 [24.09.2013]
- added missing tags in language definition file to set flowchart labels
IMPORTANT NOTES:
The involved keys for setting flowchart labels are:
- ProcedureLabelKey
- FunctionLabelKey
- ProgramLabelKey
2.2.1 [18.09.2013]
- improved templates for generating data types
- General Code Generation: fix always including function description
- C Code Generation: fix for not including body of function when there is no main program
- Code Editor: fix for not working code selection during highlight of flowchart element
IMPORTANT NOTES:
For changes in data type templates refer to LanguageDefinitions\Example.xml file.
2.2.0 [11.09.2013]
- significantly improved support (based on templates) for language defined by user
- fix in setup program for Pascal compiler correcting wrong registry key
IMPORTANT NOTES:
For reference about using templates to define own language use LanguageDefinitions\Example.xml file. It contains all available
templates with descriptions.
devF no longer add ";" char at the end of instruction if it's not present. Adding or not of this char is determined by its presence
in involved template. By default it is present, so adding it in flowchart will double this char at the end of instruction
in generated code.
If code is generated for some section even though template is not present, it means that code generation for this section is embedded.
Example - case..of instruction for Pascal.
2.1.0 [31.08.2013]
- add support for languages defined by user
IMPORTANT NOTES:
Version 2.0 was never released.
Language definitions are kept in LanguageDefinitions directory in form of XML files. Check Example.xml file for reference
how to add new language to devFlowcharter. Language definition files that contain non-ASCII characters must be saved as UTF files.
Otherwise devFlowcharter will fail to read file.
Project files created in previous versions are incompatible with 2.1.0. To fix this a small modifications must be done to a project file.
"language" attribute of "project" root tag must be changed as follows:
From "0" to "Pascal"
From "1" to "ANSI C"
From "2" to "TIBASIC"
From "-1" to " "
Apart from support on user level, each language can have additional support for more sophisticated code generation on developer level.
For instructions refer to LangTemplates\Pascal_Template.pas file in source package.
1.9.15 [19.08.2013]
- Code Editor: added code folding (thanks to Mystix editor project)
- tab components: fix situation when tabs order could not be changed when some tabs were not visible
- tab components: fix for generated library list not respecting order of tabs
IMPORTANT NOTES:
Most settings regarding Code Editor were removed from Settings form. They can be set from Code Editor main menu.
C language: stdlib.h header file was removed from generated code. In case of need to include any library to
generated code suggested solution is to create dummy, external data type with desired library.
1.9.14 [03.08.2013]
- Code Editor: more information in hint for variables of array type
- Flowchart: add new options (e.g. scrollbars, word wrapping) for memos (multi-line text controls)
- Functions: moveable tabs (to set desired order) for headers
- smaller optimizations
IMPORTANT NOTES:
Options for memos are available under Memo item in popup menu. Even when scrollbars
are enabled they will only be visible if memo is not big enough to display entire text.
1.9.13.32 [16.01.2013]
- fix sometimes incorrect z-order of flowchart components after reading from XML
1.9.13.30 [16.01.2013]
- fix memory access violation when inserting function call block
- data types: enlarge form to accommodate labels in Polish translation
- minor fixes and optimizations
1.9.12 [20.10.2012]
- fix comments get attached to wrong flowchart
- fix comments having incorrect position after block was expanded
1.9.11 [10.10.2012]
- data types: fix sometimes incorrect order of elements (fields for records, values for enumerations) after
reading project from file
- functions: fix sometimes incorrect order of parameters after reading project from file
- Pascal: better support for "char" data type if defined by user
- minor fixes and optimizations
1.9.10 [15.07.2012]
- Pascal parser: implement handling arrays of string
- fix incorrect width of main block after it was expanded
1.9.9 [29.06.2012]
- Function window: allow resize in vertical direction;
add splitters to allow sections resize
- Data types window: allow resize in vertical direction
- improvements to Gauss elimination example
1.9.8 [10.06.2012]
- backend: replace own dynamic list implementation with TObjectList
- fixes to save and generate empty lines for Text and Multi-assign blocks
- add new Pascal example: Gauss elimination algorithm
1.9.7 [19.05.2012]
- fix accepting non-integer value as array size
- fix not disabled Value box for array data type
1.9.6 [27.04.2012]
- for block: allow user explicitly select ascending or descending order from popup menu
- fix too narrow width of main block after reading project file
- data types: change declaration of array types - only size and storing type required;
now also works for C language
1.9.5 [23.04.2012]
- add new data type kind - array
- fix incorrect reading of project file when data type declaration included global constant
IMPORTANT NOTES:
Array data types allow create types for multidimensional arrays; it allows passing
arrays as function parameters. Refer to PrintMatrix_Pascal.xml example.
1.9.4 [17.04.2012]
- Pascal Parser: read, readln, read(), readln(), write, writeln, write(),
writeln() are accepted in input/output instructions
1.9.3 [27.03.2012]
- fix some performance issues when Navigator is visible
- fix serveral cases when Navigator window was not refreshed
- Navigator: add keyboard control (arrows, Page Up/Down)
- Main window: add keyboard control (Ctrl + arrows, Page Up/Down)
1.9.2 [19.03.2012]
- fix memory access violation while closing project when Navigator is visible
- Navigator: fix not reflecting z-order of flowchart components
- Navigator: fix displaying border line for comments
- Flowchart: fix visible pinned comments when their main block becomes invisible
- Flowchart: fix indeterminate cursor position in text controls upon mouse button click
- XML: fix not reflecting z-order of flowchart components after project opening
- Global Constants: fix positioning checkbox in External column if it's not visible
- Global Constants: fix blinking groupbox when adding constant
1.9.1 [07.03.2012]
- Code Editor: fix memory access violation in OnMouseMove event
- Code Editor: fix not generating code for data types in exact order as they appear
in Data Types window
- fix sizing of main block to accommodate function label
- several code optimizations
1.9.0 [23.02.2012]
- fix memory access violation while pasting block with text block inside
- fix serveral cases when Navigator window was not refreshed
- Code Editor: add option to auto select/unselect block of code when moving cursor
over | sign in flowchart
- Code Editor: save text selection to XML file
- various code cleanups and modifications