Neue Features des Objektmodells von FlexPro 8

23.08.2021

In den folgenden Abschnitten finden Sie detaillierte Informationen über alle Änderungen am Objektmodell von FlexPro. Bei den meisten Änderungen, die am Automation Objektmodell von FlexPro 8 gegenüber der Vorgängerversion vorgenommen wurden, handelt es sich um abwärtskompatible Erweiterungen. Solche Änderungen, die eine Anpassung von VBA-Code erfordern, sind im Folgenden farblich gekennzeichnet. Wenn Sie mit einer Compiler-Sprache arbeiten, müssen Sie auf jeden Fall die Typbibliothek von FlexPro 8 importieren und Ihr Programm neu kompilieren. Falls Sie Makros oder Automation-Code von FlexPro 6 nach FlexPro 8 portieren möchten. sollten Sie zunächst die unter Neue Features des Objektmodells von FlexPro 7 aufgeführten die Anpassungen vornehmen.

Änderungen und Erweiterungen an den Analyseobjekten und sonstigen Datenobjekten

Alle Datenobjekte wurden um die Eigenschaften DataTypeX, DataTypeY und DataTypeZ ergänzt. Diese Varianten ohne zusätzliches Argument werden auch im Eigenschaftenfenster von FlexPro angezeigt. Die UnitInBrackets-Eigenschaft wurde um ein optionales Argument erweitert, mit dem die Art der Klammer ausgewählt werden kann. Des Weiteren wurden die Eigenschaften zur Festlegung des Datenbereichs, LowerRangeLimitY, UpperRangeLimitY, LowerRangeLimitX, UpperRangeLimitX, LowerRangeLimitZ und UpperRangeLimitZ sowie die entsprechenden Varianten mit zusätzlichem Argument, das die Komponente auswählt, LowerRangeLimit und UpperRangeLimit hinzugefügt.

Im Analyseobjekt Signalanalyse kann nun nach der Ableitung geglättet werden. Das SignalAnalysis-Objekt wurde deshalb um die Eigenschaften SmoothAfterDerivation und SmoothingWidth erweitert.

Das StatisticQuantityAnalysis-Objekt wurde um die Eigenschaften Composed, XDataSet und ZDataSet erweitert damit die Komponenten der Quelldaten auch als separate Datensätze angegeben werden können.

Im RainflowCountAnalysis-Objekt wurde die Eigenschaft IncludeResidue durch die Eigenschaft Residue ersetzt, die weitere Optionen bietet. Im VBA-Code muss daher ".IncludeResidue = True" in ".Residue = fpRainflowCountResidueInclude" und entsprechend ".IncludeResidue = False" in ".Residue = fpRainflowCountResidueExclude" umgesetzt werden.

Das Analyseobjekt Ereignisisolation verarbeitet nun auch Sequenzen von Ereignissen und unterstützt zusätzliche Ereignisse. Deshalb wurde in das EventIsolation-Objekt die neue Auflistung EventIsolations aufgenommen. Alle Eigenschaften, die ein Ereignis betreffen, wurden in das neue Objekt EventIsolation übertragen. Im VBA-Code müssen daher die Ausdrücke, wie z. B. ".Event" in ".EventIsolations(1).Event" umgesetzt werden.

Einige Analyseoptionen wurden um neue Verfahren ergänzt und die Option Humanschwingungen ist neu hinzugekommen Die Objekte LoudnessAnalysis (Option Akustik), CFCFilterAnalysis (Option Digitale Filter), HumanBodyVibrationAnalysis und HandVibrationAnalysis (beide Option Humanschwingungen) wurden hinzugefügt.

Das neue Analyseobjekt Signalskalierung wird durch das SignalScalingAnalysis-Objekt dargestellt.

Bei der Zeit-Frequenz-Spektralanalyse kann nun die Frequenz durch die Momentandrehzahl ersetzt werden. Das Objekt TimeFreqSpectralAnalysis wurde hierzu um die Eigenschaften SpeedComposed, SpeedDataSet und SpeedXDataSet erweitert.

Änderungen und Erweiterungen an den Präsentationsobjekten

Alle Cursorobjekte (Diagramme, Dokument und Arbeitsblatt) wurden um die Eigenschaften NumberOfHarmonicCursors und HarmonicCursorSpacing sowie die Methoden ZoomHorizontally und ZoomVertically erweitert. Die zusätzliche Eigenschaft CustomCoordinates liefert die neue CustomCoordinates-Auflistung, welche Objekte vom neuen Type CustomCoordinate hält.  Die Eigenschaften MarkerText, MarkerFont, MarkerFrameColor, MarkerLineColor, MarkerBackgroundColor, MarkerPosition und MarkerType wurden entfernt und stattdessen in die Markers-Auflistung eingefügt. Im VBA-Code muss daher z, B. ".MarkerFont" in ".Markers.Font" umgesetzt werden. Entsprechendes gilt für die anderen Eigenschaften.

Die Cursorobjekte können nun die zusätzlichen Ereignisse BeforeZoomVertically, QueryCancelZoomVertically, ZoomVerticallyCanceled, VerticallyZoomed, BeforeZoomHorizontally, QueryCancelZoomHorizontally, ZoomHorizontallyCanceled, HorizontallyZoomed, BeforeCurveTranslate, QueryCancelCurveTranslate, CurveTranslateCanceled und CurveTranslated versenden.

In den Objekten FpCursor und Marker wurde die Eigenschaft Bounded in Bound umbenannt. Im VBA-Code muss daher z, B. ".Bounded" durch ".Bound" ersetzt werden. Die Eigenschaften HarmonicsPositionIndex, HarmonicsPositionX und HarmonicsPositionY sowie die Methoden InterpolateValue und InterpolateRangeBetweenCursors wurden hinzugefügt und die Methoden PlaceMarker und PlaceRangeMarker wurden um ein optionales Argument, welches zwischen lokaler und globaler Marke unterscheidet, ergänzt. Entsprechend wurde das Marker-Objekt um eine Eigenschaft ShowInAllViews ergänzt. In das FpCursor-Objekt wurde die Methode TranslateCurve aufgenommen.

In das Axis2D-Objekt wurde die Eigenschaften AssignedAxis, SizePercentage sowie die Arrow-Eigenschaft aufgenommen, welche das neue Objekt AxisArrow zurückgibt. Die Subdivisions-Eigenschaft liefert nun nicht mehr ein AxisSubdivisions-Objekt, sondern ein AxisDivisions-Objekt, welches die Count-Eigenschaft nicht mehr enthält. Diese Eigenschaft wurde in die Objekte Axis2DScaling und Axis3DScaling als NumberOfSubDivsions eingefügt. Im VBA-Code muss daher ".Subdivisions.Count" in ".Scaling.NumberOfSubdivisions" geändert werden.

In das Axis3D-Objekt und das ColorLegend3D-Objekt wurde die Arrow-Eigenschaft ebenfalls aufgenommen und für die Sudivisions-Eigenschaft gilt das Gleiche wie beim Axis2D-Objekt.

Die Position-Eigenschaft des ColorLegend3D-Objekts verwendet nun den neuen Aufzählungstyp FpColorLegendPosition. Im VBA-Code muss ersetzt werden "ColorLegend.Position = fpPosition" in "ColorLegend.Position = fpColorLegendPosition". Die Eigenschaft Border liefert nun nicht mehr ein Objekt vom Typ LegendBorder sondern direkt ein Objekt vom Typ LineFormat Im VBA-Code ist daher "ColorLegend.Border.Visible = False" durch "ColorLegend.Border.Color = fpColorTransparent" oder "ColorLegend.Border.LineFormat.Color" in "ColorLegend.Border.Color" zu ersetzen.

In das Axis2DLabels-Objekt und das Axis3DLabels-Objekt wurden die Eigenschaften LabelUnit, UnitPosition und TransformAllLabels hinzugefügt.

In das ColorLegend3DLabels-Objekt wurden die Eigenschaften LabelUnit und UnitPosition eingefügt.

Der Mechanismus zur Achsenbeschriftung wurde in FlexPro 8 grundlegend geändert. In den Objekten Axis2DText, Axis3DText und ColorLegend3DText wurde die Combine-Eigenschaft durch die UseTextsFromCurves-Eigenschaft ersetzt. Deren Semantik unterscheidet sich jedoch von Combine. Während Combine den im Axis2DText-Objekt gespeicherten Text als Vorlage für alle Kurvenzüge verwendete, entnimmt UseTextsFromCurves die Texte aus den neuen AxisLabel-Objekten der Kurvenzüge. Wenn Ihr VBA-Code z. B. Anweisungen der Form ".YAxis(1).Text.Text =" enthält, müssen Sie diese, falls UseTextsFromCurves True ist, in ".Curves(i).YAxisLabel.Text = " ersetzen. Den Text selbst müssen Sie ggf. auch abändern, wenn dieser Felder enthält. Die Eigenschaft MultiColor in Axis2DText und Axis3DText wurde in ColorAutomatic umbenannt. Im VBA-Code muss daher ".Text.MultiColor" durch ".Text.ColorAutomatic"  ersetzt werden. Die Objekte Axis2DText, Axis3DText und ColorLegend3DText wurden des Weiteren um die Eigenschaften HorizontalOffset und VerticalOffset erweitert.

Kurvenzüge können nun mit einer Kurvenzugbeschriftung versehen werden und enthalten die Texte zur Beschriftung aller Achsen. Des Weiteren können Kurvenzüge von der Darstellung und vom Cursorn ausgeschlossen werden. In das Curve2D-Objekt  wurde die Eigenschaft CurveLabel, die das neue CurveLabel-Objekt liefert, und die Eigenschaften Visible, AutoScale, Cursor, YAxis, XAxis, YAxisLabel und XAxisLabel hinzugefügt. Die Eigenschaften YCursorFormat und XCursorFormat wurden aus dem Objekt Curve2DData entfernt und in das Objekt Curve2D übertragen. Im VBA-Code muss daher z. B. ".Data.YCursorFormat" in ".YCursorFormat" geändert werden. In das Curve3D-Objekt  wurden die Eigenschaften Visible, AutoScale, Cursor, CurveLabel, YAxisLabel, XAxisLabel, ZAxisLabel und ColorLegendLabel hinzugefügt. Die Eigenschaften YCursorFormat, XCursorFormat und ZCursorFormat wurden aus dem Objekt Curve3DDataSets entfernt und in das Objekt Curve3D übertragen. Im VBA-Code muss daher z. B. ".Datasets.YCursorFormat" in ".YCursorFormat" geändert werden.

Der Algorithmus zur Raumkurvenkonvertierung von 3D-Oberflächen ist nun wählbar. Die Curve3DDataSets-Auflistung wurde deshalb um die Eigenschaft ConversionAlgorithm erweitert. Die Eigenschaften Composed, DataSet und XDataSet wurden hinzugefügt damit der erste Eintrag der Auflistung auch im Eigenschaftenfenster angezeigt wird. Korrespondierend hierzu wurden die Eigenschaften YValueObject, YComponent, XValueObject und XComponent hinzugefügt.

Kurvenzüge in 2D-Diagrammen können nun verschoben werden. In das Curve2DData-Objekt wurden deshalb die Eigenschaften YOffset und XOffset hinzugefügt.

In die Objekte Curve2DSymbols, Curve3DSymbols und Curve2DIndicators und in das neue Objekt CurveLabels wurde die Eigenschaft Offset hinzugefügt, welche den ersten zu visualisierenden Datenpunkt festlegt.

Die Auswahl der Datenbeschriftung von Kurvenzügen erfolgt nun nicht mehr über einen festen Typ sondern über einen Text, in den Platzhalter für die einzelnen Elemente des Datenpunktes eingefügt werden können. Die beiden Objekte Curv2DLabels und Curve3DLabels wurden durch das neue Objekt CurveLabels ersetzt, welches über die zusätzlichen Eigenschaften Offset und BackgroundColor verfügt und statt den Eigenschaften Type und Format die Eigenschaft Text verwendet. Der Text enthält Felder für die zu beschriftenden Daten. Im VBA-Code muss daher z. B. ".Labels.Format = "%.4g" und ".Labels.Type = fpLabelTypeY" bzw. ".Labels.Type = fp3DLabelTypeY" durch ".Labels.Text = "%.4g<YValue>" ersetzt werden.

Das Legend-Objekt wurde um die Eigenschaft LinyByLine erweitert. Die Eigenschaften Border und Interior des Objektes Legend liefern nun nicht mehr die Objekte vom Typ LegendBorder bzw. LegendInterior sondern direkt ein Objekt vom Typ LineFormat bzw. FillFormat. Im VBA-Code muss daher "Legend.Interior.Visible = False" durch "Legend.Interior.Color = fpColorTransparent" oder "Legend.Interior.FillFormat.Color" in "Legend.Interior.Color" geändert werden. Für Border ist entsprechend "Legend.Border.Visible = False" durch "Legend.Border.Color = fpColorTransparent" oder "Legend.Border.LineFormat.Color" in "Legend.Border.Color" zu ersetzen. Des Weiteren wurden im Legend-Objekt die Eigenschaften Title und TitleFont in das neue Objekt LegendTitle ausgelagert. Im VBA-Code ist deshalb zu ersetzen "Legend.Title" durch "Legend.Title.Title", "Legend.TitleFont" in "Legend.Title.Font" und "Legend.TitlePosition" in "Legend.Title.Position".

Das Objekt LegendEntry wurde um die Select-Methode erweitert.

Die Ebenen von Arbeitsblättern können nun in ihrer Größe eingestellt und gesplittet werden. Das Objekt WorksheetPane wurde hierzu um die Eigenschaften Width und Height sowie um die Methoden SplitVertically und SplitHorizontally erweitert.

In Zeichnungen können nun auch Bilder aufgenommen werden, deren Größe auch in Bezug auf die Originalgröße einstellbar ist. Die Shapes-Auflistung wurde daher um die Methode AddImage erweitert und das Shape-Objekt wurde um die Eigenschaften HorizontalScale und VerticalScale erweitert.

Tabellen können in Ihrer Größe nun an den Inhalt angepasst werden. Das ColumnTable-Objekt und das CellTable-Objekt wurden deshalb um die AdjustSizeToContent-Methode erweitert.

Die Positionierung der Tabellenbeschriftung wurde verbessert. Die Position-Eigenschaft der Objekte ColumnTableTitle und CellTableTitle verwenden nun den neuen Aufzählungstyp FpTitlePosition. Im VBA-Code muss ersetzt werden "Title.Position = fpPosition" in "Title.Position = fpTitlePosition".

Die Eigenschaft Selection  des Worksheet-Objekts liefert nun ein WorksheetSelection-Objekt, welches gegenüber dem in FlexPro 7 verwendeten FPObjects-Objekt um die Methoden SelectPane und Paste erweitert wurde.

Änderungen und Erweiterungen an den Aufzählungstypen

In die Aufzählungstypen FpTextDataLinkDataType, FpBinaryDataLinkDataType, FpBinaryDataLinkResultDataType, FpDataType, FpShapeType, FpObjectType, FpTaskWindow, FpCoordinatesDisplayMode, FpCursorScaleAxisMode, FpLegendPosition, FpPenStyle, FpArrowheads, FpSymbolType, Fp3DSymbolType, FpColumnType, FpFillingType, FpEventIsolationEvent, FpEventIsolationResult, FpFourierSpectralProcedure, FpTimeFreqSpectralProcedure, FpTimeFreqAnalysisResult, FpFourierSpectrumType wurden zusätzliche Elemente aufgenommen.

Im Aufzählungstyp FpMoveCursor wurden die Elemente fpMoveCursorNextValue, fpMoveCursorPreviousValue, fpMoveCursor10ValuesForward, fpMoveCursor10ValuesBack, fpMoveCursor10StepsUp, fpMoveCursor10StepsDown, fpMoveCursorSectionForward, fpMoveCursorSectionBack, fpMoveCursorSectionUp, fpMoveCursorSectionDown, fpMoveCursorNextCurve, fpMoveCursorPreviousCurve, fpMoveCursorBothNextCurve und fpMoveCursorBothPreviousCurve umbenannt sowie weitere Elemente hinzugefügt. Die vorherigen Bezeichnungen werden zwar noch unterstützt, sollten aber im VBA-Code ersetzt werden.

Im Aufzählungstyp FpAxisScalingMode wurde das Element fpAxisScalingModeAutomatic, durch die Elemente fpAxisScalingModeMinMax und fpAxisScalingModeDataRange ersetzt. Die Bedeutung von fpAxisScalingModeMinMax  entspricht der von fpAxisScalingModeAutomatic. Wie der VBA-Code angepasst werden muss, ist oben erläutert.

Die Rainflow-Matrix der Option Zählverfahren kann nun in drei Varianten berechnet werden. Im Aufzählungstyp FpRainflowCountMatrix wurde das Element fpRainflowCountRainflowMatrix in fpRainflowCountRainflowMatrixFromTo umbenannt und es wurden zwei weitere Elemente hinzugefügt. Die vorherige Bezeichnung wird zwar noch unterstützt, sollte aber im VBA-Code ersetzt werden.

Die Aufzählungstypen FpBracketType, FpColorLegendPosition, FpTitlePosition, FpArrowPosition, FpUnitPosition, FpConversionAlgorithm, FpLoudnessResult, FpLoudnessAlgorithm, FpLoudnessSoundField, FpLoudnessCalibrationMode, FpNASACDFFormat, FpNASACDFCompression, FpNASACDFEncoding, FpCOMTRADEFormat, FpCOMTRADEVersion, FpHumanBodyVibrationDirection, FpHumanBodyVibrationProcedure, FpHumanBodyVibrationFrequencyWeighting, FpHumanBodyVibrationOutput, FpHandVibrationOutput, FpRenamingOptions, FpRainflowCountResidue und FpSignalScalingMode wurden hinzugefügt.

Die Aufzählungstypen FpLabelType und Fp3DLabelType wurden entfernt. Wie der VBA-Code angepasst werden muss, ist oben erläutert.

Sonstige Änderungen und Erweiterungen

Die Objekte ExportSettingsNASACDF und ExportSettingsCOMTRADE wurden hinzugefügt. Das ExportSettings-Objekt wurde dementsprechend um die Eigenschaften NASACDF und COMTRADE erweitert.

Das Global-Objekt wurde um die AsyncUpdate-Eigenschaft erweitert.

Das Application-Objekt wurde im die Eigenschaften AsyncUpdate und COMMAddIns und um die ForceUpdate und die DefragmentDatabase-Methode erweitert. Die Methoden Update und UpdateAll wurde um ein optionales Argument Async erweitert, mit dem unter FlexPro-Professional eine Aktualisierung im Hintergrund ausgelöst werden kann.

Das Database-Objekt wurde um die Eigenschaften SaveFormulaResults, SaveCalculatedPictures, FPScriptAutoDim, AutoUpdate und MaxDigits sowie um die Methode ResetWindowArrangement erweitert. Die Consolidate-Methode, die zum Defragmentieren einer Datenbank diente, wurde entfernt, da es in FlexPro 8 nicht mehr möglich ist, eine Datenbank zu defragmentieren, während diese geöffnet ist. Im VBA-Code müssen Sie stattdessen die DefragmentDatabase-Methode des Application-Objektes verwenden.

Das FpObjectParameter-Objekt wurde um die Eigenschaften Application und Parent erweitert.

Alle FPObject-Objekte wurden um die Rename-Methode erweitert, mit der gesteuert werden kann, in welchem Umfang Verweise auf das umzubenennende Objekt korrigiert werden sollen. Des Weiteren wurde die FPScriptReference-Eigenschaft hinzugefügt, welche den Namen und ggf. Pfad des Objektes in der Datenbank, formatiert als FPScript-Referenz, zurück gibt.

Für eine eingebettete FPScript-Formel liefert die ParentFolder-Eigenschaft nun den Ordner, in dem sich das Datenobjekt befindet, auf welches die Formel verweist. Das vorherige Verhalten für diesen Fall erhalten Sie, wenn Sie die Parent-Eigenschaft verwenden.

In allen FPObject-Objekten kann die ReadOnly-Eigenschaft nun auch gesetzt werden. Die Eigenschaften Locked und Updating sowie die Methode ForceUpdate wurden hinzugefügt. Die ForceUpdate-Methode steht auch in den Auflistungen FpObjects und DocObjectSelection zur Verfügung. Die Update-Methode wurde um ein optionales Argument Async erweitert, mit dem unter FlexPro-Professional eine Aktualisierung im Hintergrund ausgelöst werden kann.

Die DatabaseSelection-Auflistung wurde um die Methoden ConvertToFormula, Evaluate und Merge erweitert.

FlexPro 8 unterstützt nun Datensätze mit mehr als 2GB Daten. Zur Indizierung solcher Daten reichen 32-Bit Ganzzahlen nicht aus. Visual Basic sieht leider keinen 64-Bit Ganzzahldatentyp vor. Aus diesem Grund wurde in solchen Fällen der Datentyp 64-Bit Fließkomma verwendet. Alle Eigenschaften und Methoden, die Datenindizes verwenden, wurden entsprechend umgestellt. Im VBA-Code müssen Sie entsprechende Variable umstellen, sofern Sie nicht den Variant-Datentyp verwendet haben.

Die Eigenschaft Visible des Curve2DLine und des Waterfall3DLine-Objektes werden nun beim Anlegen eines neuen Diagramms vorgabemäßig auf False gesetzt. Deshalb müssen Sie VBA-Makros, die Sie mit FlexPro 7 aufgezeichnet haben, ggf. überarbeiten und die Eigenschaft auf True setzen.

Siehe auch

Neue Features des Objektmodells von FlexPro 7

Artikel teilen oder als Email versenden:

Diese Beiträge könnten Sie ebenfalls interessieren