📄 whatsnew.txt
字号:
DefaultGetNameLinkByFlexPanel respectively. When defining custom
procedures in these variables, user must define the flex-panel by
some name. By default, DefaultGetNameLinkByFlexPanel returns
NameLink := FlexPanel.Name, and DefaultGetFlexPanelByNameLink returns
FlexPanel := Nil.
- ADD: The class TLinkProp now also completes the link text with panel
name if the linked object is in a different panel.
- ADD: In the module FlexLibs added classes for supporting libraries with
the identifiers TFlexLibraryWidtIDs, TFlexSingleLibrary (the class for
working with a single library), TFlexSingleLibraries (library list where
each library is stored in its own flex-panel). The last two classes are
used for saving item identifiers after loading library (see the updated
tutorial-project LibDemo).
- FIX: Connectors could not be extended if during the creation they were drawn
as a horizontal or vertical line.
- FIX: After inserting an item from the library, the actions history
discontinued (error in TFlexDragObject.Unlink).
- ADD: In TPropList added the new event OnPropHistoryAction for selecting a
history operation class. Added the corresponding method
TFlexControl.PropHistoryAction.
- ADD: In the module FlexBase added the function FlexDuplicate - unlike
FlexControlCopy it allows selecting copied objects and returns copied
object if the parameter ChildrenOnly is not set.
- FIX: If TFlexCurve was originally created orthogonally, the Width or
Height remained 0, which caused further scaling errors.
- FIX: TFlexEllipse now sets its correct size for sectors and curves.
- ADD: Added the read-only property TPropList.DataMode, which
displays current property list read/write mode.
- ADD: In the class TPropList added the methods BeginLoading, BeginSaving
and EndLoadSave, which are called by both internal methods (LoadProperty,
SaveProperty, etc.) and from the outside. The methods modify
TPropList.DataMode.
- FIX: When changing Parent to scheme object, the layer of the object
being moved lost, and it became invisible on the new scheme (error in
TFlexControl.Add).
- FIX: If a property with a specified name already exists in TPropList,
the call of the ADD: method now cases the exception (formerly returned
-1, and the property was created with no owner).
- ADD: In FlexUtils added the following functions: SortedListFind,
ListSortItem, ListQuickSort for speedy operations over sorted
lists (use external item comparison procedure).
- ADD: In the method TFlexPanel.ResizeSelected added the parameter
ProportionalToMax (false by default) - if it is set to True, and
the Proportional parameter is also True, the resulting sizes will
be calculated by the largest dimension of the delimiting rectangle
instead of the smallest like it happens during the interactive
scaling.
- ADD: In the class TFlexText added the flex-properties AutoScaleFontSizeProp
and MaxFontSizeProp. The first one sets the mode where the font size is
calculated based on the object size. The second one limits the maximum font
size.
- ADD: Added the fnChanged notification for users' common needs.
Currently not used by library classes.
- FIX: The event OnPaintScheme now occurs in any event (formerly triggered
only when TFlexPanel.Paint SelectedOnly = True).
- ADD: Added the function IsDefaultPropertyValue (a copy from Delphi 7) in
the module FlexUtils for versions older than Delphi 7.
- ADD: Besides stored-methods, the class TPropList now also keeps the record
of default values for complex flex-properties' published properties
(changes in TCustomProp.IsComplexStored).
- FIX: With the text rotation angle TFlexText.AngleProp.Value <> 0,
the property TFlexText.AutoSizeProp is ignored. The property
TFlexText.AutoScaleFontSize is ignored when the angle is other than
0, 90, 180 and 270.
- FIX: If an object is interactively created in the panel, and its Width
and Height have the read-only style, the panel will switch to the ftmMoving,
mode instead of ftmCreating.
- ADD: Added the method TPropList.Assign - sets values of matching by name
flex-properties from a different list.
- FIX: Real-type published properties of the complex flex-properties were
unreadable since there was no inversion of DotStrToFloat (changes in
TPropList.LoadPropValue).
- ADD: Changes parameters of the method TFlexText.DrawTextEx. Now the font
can be taken from canvas current font, if the new optional parameter
AFontHeight carries the font size in the document's units).
- ADD: Added the method TCustomProp.IsParentOf - parent definition for
complex flex-properties.
- ADD: Add new published properties "EndCap" and "Join" in TPenProp class.
Its values ignored in Windows 9x versions (works only in Windows 2000 and
higher).
FlexEdit:
- FIX: When selecting a curve with the regular "Select tool", the Break Apart tool
would not enable (error in TEditMainForm.CheckTools).
- FIX: In the image flex-property editor form (the module PictureFrm) in the
method bbSaveClick you can select the actual image format (formerly user could
choose a format; that was confusing since the actual image was always saved in
the original format).
- FIX: In the inspector form TfmInspector the undo group could not be created on
double-click and on selecting the value from the drop-down list.
- ADD: New pen "End Cap" and "Join" properties in pen property edit form.
FlexEditSE:
- ADD: New modified FlexEdit project that not needs third party component
libraries to compile (needs FlexGraphics package only).
Version 1.4
-----------
FlexGraphics:
- FIX TFlexPanel.DocSpaceBrush settings did not save (the published property had the "read" method only).
- FIX Fixed errors in using parameters in TFlexPanel.PaintTo.
- FIX Added the BeginUpdate/EndUpdate pair in the TFlexPanel.MoveSelected method.
- ADD Added the fsEndUpdating state in TFlexControl.State, set for the time of operation of TFlexControl.EndUpdate.
- FIX Flex object hints now pop up on TFlexPanel.InDesign = true.
- FIX The TFlexConnector.Ortogonal = false setting, right after creating a new connector, left 3 points in the line, and the average always remained in the position (0,0).
- FIX An exception occurred in InsertPathPoint while attempting to find the closest point in PointOnLine.
- FIX Object indexes used to define incorrectly in methods TFlexPanel, ForwardOne, and BackOne.
- ADD Added the transparent pixel cut-off region calculation procedure CreateTransparentClipRegion in FlexUtils (for the purposes of proper printing).
- ADD Added the TBrushProp.InitBitmap method that creates bitmap for textural fill (for the purposes of the following loading from file, for instance).
- ADD Added new procedure to FlexUtils - PaintBitmap (extends PaintTailed capabilities).
- ADD Added auxiliary property TFlexControl.UserObject, which does not store its value in file. It is meant as an alternative for the Tag with faster access (UserObject is not a flex-property).
- FIX Procedures TFlexPanel Select and Unselect converted to functions (return Boolean value, true when the action completes successfully).
- ADD Added methods TFlexPanel SelectNext and SelectPrev - select the next and previous object in relation to the selected. Use the Tab/Shift+Tab shortcuts to select objects consecutively with these methods.
- FIX Fixed method TFlexGroup.ControlTranslate - did not return LinkPoints.
- FIX Fixed conversion of group connection points during translating, added method TFlexGroup.Translate.
- FIX Error in TFlexText.DrawText - incorrect calculation of the cut-off area when the fillet is greater than zero.
- FIX The parser TFlexPanel.WMPaint did not take into account the case of Message.DC <> 0, so the browser was unable to print (via ActiveX). Parsing of this case is now added to the method.
- ADD Added module FlexAlpha, which carries the semi-transparent images output class.
- ADD Added property TFlexPanel.AlphaBuffer, for outputting semi-transparent images. Required for TFlexControl.PaintAll.
- ADD Added flex-property TFlexControl.Transparency - the object transparency value in the range of 0 (not transparent)..100(fully transparent, invisible). By default the value is 0.
- FIX Changed method TFlexControl.PaintAll for semi-transparency support.
- FIX Fixed error in outputting text in TFlexText.DrawText - sometimes it created garbage during scaling.
- FIX Fixed TPictureProp.Draw (when the Graphic property contained a non-TBitmap object, that caused exception with the ClipTransparent = true setting).
- FIX Added Transparency check in TFlexPicture.Paint.
- ADD Added new class in FlexControls - TFlexArc (its functionality is likely to be moved to TFlexEllipse in version 1.40, and it will be identical).
- ADD Added method TFlexControl.CreateInDesign - returns transformation method after creating object interactively (in the ftmSelect mode). By default it returns the parameter IsPointEdit = false; however, for the curve object it can as well return index of the point (in the PointIndex parameter), which will follow the cursor right after it has been created. Can be redefined in TFlexCurve.
- FIX Error in TPropList.SavePropValue during writing of ptHexData - caused exception on attempting to write a zero-length array.
- FIX Exception occurred in TFlexPanel.UpdateMouseData in the ftmCreating mode - the LinkPointsExist setting did not take into account the case of SelectedCount = 0.
- FIX Method TFlexPanel.UpdateCursor moved to the public section.
- ADD Added creating TCustomProp objects within complex TCustomProp (nested flex-properties). For that purpose, in the TCustomProp constructor, which must include the other TCustomProp, call InitPublished(AOwner, FMyCustomProp), whereas FMyCustomProp is an instance of the flex-property.
- ADD Added property TCustomProp.Parent (parent flex-property) and method InitPublished to initialize nested flex-property.
- ADD Added protected-methods of the TPropList class:
- GetComplexPropInstance - returns an instance of the TCustomProp flex-property to another (Prop parameter) by its published-name PropName. Returns Nil if the object is not found.
- SaveComplexProp - writes complex flex-property to filer.
- LoadComplexProp - reads complex flex-property from filer.
- FIX In the AutoSize = true mode, TFlexText did not wrap long lines (added method TFlexText.GetRefreshText, which expands the output area to fit the value to be displayed).
- ADD Added user抯 mode for the ftmUser tool, to which you can switch the pane and set custom cursors in the TFlexPanel.OnUpdateCusror parser. In this mode, the pane will not process mouse clicks and moves in any way (configured by user in the event parser).
- ADD Added optional parameter GroupClass: TFlexGroupClass (nil by default) to method TFlexPanel.Group, which allows creating groups (children TFlexGroup) of different classes.
- ADD Now TFlexArc object can be filled by brush (fixed TFlexArc.Paint).
- ADD Added method TFlexLibItem.MakeCopy for creating a copy of a library item in a selected pane.
- ADD Added transparency support for the entire layer. Attention! It may strongly slow down the system抯 speed when a great number of objects are available on the layer!
- ADD Added the Boolean property TFlexPanel.SelectPartialOverlapped - if true, during selecting objects with a rectangle it is enough that the object抯 portion would appear inside the rectangle for the object to be selected. If false - the object must be inside the selected area completely.
- ADD Added class TTextFormator (in FlexControls unit) for precise text formatting during text output.
- ADD Added flex-property TFlexText.PreciseProp. If PreciseProp.Value = true, the text will be output with the preserved interval between the characters, and the lines will have the same proportional width at any scale (outputting with TTextFormator). Contains false by default.
- FIX C++Builder in some cases (in children of the TFlexCurve class) incorrectly releases the class instances, which have two dynamic array variables defined simultaneously. Changed the sequence of FPoints and FPointTypes in definition of TFlexCurve.
- ADD Added methods BeginSelectionTransformation and EndSelectionTransformation (beginning of group conversion of selected objects) in TFlexControl. Called in methods TFlexPanel BeginSelectionUpdate and EndSelectionUpdate. Overlap in the connector class TFlexConnector.
- FIX If the connector is dragged/scaled/rotated along with its "connected" objects, it will be unlocked, and the "pure" conversion of points will take place instead of rebuilding the route after transforming the connection points.
- ADD Added Boolean property TPictureProp.FastBuffer - if true, the image rasters to the built-in buffer (protected-field FPaintBuffer: TAlphaBuffer) and then uses the quick raster output procedures. The event TPictureProp.OnPaintFastBuffer allows to redefine buffer creation procedures (for instance, take into account transparency of the image).
- ADD In TAlphaBuffer, added methods StoreFromGraphic and PaintStored.
- ADD Added mode for using buffer for the basic object, TFlexControl.FPaintAlphaBufferMode (protected-field). May accept the following values:
- amAuto - Buffer is used if the object is semi-transparent (TFlexControl.Trasparency > 0)
- amRequired - Buffer is used in any case.
- amNotRequired - Buffer is not used in any case.
The field can be set during creation of an object in TFlexControl.ControlCreate. Meanwhile, only used in TFlexPicture when the FastBuffer mode is set (the field FPaintAlphaBufferMode is set to amRequired, which improves the performance).
- ADD Added object TFlexClone - displays the content of the object linked to it (any object, except for the TFlexClone itself, can be linked).
- ADD Added method TFlexPanel.CloneSelected - creates clones for all selected objects.
- FIX Fixed error in TFlexPanel.CopyToClipboard - incorrect positioning of objects in meta file.
- ADD Added class TFlexPaintList and field TFlexPanel.FPaintList - a stack for storing current display parameters (those of the TFlexPanel.PaintTo method). The TFlexPanel.PaintTo method is made to be re-enterable, i.e. objects in TFlexControl.Paint can call TFlexPanel.PaintTo for other objects (used in cloned objects).
- FIX If the function RecodeId (parameter in the function ResolveLinkString) returns 0, the previous identifier value is kept and is not reset to 0 as it used to be done before (sometimes links did not recover after inserting objects from the library).
- FIX FlexGroup had non-functioning psReadOnly flex-property styles for Width and Height (fixed in TFlexPanel.ResizeSelected and TFlexGroup.Translate).
- ADD Added property TBrushProp.BitmapLinkName and method UpdateBitmapLink - functions the same way as TPictureProp.LinkName. Also, added the global variable ResolveBitmapLink in module FlexProps to define image to be brush-filled by name (analog for ResolvePictureLink).
- FIX Pen style used to get lost during printing. Error in TPenProp.Setup (if the pen has style, the width is now 0, and not 1 as it used to be).
- ADD In module FlexBase, added function IndexOfRegisteredFlexControlClass - indexing registered class by name (used in C++ to gain FlexEdit access to flex-object classes written in C++).
- ADD In TFlexPanel, added events OnNeedHint (defines whether a hint can be displayed) and OnShowHint (allows redefining parameters of the hint (text, color, position, etc.))
- FIX TFlexText.Paint had incorrect conversion of the pen size (did not take scale into account).
- FIX Reworked alignment algorithm TTextFormator to improve precision.
- ADD Added properties TFlexPanel HorzScrollExtraSpace and VertScrollExtraSpace - the horizontal and vertical clearance (in pixels) between the page抯 edge and the scrollbar.
- ADD Added class TFlexServiceControl - if an object is this class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -