├── .gitignore ├── Bin32 ├── Register32bit.bat └── UnRegister32bit.bat ├── Bin64 ├── Register64bit.bat └── UnRegister64bit.bat ├── Build.bat ├── Debug └── Preview Handlers │ └── PreviewHandler Host │ ├── PreviewHost.dpr │ ├── PreviewHost.dproj │ ├── PreviewHost.res │ ├── uHostPreview.pas │ ├── uMain.dfm │ └── uMain.pas ├── Docs └── MarkDown Support Test.md ├── Ext ├── External Projects.md ├── HTMLViewer │ ├── Source │ │ ├── AlphaBlendUn.pas │ │ ├── BegaHtmlPrintPreviewForm.pas │ │ ├── BegaMetaFilePrinter.pas │ │ ├── BegaPreview.dfm │ │ ├── BegaPreview.pas │ │ ├── BegaPreviewForm.dfm │ │ ├── BegaPreviewForm.pas │ │ ├── BegaPreviewPanel.pas │ │ ├── BegaScrollBox.pas │ │ ├── BegaZoom.pas │ │ ├── BuffConv.pas │ │ ├── BuffConvArrays.pas │ │ ├── DitherUnit.pas │ │ ├── FramBrwz.pas │ │ ├── FrameViewerReg.pas │ │ ├── GDIPL2A.pas │ │ ├── HSLUtils.pas │ │ ├── HTMLCompEdit.pas │ │ ├── HTMLGif2.pas │ │ ├── HTMLSubs.pas │ │ ├── HTMLUn2.pas │ │ ├── Html32.res │ │ ├── HtmlBuffer.pas │ │ ├── HtmlCaches.pas │ │ ├── HtmlFonts.pas │ │ ├── HtmlGlobals.pas │ │ ├── HtmlImages.pas │ │ ├── HtmlPrinter.pas │ │ ├── HtmlSymb.pas │ │ ├── Htmlsbs1.pas │ │ ├── MetaFilePrinter.pas │ │ ├── ReadHTML.pas │ │ ├── StylePars.pas │ │ ├── StyleTypes.pas │ │ ├── StyleUn.pas │ │ ├── URLSubs.pas │ │ ├── UrlConn.pas │ │ ├── ZoomAndHandCursor.RES │ │ ├── framview.pas │ │ ├── htmlcons.inc │ │ ├── htmlgif1.pas │ │ ├── htmlmisc.pas │ │ ├── htmlview.pas │ │ ├── msimg32.pas │ │ ├── unicodestringslcl.pas │ │ ├── vwPrint.pas │ │ └── widestringslcl.pas │ └── package │ │ └── Rad Studio 12 │ │ ├── FrameViewer.dpk │ │ ├── FrameViewer.dproj │ │ ├── HTMLViewerPackages12.groupproj │ │ ├── dclFrameViewer.dpk │ │ └── dclFrameViewer.dproj ├── MarkdownProcessor │ └── source │ │ ├── MarkdownCommonMark.pas │ │ ├── MarkdownDaringFireball.pas │ │ ├── MarkdownMathCode.pas │ │ ├── MarkdownProcessor.pas │ │ ├── MarkdownTables.pas │ │ ├── MarkdownTxtMark.pas │ │ └── MarkdownUtils.pas ├── SVGIconImageList │ ├── Image32 │ │ └── source │ │ │ ├── Clipper.Core.pas │ │ │ ├── Clipper.Engine.pas │ │ │ ├── Clipper.Minkowski.pas │ │ │ ├── Clipper.Offset.pas │ │ │ ├── Clipper.RectClip.pas │ │ │ ├── Clipper.inc │ │ │ ├── Clipper.pas │ │ │ ├── Img32.CQ.pas │ │ │ ├── Img32.Clipper2.pas │ │ │ ├── Img32.Draw.pas │ │ │ ├── Img32.Extra.pas │ │ │ ├── Img32.FMX.pas │ │ │ ├── Img32.Fmt.BMP.pas │ │ │ ├── Img32.Fmt.GIF.pas │ │ │ ├── Img32.Fmt.JPG.pas │ │ │ ├── Img32.Fmt.PNG.pas │ │ │ ├── Img32.Fmt.QOI.pas │ │ │ ├── Img32.Fmt.SVG.pas │ │ │ ├── Img32.Layers.pas │ │ │ ├── Img32.Panels.dcr │ │ │ ├── Img32.Panels.pas │ │ │ ├── Img32.Resamplers.pas │ │ │ ├── Img32.SVG.Core.pas │ │ │ ├── Img32.SVG.HashConsts.inc │ │ │ ├── Img32.SVG.HtmlColorConsts.inc │ │ │ ├── Img32.SVG.HtmlHashConsts.inc │ │ │ ├── Img32.SVG.HtmlValues.inc │ │ │ ├── Img32.SVG.Path.pas │ │ │ ├── Img32.SVG.PathDesign.pas │ │ │ ├── Img32.SVG.Reader.pas │ │ │ ├── Img32.Storage.pas │ │ │ ├── Img32.Text.pas │ │ │ ├── Img32.Transform.pas │ │ │ ├── Img32.Vector.pas │ │ │ ├── Img32.Vectorizer.pas │ │ │ ├── Img32.inc │ │ │ └── Img32.pas │ ├── Packages │ │ ├── D12 │ │ │ ├── SVGIconImageList.dpk │ │ │ ├── SVGIconImageList.dproj │ │ │ ├── SVGIconImageListFMX.dpk │ │ │ ├── SVGIconImageListFMX.dproj │ │ │ ├── SVGIconImageListGroupPackages.groupproj │ │ │ ├── SVGIconImageListRestClient.dpk │ │ │ ├── SVGIconImageListRestClient.dproj │ │ │ ├── SVGImage32Package.dpk │ │ │ ├── SVGImage32Package.dproj │ │ │ ├── dclSVGIconImageList.dpk │ │ │ ├── dclSVGIconImageList.dproj │ │ │ ├── dclSVGIconImageListFMX.dpk │ │ │ └── dclSVGIconImageListFMX.dproj │ │ ├── FMX.SVGIconImageListEditorUnit.fmx │ │ ├── FMX.SVGIconImageListEditorUnit.pas │ │ ├── FMX.SVGIconImageRegister.pas │ │ ├── FMX.SVGRESTClientFormUnit.fmx │ │ ├── FMX.SVGRESTClientFormUnit.pas │ │ ├── FMX.SVGTextPropertyEditorUnit.fmx │ │ ├── FMX.SVGTextPropertyEditorUnit.pas │ │ ├── GetItLogo.png │ │ ├── ListBoxItemStyleBook.style │ │ ├── SVGIconImageCollectionComponentIcon.png │ │ ├── SVGIconImageComponentIcon.png │ │ ├── SVGIconImageList.dcr │ │ ├── SVGIconImageListComponentIcon.png │ │ ├── SVGIconImageListEditorUnit.dfm │ │ ├── SVGIconImageListEditorUnit.pas │ │ ├── SVGIconImageListNew.dcr │ │ ├── SVGIconImageRegister.pas │ │ ├── SVGIconSetFormUnit.dfm │ │ ├── SVGIconSetFormUnit.pas │ │ ├── SVGIconVirtualImageListComponentIcon.png │ │ ├── SVGRESTClientFormUnit.dfm │ │ ├── SVGRESTClientFormUnit.pas │ │ ├── SVGTextPropertyEditorUnit.dfm │ │ ├── SVGTextPropertyEditorUnit.pas │ │ └── SvgIconImageListSplash.res │ └── Source │ │ ├── Browser.IconifyApi.pas │ │ ├── D2DSVGFactory.pas │ │ ├── FMX.Image32SVG.pas │ │ ├── FMX.ImageSVG.pas │ │ ├── FMX.ImageSkiaSVG.pas │ │ ├── FMX.SVGIconImage.pas │ │ ├── FMX.SVGIconImageList.pas │ │ ├── FMX.SVGIconsUtils.pas │ │ ├── Image32SVGFactory.pas │ │ ├── SVGIconImage.pas │ │ ├── SVGIconImageCollection.pas │ │ ├── SVGIconImageList.inc │ │ ├── SVGIconImageList.pas │ │ ├── SVGIconImageListBase.pas │ │ ├── SVGIconItems.pas │ │ ├── SVGIconUtils.pas │ │ ├── SVGIconVirtualImageList.pas │ │ ├── SVGInterfaces.pas │ │ ├── SVGMessaging.pas │ │ ├── SkiaSVGFactory.pas │ │ ├── Winapi.D2DMissing.pas │ │ ├── dlgExportPNG.dfm │ │ └── dlgExportPNG.pas ├── StyledComponents │ ├── packages │ │ ├── D12 │ │ │ ├── 1.Vcl.StyledComponents.groupproj │ │ │ ├── 2.Vcl.StyledAnimatedComponents.groupproj │ │ │ ├── StyledAnimatedComponents.dpk │ │ │ ├── StyledAnimatedComponents.dproj │ │ │ ├── StyledComponents.dpk │ │ │ ├── StyledComponents.dproj │ │ │ ├── dclStyledAnimatedComponents.dpk │ │ │ ├── dclStyledAnimatedComponents.dproj │ │ │ ├── dclStyledComponents.dpk │ │ │ └── dclStyledComponents.dproj │ │ ├── StyledAnimatedButton.dcr │ │ ├── StyledAnimatedTaskDialog.dcr │ │ ├── StyledAnimatedToolBar.dcr │ │ ├── StyledButton.dcr │ │ ├── StyledButtonGroup.dcr │ │ ├── StyledCategoryButtons.dcr │ │ ├── StyledComponentsSplash.res │ │ ├── StyledDbNavigator.dcr │ │ ├── StyledTaskDialog.dcr │ │ ├── StyledToolBar.dcr │ │ ├── Vcl.StyledAnimatedComponentsRegister.pas │ │ ├── Vcl.StyledAttributesFrameUnit.dfm │ │ ├── Vcl.StyledAttributesFrameUnit.pas │ │ ├── Vcl.StyledButtonCustomEditorUnit.dfm │ │ ├── Vcl.StyledButtonCustomEditorUnit.pas │ │ ├── Vcl.StyledButtonEditorUnit.dfm │ │ ├── Vcl.StyledButtonEditorUnit.pas │ │ └── Vcl.StyledComponentsRegister.pas │ └── source │ │ ├── Animations.RES │ │ ├── Animations.rc │ │ ├── BuildResFileOfAnimations.cmd │ │ ├── CommandLinkBMP.RES │ │ ├── CommandLinkPNG.RES │ │ ├── Skia.Vcl.StyledTaskDialogAnimatedUnit.dfm │ │ ├── Skia.Vcl.StyledTaskDialogAnimatedUnit.pas │ │ ├── StyledButtonsBMP.RES │ │ ├── StyledButtonsPNG.RES │ │ ├── StyledComponents.inc │ │ ├── StyledNavButtonsBMP.RES │ │ ├── StyledNavButtonsPNG.RES │ │ ├── Vcl.AngularButtonStyles.pas │ │ ├── Vcl.BootstrapButtonStyles.pas │ │ ├── Vcl.ButtonStylesAttributes.pas │ │ ├── Vcl.ColorButtonStyles.pas │ │ ├── Vcl.SkAnimatedImageHelper.pas │ │ ├── Vcl.StandardButtonStyles.pas │ │ ├── Vcl.StyledAnimatedButton.pas │ │ ├── Vcl.StyledAnimatedTaskDialog.pas │ │ ├── Vcl.StyledAnimatedToolbar.pas │ │ ├── Vcl.StyledButton.pas │ │ ├── Vcl.StyledButtonGroup.pas │ │ ├── Vcl.StyledCategoryButtons.pas │ │ ├── Vcl.StyledCmpMessages.pas │ │ ├── Vcl.StyledCmpStrUtils.pas │ │ ├── Vcl.StyledCompResources.dfm │ │ ├── Vcl.StyledComponentsHooks.pas │ │ ├── Vcl.StyledDbNavigator.pas │ │ ├── Vcl.StyledGraphicsUtils.pas │ │ ├── Vcl.StyledMessagesHooks.pas │ │ ├── Vcl.StyledTaskDialog.pas │ │ ├── Vcl.StyledTaskDialogFormUnit.dfm │ │ ├── Vcl.StyledTaskDialogFormUnit.pas │ │ ├── Vcl.StyledTaskDialogStdUnit.dfm │ │ ├── Vcl.StyledTaskDialogStdUnit.pas │ │ ├── Vcl.StyledToolbar.pas │ │ └── Vcl.TemplateButtonStyles.pas ├── SynEdit │ ├── Packages │ │ ├── Delphi12.groupproj │ │ ├── SynEdit_D12.dpk │ │ ├── SynEdit_D12.dproj │ │ ├── SynEdit_R12.dpk │ │ └── SynEdit_R12.dproj │ └── Source │ │ ├── DPageSetup.dfm │ │ ├── DPageSetup.pas │ │ ├── FSynHighlightProp.dfm │ │ ├── FSynHighlightProp.pas │ │ ├── FTestPrintPreview.dfm │ │ ├── FTestPrintPreview.pas │ │ ├── Page.bmp │ │ ├── SynAccessibility.pas │ │ ├── SynAutoCorrect.pas │ │ ├── SynAutoCorrectEditor.dfm │ │ ├── SynAutoCorrectEditor.pas │ │ ├── SynCompletionProposal.pas │ │ ├── SynDBEdit.pas │ │ ├── SynDWrite.pas │ │ ├── SynEdit.inc │ │ ├── SynEdit.pas │ │ ├── SynEdit.res │ │ ├── SynEditCodeFolding.pas │ │ ├── SynEditDataObject.pas │ │ ├── SynEditDragDrop.pas │ │ ├── SynEditExport.pas │ │ ├── SynEditHighlighter.pas │ │ ├── SynEditHighlighterOptions.pas │ │ ├── SynEditJedi.inc │ │ ├── SynEditKbdHandler.pas │ │ ├── SynEditKeyCmdEditor.dfm │ │ ├── SynEditKeyCmdEditor.pas │ │ ├── SynEditKeyCmds.pas │ │ ├── SynEditKeyCmdsEditor.dfm │ │ ├── SynEditKeyCmdsEditor.pas │ │ ├── SynEditKeyConst.pas │ │ ├── SynEditMiscClasses.pas │ │ ├── SynEditMiscProcs.pas │ │ ├── SynEditOptionsDialog.dfm │ │ ├── SynEditOptionsDialog.pas │ │ ├── SynEditPlugins.pas │ │ ├── SynEditPrint.pas │ │ ├── SynEditPrintHeaderFooter.pas │ │ ├── SynEditPrintMargins.pas │ │ ├── SynEditPrintMarginsDialog.dfm │ │ ├── SynEditPrintMarginsDialog.pas │ │ ├── SynEditPrintPreview.pas │ │ ├── SynEditPrintTypes.pas │ │ ├── SynEditPrinterInfo.pas │ │ ├── SynEditPropertyReg.pas │ │ ├── SynEditPythonBehaviour.pas │ │ ├── SynEditReg.dcr │ │ ├── SynEditReg.pas │ │ ├── SynEditReg.res │ │ ├── SynEditRegexSearch.pas │ │ ├── SynEditScrollBars.pas │ │ ├── SynEditSearch.pas │ │ ├── SynEditStrConst.pas │ │ ├── SynEditTextBuffer.pas │ │ ├── SynEditTypes.pas │ │ ├── SynEditUndo.pas │ │ ├── SynEditWildcardSearch.pas │ │ ├── SynEditWordWrap.pas │ │ ├── SynExportHTML.pas │ │ ├── SynExportRTF.pas │ │ ├── SynExportTeX.pas │ │ ├── SynHighlighterADSP21xx.pas │ │ ├── SynHighlighterAWK.pas │ │ ├── SynHighlighterAsm.pas │ │ ├── SynHighlighterBaan.pas │ │ ├── SynHighlighterBat.pas │ │ ├── SynHighlighterCAC.pas │ │ ├── SynHighlighterCPM.pas │ │ ├── SynHighlighterCS.pas │ │ ├── SynHighlighterCache.pas │ │ ├── SynHighlighterCobol.pas │ │ ├── SynHighlighterCpp.pas │ │ ├── SynHighlighterCss.pas │ │ ├── SynHighlighterDOT.pas │ │ ├── SynHighlighterDWS.pas │ │ ├── SynHighlighterDfm.pas │ │ ├── SynHighlighterDml.pas │ │ ├── SynHighlighterEiffel.pas │ │ ├── SynHighlighterFortran.pas │ │ ├── SynHighlighterFoxpro.pas │ │ ├── SynHighlighterGWS.pas │ │ ├── SynHighlighterGalaxy.pas │ │ ├── SynHighlighterGeneral.pas │ │ ├── SynHighlighterHC11.pas │ │ ├── SynHighlighterHP48.pas │ │ ├── SynHighlighterHaskell.pas │ │ ├── SynHighlighterHtml.pas │ │ ├── SynHighlighterIDL.pas │ │ ├── SynHighlighterIni.pas │ │ ├── SynHighlighterInno.pas │ │ ├── SynHighlighterJSON.pas │ │ ├── SynHighlighterJScript.pas │ │ ├── SynHighlighterJava.pas │ │ ├── SynHighlighterKix.pas │ │ ├── SynHighlighterLDraw.pas │ │ ├── SynHighlighterLLVM.pas │ │ ├── SynHighlighterM3.pas │ │ ├── SynHighlighterManager.pas │ │ ├── SynHighlighterModelica.pas │ │ ├── SynHighlighterMsg.pas │ │ ├── SynHighlighterMulti.pas │ │ ├── SynHighlighterOmni.pas │ │ ├── SynHighlighterPHP.pas │ │ ├── SynHighlighterPas.pas │ │ ├── SynHighlighterPerl.pas │ │ ├── SynHighlighterProgress.pas │ │ ├── SynHighlighterPython.pas │ │ ├── SynHighlighterRC.pas │ │ ├── SynHighlighterRexx.pas │ │ ├── SynHighlighterRuby.pas │ │ ├── SynHighlighterSDD.pas │ │ ├── SynHighlighterSQL.pas │ │ ├── SynHighlighterST.pas │ │ ├── SynHighlighterSml.pas │ │ ├── SynHighlighterTclTk.pas │ │ ├── SynHighlighterTeX.pas │ │ ├── SynHighlighterUNIXShellScript.pas │ │ ├── SynHighlighterURI.pas │ │ ├── SynHighlighterUnreal.pas │ │ ├── SynHighlighterVB.pas │ │ ├── SynHighlighterVBScript.pas │ │ ├── SynHighlighterVrml97.pas │ │ ├── SynHighlighterWebIDL.pas │ │ ├── SynHighlighterXML.pas │ │ ├── SynHighlighterYAML.pas │ │ ├── SynMacroRecorder.pas │ │ ├── SynOmniSetupDialog.dfm │ │ ├── SynOmniSetupDialog.pas │ │ ├── SynSpellCheck.dcr │ │ ├── SynSpellCheck.pas │ │ ├── SynURIOpener.pas │ │ ├── SynUnicode.pas │ │ ├── dlgConfirmReplace.dfm │ │ ├── dlgConfirmReplace.pas │ │ ├── dlgReplaceText.dfm │ │ ├── dlgReplaceText.pas │ │ ├── dlgSearchText.dfm │ │ └── dlgSearchText.pas ├── SynPDF │ ├── README.md │ ├── SynCommons.pas │ ├── SynCrypto.pas │ ├── SynDoubleToText.inc │ ├── SynFPCTypInfo.pas │ ├── SynGdiPlus.pas │ ├── SynLZ.pas │ ├── SynPdf.pas │ ├── SynTable.pas │ ├── SynZip.pas │ ├── Synopse.inc │ ├── SynopseCommit.inc │ ├── crc32c64.obj │ ├── deflate.obj │ ├── mORMotReport.pas │ ├── sha512-x64sse4.obj │ ├── sha512-x86.obj │ └── trees.obj ├── VCLStyleUtils │ ├── Common │ │ ├── AwesomeFont.RC │ │ ├── AwesomeFont.RES │ │ ├── AwesomeFont_zip.RC │ │ ├── AwesomeFont_zip.RES │ │ ├── CompileResources.bat │ │ ├── CompileResources_zip.bat │ │ ├── VCL.Styles.Utils.inc │ │ ├── Vcl.PlatformVclStylesActnCtrls.pas │ │ ├── Vcl.Styles.ColorTabs.pas │ │ ├── Vcl.Styles.ControlColor.pas │ │ ├── Vcl.Styles.DPIAware.pas │ │ ├── Vcl.Styles.DateTimePickers.pas │ │ ├── Vcl.Styles.DbGrid.pas │ │ ├── Vcl.Styles.Ext.pas │ │ ├── Vcl.Styles.Fixes.pas │ │ ├── Vcl.Styles.FontAwesome.pas │ │ ├── Vcl.Styles.FormStyleHooks.pas │ │ ├── Vcl.Styles.Hooks.pas │ │ ├── Vcl.Styles.NC.pas │ │ ├── Vcl.Styles.OwnerDrawFix.pas │ │ ├── Vcl.Styles.Preview.pas │ │ ├── Vcl.Styles.Register.pas │ │ ├── Vcl.Styles.Utils.ComCtrls.pas │ │ ├── Vcl.Styles.Utils.Forms.pas │ │ ├── Vcl.Styles.Utils.Graphics.pas │ │ ├── Vcl.Styles.Utils.Menus.pas │ │ ├── Vcl.Styles.Utils.Misc.pas │ │ ├── Vcl.Styles.Utils.ScreenTips.pas │ │ ├── Vcl.Styles.Utils.StdCtrls.pas │ │ ├── Vcl.Styles.Utils.SysControls.pas │ │ ├── Vcl.Styles.Utils.SysStyleHook.pas │ │ ├── Vcl.Styles.Utils.SystemMenu.pas │ │ ├── Vcl.Styles.Utils.pas │ │ ├── Vcl.Styles.UxTheme.pas │ │ └── Vcl.Styles.WebBrowser.pas │ └── DDetours │ │ └── Source │ │ ├── CPUID.pas │ │ ├── DDetours.pas │ │ ├── DDetoursDefs.inc │ │ ├── InstDecode.pas │ │ ├── LegacyTypes.pas │ │ ├── ModRmFlagsTables.inc │ │ ├── OpCodesTables.inc │ │ └── TlHelp32.inc └── dzlib │ └── src │ ├── License.txt │ ├── dzlib.inc │ ├── dzlibjedi.inc │ ├── i_dzAutoComplete.pas │ ├── u_Int64List.pas │ ├── u_PCharQueue.pas │ ├── u_StringQueue.pas │ ├── u_dzAbstractHandler.pas │ ├── u_dzAdoDbUniqueId.pas │ ├── u_dzAdvancedObject.pas │ ├── u_dzAngle.pas │ ├── u_dzAssertTrace.pas │ ├── u_dzAsyncExec.pas │ ├── u_dzAutoCompleteDirs.pas │ ├── u_dzAutoCompleteFiles.pas │ ├── u_dzAutoCompletePath.pas │ ├── u_dzAutoCompleteStrings.pas │ ├── u_dzBeep.pas │ ├── u_dzBitmap8.pas │ ├── u_dzBubbleSort.pas │ ├── u_dzCallbackThread.pas │ ├── u_dzClassUtils.pas │ ├── u_dzCmdLineParser.pas │ ├── u_dzCmdLineParserStates.pas │ ├── u_dzCocktailSort.pas │ ├── u_dzCombSort.pas │ ├── u_dzCompilerAndRtlVersions.pas │ ├── u_dzConfigUtils.pas │ ├── u_dzConnectionString.pas │ ├── u_dzConsoleLogger.pas │ ├── u_dzConvertUtils.pas │ ├── u_dzCriticalSection.pas │ ├── u_dzCsvColumnList.pas │ ├── u_dzCsvWriter.pas │ ├── u_dzCustomDllLoader.pas │ ├── u_dzDatasetDump.pas │ ├── u_dzDatasetHelpers.pas │ ├── u_dzDatasetHelpersADO.pas │ ├── u_dzDatasetHelpersAnyDac.pas │ ├── u_dzDatasetHelpersBDE.pas │ ├── u_dzDatasetHelpersSDAC.pas │ ├── u_dzDatasetHelpersTdbf.pas │ ├── u_dzDatasetHelpersTopaz.pas │ ├── u_dzDatasetHelpersZEOS.pas │ ├── u_dzDateUtils.pas │ ├── u_dzDbUtils.pas │ ├── u_dzDefaultMain.pas │ ├── u_dzDelphiIdeUtils.pas │ ├── u_dzDialogUtils.pas │ ├── u_dzDisableNtDllDbgBreakpoint.pas │ ├── u_dzDllApi.pas │ ├── u_dzDllLoader.pas │ ├── u_dzDpiScaleUtils.pas │ ├── u_dzDpiScaleUtilsDummy.pas │ ├── u_dzDuration.pas │ ├── u_dzDynamicExtendedArray.pas │ ├── u_dzErrorThread.pas │ ├── u_dzErrorThreadList.pas │ ├── u_dzExecutor.pas │ ├── u_dzExtendedList.pas │ ├── u_dzFileStreams.pas │ ├── u_dzFileTypes.pas │ ├── u_dzFileUtils.pas │ ├── u_dzFmxUtils.pas │ ├── u_dzGetOpt.pas │ ├── u_dzGoogleTranslate.pas │ ├── u_dzGraphicsUtils.pas │ ├── u_dzGuiTestRunner.pas │ ├── u_dzGuidUtils.pas │ ├── u_dzHighPerformanceTimer.pas │ ├── u_dzICalDuration.pas │ ├── u_dzICalParser.pas │ ├── u_dzICalendar.pas │ ├── u_dzInputValidator.pas │ ├── u_dzInputValidatorCheckListbox.pas │ ├── u_dzInputValidatorJVCL.pas │ ├── u_dzInputValidatorMarkerList.pas │ ├── u_dzInsertionSort.pas │ ├── u_dzInt64List.pas │ ├── u_dzIntegerList.pas │ ├── u_dzIso8601.pas │ ├── u_dzJclUtils.pas │ ├── u_dzJvclUtils.pas │ ├── u_dzLineBuilder.pas │ ├── u_dzList.pas │ ├── u_dzLogConsole.pas │ ├── u_dzLogging.pas │ ├── u_dzMagickWand.pas │ ├── u_dzMapFileReader.pas │ ├── u_dzMiscUtils.pas │ ├── u_dzMutex.pas │ ├── u_dzNameBoolList.pas │ ├── u_dzNameValueList.pas │ ├── u_dzNameValueListUnsorted.pas │ ├── u_dzNamedThread.pas │ ├── u_dzNullableCardinal.pas │ ├── u_dzNullableDate.pas │ ├── u_dzNullableDateTime.pas │ ├── u_dzNullableDouble.pas │ ├── u_dzNullableExtended.pas │ ├── u_dzNullableInt64.pas │ ├── u_dzNullableInteger.pas │ ├── u_dzNullableSingle.pas │ ├── u_dzNullableString.pas │ ├── u_dzNullableTime.pas │ ├── u_dzNullableTimespan.pas │ ├── u_dzNullableTypesUtils.pas │ ├── u_dzObjectGuard.pas │ ├── u_dzOptionDescList.pas │ ├── u_dzOptionFoundList.pas │ ├── u_dzOptionNameList.pas │ ├── u_dzOsUtils.pas │ ├── u_dzPackageInfo.pas │ ├── u_dzParallelSort.pas │ ├── u_dzParamDescList.pas │ ├── u_dzParamFoundList.pas │ ├── u_dzPerformanceTiming.pas │ ├── u_dzProgress.pas │ ├── u_dzProgressBarText.pas │ ├── u_dzProgressThread.pas │ ├── u_dzQuicksort.pas │ ├── u_dzQuicksortPlus.pas │ ├── u_dzRecordArray.pas │ ├── u_dzResourceDllLoader.pas │ ├── u_dzRingBuffer.pas │ ├── u_dzSaxParser.pas │ ├── u_dzSelectDirectoryFix.pas │ ├── u_dzSetFocusFix.pas │ ├── u_dzShapeFileConsts.pas │ ├── u_dzShapeFileReader.pas │ ├── u_dzShapeFileWriter.pas │ ├── u_dzSharpen8.pas │ ├── u_dzShellApiUtils.pas │ ├── u_dzSortProvider.pas │ ├── u_dzSortUtils.pas │ ├── u_dzSortedExtendedList.pas │ ├── u_dzSortedInt64List.pas │ ├── u_dzSortedIntegerList.pas │ ├── u_dzSortedIntegerListInterfaced.pas │ ├── u_dzSpeedBitBtn.pas │ ├── u_dzSpinLock.pas │ ├── u_dzStatistics.pas │ ├── u_dzStatusPanelManager.pas │ ├── u_dzStdOut.pas │ ├── u_dzStopwatch.pas │ ├── u_dzStreamCache.pas │ ├── u_dzStringArrayUtils.pas │ ├── u_dzStringPool.pas │ ├── u_dzStringUtils.pas │ ├── u_dzStringsGuard.pas │ ├── u_dzSynopse.pas │ ├── u_dzSystemCritical.pas │ ├── u_dzTeeChartUtils.pas │ ├── u_dzTempBufferDouble.pas │ ├── u_dzTextFile.pas │ ├── u_dzTextTestRunner.pas │ ├── u_dzTimSortInteger.pas │ ├── u_dzTimSortString.pas │ ├── u_dzTimSortUtils.pas │ ├── u_dzTranslator.pas │ ├── u_dzTranslatorAdo.pas │ ├── u_dzTranslatorBDE.pas │ ├── u_dzTranslatorDb.pas │ ├── u_dzTranslatorFastReport.pas │ ├── u_dzTranslatorJVCL.pas │ ├── u_dzTranslatorReportBuilder.pas │ ├── u_dzTypInfo.pas │ ├── u_dzTypes.pas │ ├── u_dzTypesUtils.pas │ ├── u_dzUnitTestUtils.pas │ ├── u_dzUnsortedNameValueList.pas │ ├── u_dzVariantUtils.pas │ ├── u_dzVclHelpers.pas │ ├── u_dzVclUtils.pas │ ├── u_dzVersionInfo.pas │ ├── u_dzWinApi.pas │ └── u_dzWmMessageToString.pas ├── Help ├── MarkDown Support Test.md └── markdownlogo.png ├── Icons ├── blockquote.svg ├── bold.svg ├── code.svg ├── header1.svg ├── header2.svg ├── header3.svg ├── help.svg ├── horizontal_rule.svg ├── image.svg ├── italic.svg ├── link.svg ├── logo.ico ├── logo.svg ├── marker.svg ├── md.svg ├── md1.svg ├── md2.svg ├── mdfolder.svg ├── mdfolder_multires.ico ├── ordered_list.svg ├── setup.ico ├── setup.svg ├── strike.svg ├── subscript.svg ├── superscript.svg ├── table.svg ├── underline.svg └── unordered_list.svg ├── Images ├── About.png ├── InsertImage.png ├── MDBanner.png ├── MDTextEditorBanner.jpg ├── MDTextEditorDark.png ├── MDTextEditorLight.png ├── PreviewPanelDark.png ├── Setup.png ├── blockquote.png ├── bold.png ├── code.png ├── header1.png ├── header2.png ├── header3.png ├── help.png ├── horizontal_rule.png ├── image.png ├── italic.png ├── link.png ├── marker.png ├── ordered_list.png ├── strike.png ├── subscript.png ├── superscript.png ├── table.png ├── underline.png └── unordered_list.png ├── LICENSE ├── README.htm ├── README.md ├── Setup ├── License_ENG.rtf ├── Licenza_ITA.rtf ├── MDShellExtensions.iss ├── Settings.ini ├── SupportingDelphi.jpg ├── WizEtheaImage.bmp ├── WizEtheaSmallImage.bmp ├── WizEtheaSmallImage110x106.bmp ├── WizEtheaSmallImage119x123.bmp ├── WizEtheaSmallImage138x140.bmp ├── WizEtheaSmallImage64x68.bmp ├── WizEtheaSmallImage83x80.bmp └── WizEtheaSmallImage92x97.bmp ├── Source ├── ChildForm.dfm ├── ChildForm.pas ├── DPageSetup.dfm ├── DPageSetup.pas ├── EtheaMultires.ico ├── MDShellEx.About.dfm ├── MDShellEx.About.pas ├── MDShellEx.ContextMenuHandler.pas ├── MDShellEx.Main.pas ├── MDShellEx.Misc.pas ├── MDShellEx.PreviewForm.dfm ├── MDShellEx.PreviewForm.pas ├── MDShellEx.PreviewHandler.pas ├── MDShellEx.PreviewHandlerRegister.pas ├── MDShellEx.Registry.pas ├── MDShellEx.Resources.dfm ├── MDShellEx.Resources.pas ├── MDShellEx.Settings.pas ├── MDShellEx.SettingsForm.dfm ├── MDShellEx.SettingsForm.pas ├── MDShellEx.Splash.dfm ├── MDShellEx.Splash.pas ├── MDShellEx.ThumbnailHandler.pas ├── MDShellEx.ThumbnailHandlerRegister.pas ├── MDShellEx.dlgCreateTable.dfm ├── MDShellEx.dlgCreateTable.pas ├── MDShellExtensions.dpr ├── MDShellExtensions.dproj ├── MDShellExtensions.res ├── MDShellExtensions32.dpr ├── MDShellExtensions32.dproj ├── MDShellExtensions32.res ├── MDShellExtensionsGroup.groupproj ├── MDTextEditor.ViewerMainForm.dfm ├── MDTextEditor.ViewerMainForm.pas ├── MDTextEditor.dpr ├── MDTextEditor.dproj ├── MDTextEditor.res ├── PKCS7Extractor.pas ├── SynEditOptionsDialog.dfm ├── SynEditOptionsDialog.pas ├── dlgConfirmReplace.dfm ├── dlgConfirmReplace.pas ├── dlgInputUrl.dfm ├── dlgInputUrl.pas ├── dlgReplaceText.dfm ├── dlgReplaceText.pas ├── dlgSearchText.dfm ├── dlgSearchText.pas ├── uCommonPreviewHandler.pas ├── uDragDropUtils.pas ├── uFilePreviewHandler.pas ├── uLogExcept.pas ├── uPreviewContainer.dfm ├── uPreviewContainer.pas ├── uPreviewHandler.pas ├── uRegistry.pas ├── uStackTrace.pas ├── uStreamAdapter.pas ├── uStreamPreviewHandler.pas └── vmHtmlToPdf.pas └── Unregister_Register.cmd /.gitignore: -------------------------------------------------------------------------------- 1 | # Uncomment these types if you want even more clean repository. But be careful. 2 | # It can make harm to an existing project source. Read explanations below. 3 | # 4 | # Resource files are binaries containing manifest, project icon and version info. 5 | # They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files. 6 | #*.res 7 | # 8 | # Type library file (binary). In old Delphi versions it should be stored. 9 | # Since Delphi 2009 it is produced from .ridl file and can safely be ignored. 10 | #*.tlb 11 | # 12 | # Diagram Portfolio file. Used by the diagram editor up to Delphi 7. 13 | # Uncomment this if you are not using diagrams or use newer Delphi version. 14 | #*.ddp 15 | # 16 | # Visual LiveBindings file. Added in Delphi XE2. 17 | # Uncomment this if you are not using LiveBindings Designer. 18 | #*.vlb 19 | # 20 | # Deployment Manager configuration file for your project. Added in Delphi XE2. 21 | # Uncomment this if it is not mobile development and you do not use remote debug feature. 22 | #*.deployproj 23 | # 24 | # C++ object files produced when C/C++ Output file generation is configured. 25 | # Uncomment this if you are not using external objects (zlib library for example). 26 | #*.obj 27 | # 28 | 29 | # Delphi compiler-generated binaries (safe to delete) 30 | *.exe 31 | *.dll 32 | *.bpl 33 | *.bpi 34 | *.dcp 35 | *.so 36 | *.apk 37 | *.drc 38 | *.map 39 | *.dres 40 | *.rsm 41 | *.tds 42 | *.dcu 43 | *.lib 44 | *.a 45 | *.o 46 | *.ocx 47 | 48 | # Delphi autogenerated files (duplicated info) 49 | *.cfg 50 | *.hpp 51 | *Resource.rc 52 | 53 | # Delphi local files (user-specific info) 54 | *.local 55 | *.identcache 56 | *.projdata 57 | *.tvsconfig 58 | *.dsk 59 | 60 | # Delphi history and backups 61 | __history/ 62 | __recovery/ 63 | *.~* 64 | 65 | # Castalia statistics file (since XE7 Castalia is distributed with Delphi) 66 | *.stat 67 | 68 | # Boss dependency manager vendor folder https://github.com/HashLoad/boss 69 | modules/ 70 | -------------------------------------------------------------------------------- /Bin32/Register32bit.bat: -------------------------------------------------------------------------------- 1 | %systemroot%\SysWoW64\regsvr32 "D:\ETHEA\MarkdownShellExtensions\Bin32\MDShellExtensions32.dll" -------------------------------------------------------------------------------- /Bin32/UnRegister32bit.bat: -------------------------------------------------------------------------------- 1 | %systemroot%\SysWoW64\regsvr32 /u "D:\ETHEA\MarkdownShellExtensions\Bin32\MDShellExtensions32.dll" -------------------------------------------------------------------------------- /Bin64/Register64bit.bat: -------------------------------------------------------------------------------- 1 | %systemroot%\System32\regsvr32 "D:\ETHEA\MarkdownShellExtensions\Bin64\MDShellExtensions.dll" -------------------------------------------------------------------------------- /Bin64/UnRegister64bit.bat: -------------------------------------------------------------------------------- 1 | %systemroot%\System32\regsvr32 /u "D:\ETHEA\MarkdownShellExtensions\Bin64\MDShellExtensions.dll" 2 | -------------------------------------------------------------------------------- /Build.bat: -------------------------------------------------------------------------------- 1 | call "C:\BDS\Studio\23.0\bin\rsvars.bat" 2 | msbuild.exe "Source\MDShellExtensions.dproj" /target:Clean;Build /p:Platform=Win64 /p:config=release 3 | msbuild.exe "Source\MDShellExtensions32.dproj" /target:Clean;Build /p:Platform=Win32 /p:config=release 4 | msbuild.exe "Source\MDTextEditor.dproj" /target:Clean;Build /p:Platform=Win64 /p:config=release 5 | msbuild.exe "Source\MDTextEditor.dproj" /target:Clean;Build /p:Platform=Win32 /p:config=release 6 | 7 | call D:\ETHEA\Certificate\SignFileWithSectico.bat D:\ETHEA\MarkdownShellExtensions\Bin32\MDTextEditor.exe 8 | call D:\ETHEA\Certificate\SignFileWithSectico.bat D:\ETHEA\MarkdownShellExtensions\Bin64\MDTextEditor.exe 9 | 10 | :INNO 11 | "C:\Program Files (x86)\Inno Setup 6\iscc.exe" "D:\ETHEA\MarkdownShellExtensions\Setup\MDShellExtensions.iss" 12 | set INNO_STATUS=%ERRORLEVEL% 13 | if %INNO_STATUS%==0 GOTO SIGNSETUP 14 | pause 15 | EXIT 16 | 17 | :SIGNSETUP 18 | call D:\ETHEA\Certificate\SignFileWithSectico.bat D:\ETHEA\MarkdownShellExtensions\Setup\Output\MDShellExtensionsSetup.exe 19 | 20 | :END 21 | pause 22 | -------------------------------------------------------------------------------- /Debug/Preview Handlers/PreviewHandler Host/PreviewHost.dpr: -------------------------------------------------------------------------------- 1 | program PreviewHost; 2 | 3 | uses 4 | Vcl.Forms, 5 | uMain in 'uMain.pas' {FrmMain}, 6 | uHostPreview in 'uHostPreview.pas'; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.MainFormOnTaskbar := True; 13 | Application.CreateForm(TFrmMain, FrmMain); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /Debug/Preview Handlers/PreviewHandler Host/PreviewHost.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Debug/Preview Handlers/PreviewHandler Host/PreviewHost.res -------------------------------------------------------------------------------- /Debug/Preview Handlers/PreviewHandler Host/uMain.dfm: -------------------------------------------------------------------------------- 1 | object FrmMain: TFrmMain 2 | Left = 0 3 | Top = 0 4 | Caption = 'Preview Handler Host Demo' 5 | ClientHeight = 559 6 | ClientWidth = 960 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OnCreate = FormCreate 14 | OnDestroy = FormDestroy 15 | TextHeight = 13 16 | object Splitter1: TSplitter 17 | Left = 417 18 | Top = 0 19 | Width = 4 20 | Height = 559 21 | AutoSnap = False 22 | ExplicitLeft = 217 23 | ExplicitHeight = 338 24 | end 25 | object Panel1: TPanel 26 | Left = 421 27 | Top = 0 28 | Width = 539 29 | Height = 559 30 | Align = alClient 31 | TabOrder = 0 32 | end 33 | object Panel3: TPanel 34 | Left = 0 35 | Top = 0 36 | Width = 417 37 | Height = 559 38 | Align = alLeft 39 | TabOrder = 1 40 | object ShellListView1: TShellListView 41 | Left = 1 42 | Top = 1 43 | Width = 415 44 | Height = 557 45 | ObjectTypes = [otFolders, otNonFolders] 46 | Root = 'D:\Users\Carlo\Downloads\Test' 47 | Sorted = True 48 | Align = alClient 49 | ReadOnly = False 50 | HideSelection = False 51 | OnChange = ShellListView1Change 52 | TabOrder = 0 53 | ViewStyle = vsReport 54 | end 55 | end 56 | end 57 | -------------------------------------------------------------------------------- /Docs/MarkDown Support Test.md: -------------------------------------------------------------------------------- 1 | Markdown support test 2 | ===================== 3 | 4 | ![Markdown logo](markdownlogo.png) 5 | 6 | This page is a small demonstration of Markdown support. 7 | 8 | From [CommonMark]: 9 | >Markdown is a plain text format for writing structured documents, 10 | >based on conventions for indicating formatting in email and Usenet posts. 11 | >It was developed by John Gruber (with help from Aaron Swartz) 12 | >and released in 2004 in the form of a syntax description and a 13 | >Perl script (Markdown.pl) for converting Markdown to HTML. 14 | >In the next decade, dozens of implementations were developed in many languages. 15 | 16 | [CommonMark]:http://spec.commonmark.org/0.28/ 17 | 18 | *Italic* or _Italic_ 19 | **Bold** or __Bold__ 20 | 21 | `` 22 | ~~Strike~~ 23 | ++Ins++ 24 | Subscript text 25 | 26 | Superscript text 27 | 28 | ==Mark== 29 | 30 | Tables 31 | ------ 32 | | First Header | Second Header | Third Header | 33 | | :----------- | :-----------: | -----------: | 34 | | Left | Center | Right | 35 | | Second row | **strong** | *italic* | 36 | 37 | Formulas 38 | -------- 39 | It is possible to use the [Google Chart API] using `TeX` language, 40 | but the translated formula can only to be seen using a browser, 41 | for insert a formula using `TeX` enclose the code between `$` 42 | without `spaces`: 43 | 44 | Quadratic formula |Zeta formula 45 | ---------------------------|----------------------------- 46 | $x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$ | $\zeta(s)=\sum_{n=1}^\infty\frac{1}{n^s}$ 47 | 48 | [Google Chart API]:https://developers.google.com/chart/infographics/docs/formulas 49 | 50 | 51 | -------------------------------------------------------------------------------- /Ext/External Projects.md: -------------------------------------------------------------------------------- 1 | # External projects 2 | 3 | ***This project uses some External Projects, located into Ext Path*** 4 | 5 | - [Ethea's SVGIconImageList][1] 6 | 7 | - [Ethea's MarkdownProcessor][2] 8 | 9 | - [Ethea's StyledComponents][3] 10 | 11 | - [HTMLViewer][4] 12 | 13 | - [Synedit][5] 14 | 15 | - [SynPDF][6] 16 | 17 | - [VCL-Style-Utils][7] 18 | 19 | - [dzlib][8] 20 | 21 | 22 | ***For simplify compilation they are added to this folder*** 23 | 24 | [1]: https://github.com/EtheaDev/SVGIconImageList 25 | 26 | [2]: https://github.com/EtheaDev/MarkdownProcessor 27 | 28 | [3]: https://github.com/EtheaDev/StyledComponents 29 | 30 | [4]: https://github.com/BerndGabriel/HtmlViewer.git 31 | 32 | [5]: https://github.com/SynEdit/SynEdit 33 | 34 | [6]: https://github.com/synopse/SynPDF.git 35 | 36 | [7]: https://github.com/RRUZ/vcl-styles-utils 37 | 38 | [8]: https://sourceforge.net/projects/dzlib/ -------------------------------------------------------------------------------- /Ext/HTMLViewer/Source/BegaPreviewForm.dfm: -------------------------------------------------------------------------------- 1 | object BegaCustomPrintPreviewForm: TBegaCustomPrintPreviewForm 2 | Left = 431 3 | Top = 144 4 | Caption = 'Print preview' 5 | ClientHeight = 768 6 | ClientWidth = 1008 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'MS Shell Dlg 2' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | Position = poOwnerFormCenter 15 | PixelsPerInch = 96 16 | TextHeight = 13 17 | end 18 | -------------------------------------------------------------------------------- /Ext/HTMLViewer/Source/BuffConv.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/HTMLViewer/Source/BuffConv.pas -------------------------------------------------------------------------------- /Ext/HTMLViewer/Source/BuffConvArrays.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/HTMLViewer/Source/BuffConvArrays.pas -------------------------------------------------------------------------------- /Ext/HTMLViewer/Source/FrameViewerReg.pas: -------------------------------------------------------------------------------- 1 | { 2 | Version 11.7 3 | Copyright (c) 1995-2008 by L. David Baldwin 4 | Copyright (c) 2008-2014 by HtmlViewer Team 5 | Copyright (c) 2015-2016 by Bernd Gabriel 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy of 8 | this software and associated documentation files (the "Software"), to deal in 9 | the Software without restriction, including without limitation the rights to 10 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 11 | of the Software, and to permit persons to whom the Software is furnished to do 12 | so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 19 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 20 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 21 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 22 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | Note that the source modules HTMLGIF1.PAS and DITHERUNIT.PAS 25 | are covered by separate copyright notices located in those modules. 26 | } 27 | 28 | {$I htmlcons.inc} 29 | 30 | unit FrameViewerReg; 31 | 32 | interface 33 | 34 | uses 35 | {$ifdef LCL} 36 | LResources, 37 | {$else} 38 | {$endif} 39 | Classes, 40 | {$ifndef UseOldPreviewForm} 41 | BegaPreview, 42 | BegaPreviewForm, 43 | BegaPreviewPanel, 44 | BegaScrollBox, 45 | BegaZoom, 46 | {$endif} 47 | UrlConn, 48 | HtmlView, 49 | FramView, 50 | FramBrwz; 51 | 52 | procedure Register; 53 | 54 | implementation 55 | 56 | procedure Register; 57 | begin 58 | RegisterComponents('HtmlViewer/FrameViewer', [ 59 | {$ifndef UseOldPreviewForm} 60 | {$ifndef NoMetaFile} 61 | {$ifndef NoFlatScrollbars} 62 | TBegaMetafilePreviewPanel, 63 | TBegaPreviewFrame, 64 | TBegaScrollBox, 65 | TBegaZoomBox, 66 | TBegaCustomPrintPreviewForm, 67 | {$endif} 68 | {$endif} 69 | {$endif} 70 | ThtConnectionManager, 71 | ThtFileConnector, 72 | ThtResourceConnector, 73 | THtmlViewer, 74 | TFrameViewer, 75 | TFrameBrowser]); 76 | end; 77 | 78 | {$ifdef LCL} 79 | initialization 80 | {$I htmlcomp.lrs} 81 | {$endif} 82 | 83 | end. 84 | -------------------------------------------------------------------------------- /Ext/HTMLViewer/Source/GDIPL2A.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/HTMLViewer/Source/GDIPL2A.pas -------------------------------------------------------------------------------- /Ext/HTMLViewer/Source/Html32.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/HTMLViewer/Source/Html32.res -------------------------------------------------------------------------------- /Ext/HTMLViewer/Source/URLSubs.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/HTMLViewer/Source/URLSubs.pas -------------------------------------------------------------------------------- /Ext/HTMLViewer/Source/ZoomAndHandCursor.RES: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/HTMLViewer/Source/ZoomAndHandCursor.RES -------------------------------------------------------------------------------- /Ext/HTMLViewer/package/Rad Studio 12/HTMLViewerPackages12.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {55ADB20A-4277-4A1B-A5F1-33E9A96F463B} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Default.Personality.12 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 | -------------------------------------------------------------------------------- /Ext/HTMLViewer/package/Rad Studio 12/dclFrameViewer.dpk: -------------------------------------------------------------------------------- 1 | package dclFrameViewer; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS OFF} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION ON} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO OFF} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES OFF} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE RELEASE} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$DESCRIPTION 'THtmlViewer, TFrameViewer, and TFrameBrowser'} 29 | {$LIBSUFFIX '290'} 30 | {$DESIGNONLY} 31 | {$IMPLICITBUILD ON} 32 | 33 | requires 34 | designide, 35 | FrameViewer; 36 | 37 | contains 38 | FrameViewerReg in '..\..\source\FrameViewerReg.pas', 39 | HTMLCompEdit in '..\..\source\HTMLCompEdit.pas'; 40 | 41 | end. 42 | -------------------------------------------------------------------------------- /Ext/MarkdownProcessor/source/MarkdownDaringFireball.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/MarkdownProcessor/source/MarkdownDaringFireball.pas -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Image32/source/Clipper.inc: -------------------------------------------------------------------------------- 1 | 2 | /////////////////////////////////////////////////////////////////////////////// 3 | //USER DEFINED PREPROCESSOR DIRECTIVES 4 | /////////////////////////////////////////////////////////////////////////////// 5 | 6 | //For user defined Z-coordinates, defined in Clipper's 'SetZ' callback event 7 | {.$DEFINE USINGZ} 8 | 9 | /////////////////////////////////////////////////////////////////////////////// 10 | //COMPILER DEFINED PREPROCESSOR DIRECTIVES (ie. do not touch ;)) 11 | /////////////////////////////////////////////////////////////////////////////// 12 | 13 | {$IFDEF FPC} 14 | {$DEFINE INLINING} 15 | {$MODE DELPHI} 16 | {$ELSE} 17 | {$IF COMPILERVERSION < 14} 18 | Requires Delphi version 6 or above. 19 | {$IFEND} 20 | {$IF COMPILERVERSION >= 18} //Delphi 2007 21 | {$DEFINE RECORD_METHODS} 22 | {$DEFINE STRICT} 23 | {$IF COMPILERVERSION >= 19} //Delphi 2009 24 | //While "inlining" is supported from D2005, it's buggy (see QC41166) until D2009 25 | {$DEFINE INLINING} 26 | {$IF COMPILERVERSION >= 23} //Delphi XE2+ 27 | {$DEFINE XPLAT_GENERICS} 28 | {$DEFINE ROUNDINGMODE} 29 | {$IF COMPILERVERSION >= 24} //Delphi XE3+ 30 | {$LEGACYIFEND ON} 31 | {$IFEND} 32 | {$IFEND} 33 | {$IFEND} 34 | {$IFEND} 35 | {$ENDIF} 36 | 37 | {$IFDEF DEBUG} 38 | {$UNDEF INLINING} 39 | {$ENDIF} 40 | -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Image32/source/Img32.Panels.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SVGIconImageList/Image32/source/Img32.Panels.dcr -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Packages/D12/SVGIconImageList.dpk: -------------------------------------------------------------------------------- 1 | package SVGIconImageList; 2 | 3 | {$INCLUDE ..\..\Source\SVGIconImageList.inc} 4 | {$R *.res} 5 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 6 | {$ALIGN 8} 7 | {$ASSERTIONS ON} 8 | {$BOOLEVAL OFF} 9 | {$DEBUGINFO OFF} 10 | {$EXTENDEDSYNTAX ON} 11 | {$IMPORTEDDATA ON} 12 | {$IOCHECKS ON} 13 | {$LOCALSYMBOLS OFF} 14 | {$LONGSTRINGS ON} 15 | {$OPENSTRINGS ON} 16 | {$OPTIMIZATION ON} 17 | {$OVERFLOWCHECKS OFF} 18 | {$RANGECHECKS OFF} 19 | {$REFERENCEINFO OFF} 20 | {$SAFEDIVIDE OFF} 21 | {$STACKFRAMES OFF} 22 | {$TYPEDADDRESS OFF} 23 | {$VARSTRINGCHECKS ON} 24 | {$WRITEABLECONST OFF} 25 | {$MINENUMSIZE 1} 26 | {$IMAGEBASE $400000} 27 | {$DEFINE RELEASE} 28 | {$ENDIF IMPLICITBUILDING} 29 | {$DESCRIPTION 'Ethea SVGIconImageList VCL components'} 30 | {$LIBSUFFIX AUTO} 31 | {$RUNONLY} 32 | {$IMPLICITBUILD OFF} 33 | 34 | requires 35 | vcl 36 | , VclSmp 37 | , vclwinx 38 | , RESTComponents 39 | , SVGIconImageListRestClient 40 | {$IFDEF Image32_SVGEngine} 41 | , SVGImage32Package 42 | {$ENDIF} 43 | {$IFDEF Skia_SVGEngine} 44 | , Skia.Package.VCL 45 | , Skia.Package.RTL 46 | {$ENDIF} 47 | ; 48 | 49 | contains 50 | SVGIconImage in '..\..\Source\SVGIconImage.pas', 51 | SVGIconImageList in '..\..\Source\SVGIconImageList.pas', 52 | SVGIconUtils in '..\..\Source\SVGIconUtils.pas', 53 | SVGIconImageCollection in '..\..\Source\SVGIconImageCollection.pas', 54 | SVGIconItems in '..\..\Source\SVGIconItems.pas', 55 | SVGIconVirtualImageList in '..\..\Source\SVGIconVirtualImageList.pas', 56 | SVGIconImageListBase in '..\..\Source\SVGIconImageListBase.pas', 57 | {$IFDEF PreferNativeSvgSupport} 58 | D2DSVGFactory in '..\..\Source\D2DSVGFactory.pas', 59 | Winapi.D2DMissing in '..\..\Source\Winapi.D2DMissing.pas', 60 | {$ENDIF} 61 | {$IFDEF Image32_SVGEngine} 62 | Image32SVGFactory in '..\..\Source\Image32SVGFactory.pas', 63 | {$ENDIF} 64 | {$IFDEF Skia_SVGEngine} 65 | SkiaSVGFactory in '..\..\Source\SkiaSVGFactory.pas', 66 | {$ENDIF} 67 | SVGInterfaces in '..\..\Source\SVGInterfaces.pas', 68 | dlgExportPNG in '..\..\Source\dlgExportPNG.pas' {ExportToPNGDialog}; 69 | 70 | end. 71 | -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Packages/D12/SVGIconImageListFMX.dpk: -------------------------------------------------------------------------------- 1 | package SVGIconImageListFMX; 2 | 3 | {$R *.res} 4 | {$INCLUDE ..\..\Source\SVGIconImageList.inc} 5 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 6 | {$ALIGN 8} 7 | {$ASSERTIONS ON} 8 | {$BOOLEVAL OFF} 9 | {$DEBUGINFO OFF} 10 | {$EXTENDEDSYNTAX ON} 11 | {$IMPORTEDDATA ON} 12 | {$IOCHECKS ON} 13 | {$LOCALSYMBOLS OFF} 14 | {$LONGSTRINGS ON} 15 | {$OPENSTRINGS ON} 16 | {$OPTIMIZATION ON} 17 | {$OVERFLOWCHECKS OFF} 18 | {$RANGECHECKS OFF} 19 | {$REFERENCEINFO OFF} 20 | {$SAFEDIVIDE OFF} 21 | {$STACKFRAMES OFF} 22 | {$TYPEDADDRESS OFF} 23 | {$VARSTRINGCHECKS ON} 24 | {$WRITEABLECONST OFF} 25 | {$MINENUMSIZE 1} 26 | {$IMAGEBASE $400000} 27 | {$DEFINE RELEASE} 28 | {$ENDIF IMPLICITBUILDING} 29 | {$DESCRIPTION 'Ethea SVGIconImageList FMX components'} 30 | {$LIBSUFFIX AUTO} 31 | {$RUNONLY} 32 | {$IMPLICITBUILD OFF} 33 | 34 | requires 35 | rtl 36 | , fmx 37 | {$IFDEF Image32_SVGEngine} 38 | , SVGImage32Package 39 | {$ENDIF} 40 | {$IFDEF Skia_SVGEngine} 41 | , Skia.Package.FMX 42 | , Skia.Package.RTL 43 | {$ENDIF} 44 | ; 45 | 46 | contains 47 | FMX.ImageSVG in '..\..\Source\FMX.ImageSVG.pas', 48 | {$IFDEF Image32_SVGEngine} 49 | Img32.FMX in '..\..\Image32\Source\Img32.FMX.pas', 50 | FMX.Image32SVG in '..\..\Source\FMX.Image32SVG.pas', 51 | {$ENDIF} 52 | {$IFDEF Skia_SVGEngine} 53 | FMX.ImageSkiaSVG in '..\..\Source\FMX.ImageSkiaSVG.pas', 54 | {$ENDIF} 55 | FMX.SVGIconImageList in '..\..\Source\FMX.SVGIconImageList.pas', 56 | FMX.SVGIconImage in '..\..\Source\FMX.SVGIconImage.pas', 57 | FMX.SVGIconsUtils in '..\..\Source\FMX.SVGIconsUtils.pas'; 58 | 59 | end. 60 | -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Packages/D12/SVGIconImageListRestClient.dpk: -------------------------------------------------------------------------------- 1 | package SVGIconImageListRestClient; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS OFF} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION ON} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO OFF} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES OFF} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE RELEASE} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$DESCRIPTION 'Ethea SVGIconImageList REST Client services'} 29 | {$LIBSUFFIX AUTO} 30 | {$RUNONLY} 31 | {$IMPLICITBUILD OFF} 32 | 33 | requires 34 | rtl, 35 | RESTComponents; 36 | 37 | contains 38 | Browser.IconifyApi in '..\..\Source\Browser.IconifyApi.pas'; 39 | 40 | end. 41 | 42 | -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Packages/D12/SVGImage32Package.dpk: -------------------------------------------------------------------------------- 1 | package SVGImage32Package; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS OFF} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION ON} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO OFF} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES OFF} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE RELEASE} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$DESCRIPTION 'Image32 2D Graphic Library - Copyright Angus Johnson'} 29 | {$LIBSUFFIX AUTO} 30 | {$RUNONLY} 31 | {$IMPLICITBUILD OFF} 32 | 33 | requires 34 | rtl, 35 | vcl, 36 | vclimg; 37 | 38 | contains 39 | Img32 in '..\..\Image32\source\Img32.pas', 40 | Img32.Fmt.BMP in '..\..\Image32\source\Img32.Fmt.BMP.pas', 41 | Img32.Panels in '..\..\Image32\source\Img32.Panels.pas', 42 | Img32.Fmt.PNG in '..\..\Image32\source\Img32.Fmt.PNG.pas', 43 | Img32.CQ in '..\..\Image32\source\Img32.CQ.pas', 44 | Img32.Draw in '..\..\Image32\source\Img32.Draw.pas', 45 | Img32.Extra in '..\..\Image32\source\Img32.Extra.pas', 46 | Img32.Layers in '..\..\Image32\source\Img32.Layers.pas', 47 | Img32.Resamplers in '..\..\Image32\source\Img32.Resamplers.pas', 48 | Img32.Transform in '..\..\Image32\source\Img32.Transform.pas', 49 | Img32.Text in '..\..\Image32\source\Img32.Text.pas', 50 | Img32.Vector in '..\..\Image32\source\Img32.Vector.pas', 51 | Img32.Fmt.SVG in '..\..\Image32\source\Img32.Fmt.SVG.pas', 52 | Img32.Storage in '..\..\Image32\source\Img32.Storage.pas', 53 | Img32.SVG.Core in '..\..\Image32\source\Img32.SVG.Core.pas', 54 | Img32.SVG.Path in '..\..\Image32\source\Img32.SVG.Path.pas', 55 | Img32.SVG.Reader in '..\..\Image32\source\Img32.SVG.Reader.pas', 56 | Img32.Clipper2 in '..\..\Image32\Source\Img32.Clipper2.pas', 57 | Clipper in '..\..\Image32\source\Clipper.pas', 58 | Clipper.Core in '..\..\Image32\source\Clipper.Core.pas', 59 | Clipper.Engine in '..\..\Image32\source\Clipper.Engine.pas', 60 | Clipper.Minkowski in '..\..\Image32\source\Clipper.Minkowski.pas', 61 | Clipper.Offset in '..\..\Image32\source\Clipper.Offset.pas', 62 | Clipper.RectClip in '..\..\Image32\source\Clipper.RectClip.pas'; 63 | 64 | end. 65 | 66 | -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Packages/D12/dclSVGIconImageList.dpk: -------------------------------------------------------------------------------- 1 | package dclSVGIconImageList; 2 | 3 | {$R *.res} 4 | {$R '..\SVGIconImageListNew.dcr'} 5 | {$R '..\..\Image32\Source\Img32.Panels.dcr'} 6 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 7 | {$ALIGN 8} 8 | {$ASSERTIONS ON} 9 | {$BOOLEVAL OFF} 10 | {$DEBUGINFO OFF} 11 | {$EXTENDEDSYNTAX ON} 12 | {$IMPORTEDDATA ON} 13 | {$IOCHECKS ON} 14 | {$LOCALSYMBOLS OFF} 15 | {$LONGSTRINGS ON} 16 | {$OPENSTRINGS ON} 17 | {$OPTIMIZATION ON} 18 | {$OVERFLOWCHECKS OFF} 19 | {$RANGECHECKS OFF} 20 | {$REFERENCEINFO OFF} 21 | {$SAFEDIVIDE OFF} 22 | {$STACKFRAMES OFF} 23 | {$TYPEDADDRESS OFF} 24 | {$VARSTRINGCHECKS ON} 25 | {$WRITEABLECONST OFF} 26 | {$MINENUMSIZE 1} 27 | {$IMAGEBASE $400000} 28 | {$DEFINE RELEASE} 29 | {$ENDIF IMPLICITBUILDING} 30 | {$DESCRIPTION 'Ethea SVGIconImageList VCL components'} 31 | {$LIBSUFFIX AUTO} 32 | {$DESIGNONLY} 33 | {$IMPLICITBUILD OFF} 34 | 35 | requires 36 | DesignIDE, 37 | SVGIconImageList; 38 | 39 | contains 40 | SVGIconImageListEditorUnit in '..\SVGIconImageListEditorUnit.pas' {SVGIconImageListEditor}, 41 | SVGIconImageRegister in '..\SVGIconImageRegister.pas', 42 | SVGTextPropertyEditorUnit in '..\SVGTextPropertyEditorUnit.pas' {SVGTextPropertyEditorForm}, 43 | SVGRESTClientFormUnit in '..\SVGRESTClientFormUnit.pas' {SVGRESTClientSearchForm}, 44 | SVGIconSetFormUnit in '..\SVGIconSetFormUnit.pas' {SVGIconSetForm}; 45 | 46 | end. 47 | 48 | -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Packages/D12/dclSVGIconImageListFMX.dpk: -------------------------------------------------------------------------------- 1 | package dclSVGIconImageListFMX; 2 | 3 | {$R *.res} 4 | {$R '..\SVGIconImageListNew.dcr'} 5 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 6 | {$ALIGN 8} 7 | {$ASSERTIONS ON} 8 | {$BOOLEVAL OFF} 9 | {$DEBUGINFO OFF} 10 | {$EXTENDEDSYNTAX ON} 11 | {$IMPORTEDDATA ON} 12 | {$IOCHECKS ON} 13 | {$LOCALSYMBOLS OFF} 14 | {$LONGSTRINGS ON} 15 | {$OPENSTRINGS ON} 16 | {$OPTIMIZATION ON} 17 | {$OVERFLOWCHECKS OFF} 18 | {$RANGECHECKS OFF} 19 | {$REFERENCEINFO OFF} 20 | {$SAFEDIVIDE OFF} 21 | {$STACKFRAMES OFF} 22 | {$TYPEDADDRESS OFF} 23 | {$VARSTRINGCHECKS ON} 24 | {$WRITEABLECONST OFF} 25 | {$MINENUMSIZE 1} 26 | {$IMAGEBASE $400000} 27 | {$DEFINE RELEASE} 28 | {$ENDIF IMPLICITBUILDING} 29 | {$DESCRIPTION 'Ethea SVGIconImageList FMX components'} 30 | {$LIBSUFFIX AUTO} 31 | {$DESIGNONLY} 32 | {$IMPLICITBUILD OFF} 33 | 34 | requires 35 | DesignIDE, 36 | dclfmxstd, 37 | SVGIconImageListRestClient, 38 | SVGIconImageListFMX; 39 | 40 | contains 41 | FMX.SVGIconImageRegister in '..\FMX.SVGIconImageRegister.pas', 42 | FMX.SVGIconImageListEditorUnit in '..\FMX.SVGIconImageListEditorUnit.pas' {SVGIconImageListEditorFMX}, 43 | FMX.SVGTextPropertyEditorUnit in '..\FMX.SVGTextPropertyEditorUnit.pas' {SVGTextPropertyEditorFormFMX}, 44 | FMX.SVGRESTClientFormUnit in '..\FMX.SVGRESTClientFormUnit.pas' {SVGRESTClientSearchForm}; 45 | 46 | end. 47 | -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Packages/GetItLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SVGIconImageList/Packages/GetItLogo.png -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Packages/SVGIconImageCollectionComponentIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SVGIconImageList/Packages/SVGIconImageCollectionComponentIcon.png -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Packages/SVGIconImageComponentIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SVGIconImageList/Packages/SVGIconImageComponentIcon.png -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Packages/SVGIconImageList.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SVGIconImageList/Packages/SVGIconImageList.dcr -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Packages/SVGIconImageListComponentIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SVGIconImageList/Packages/SVGIconImageListComponentIcon.png -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Packages/SVGIconImageListNew.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SVGIconImageList/Packages/SVGIconImageListNew.dcr -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Packages/SVGIconVirtualImageListComponentIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SVGIconImageList/Packages/SVGIconVirtualImageListComponentIcon.png -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Packages/SvgIconImageListSplash.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SVGIconImageList/Packages/SvgIconImageListSplash.res -------------------------------------------------------------------------------- /Ext/SVGIconImageList/Source/SVGIconImageList.inc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SVGIconImageList/Source/SVGIconImageList.inc -------------------------------------------------------------------------------- /Ext/StyledComponents/packages/StyledAnimatedButton.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/packages/StyledAnimatedButton.dcr -------------------------------------------------------------------------------- /Ext/StyledComponents/packages/StyledAnimatedTaskDialog.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/packages/StyledAnimatedTaskDialog.dcr -------------------------------------------------------------------------------- /Ext/StyledComponents/packages/StyledAnimatedToolBar.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/packages/StyledAnimatedToolBar.dcr -------------------------------------------------------------------------------- /Ext/StyledComponents/packages/StyledButton.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/packages/StyledButton.dcr -------------------------------------------------------------------------------- /Ext/StyledComponents/packages/StyledButtonGroup.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/packages/StyledButtonGroup.dcr -------------------------------------------------------------------------------- /Ext/StyledComponents/packages/StyledCategoryButtons.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/packages/StyledCategoryButtons.dcr -------------------------------------------------------------------------------- /Ext/StyledComponents/packages/StyledComponentsSplash.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/packages/StyledComponentsSplash.res -------------------------------------------------------------------------------- /Ext/StyledComponents/packages/StyledDbNavigator.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/packages/StyledDbNavigator.dcr -------------------------------------------------------------------------------- /Ext/StyledComponents/packages/StyledTaskDialog.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/packages/StyledTaskDialog.dcr -------------------------------------------------------------------------------- /Ext/StyledComponents/packages/StyledToolBar.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/packages/StyledToolBar.dcr -------------------------------------------------------------------------------- /Ext/StyledComponents/source/Animations.RES: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/source/Animations.RES -------------------------------------------------------------------------------- /Ext/StyledComponents/source/Animations.rc: -------------------------------------------------------------------------------- 1 | LOTTIE_INFORMATION RCDATA "..\Animations\information.json" 2 | LOTTIE_CUSTOM RCDATA "..\Animations\custom.json" 3 | LOTTIE_ERROR RCDATA "..\Animations\error.json" 4 | LOTTIE_WARNING RCDATA "..\Animations\warning.json" 5 | LOTTIE_SHIELD RCDATA "..\Animations\shield.json" 6 | LOTTIE_NOTIFY RCDATA "..\Animations\notify.json" 7 | LOTTIE_QUESTION RCDATA "..\Animations\question.json" -------------------------------------------------------------------------------- /Ext/StyledComponents/source/BuildResFileOfAnimations.cmd: -------------------------------------------------------------------------------- 1 | @echo Buid Animations.res file from Animations.rc 2 | BRCC32.EXE Animations.rc 3 | pause -------------------------------------------------------------------------------- /Ext/StyledComponents/source/CommandLinkBMP.RES: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/source/CommandLinkBMP.RES -------------------------------------------------------------------------------- /Ext/StyledComponents/source/CommandLinkPNG.RES: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/source/CommandLinkPNG.RES -------------------------------------------------------------------------------- /Ext/StyledComponents/source/Skia.Vcl.StyledTaskDialogAnimatedUnit.dfm: -------------------------------------------------------------------------------- 1 | inherited StyledTaskDialogAnimatedForm: TStyledTaskDialogAnimatedForm 2 | Caption = 'StyledTaskDialogAnimatedForm' 3 | TextHeight = 15 4 | inherited FooterPanel: TPanel 5 | inherited FooterIconPanel: TPanel 6 | object SkFooterAnimatedImage: TSkAnimatedImage 7 | Left = 0 8 | Top = 0 9 | Width = 25 10 | Height = 25 11 | Align = alTop 12 | end 13 | end 14 | end 15 | inherited CenterPanel: TPanel 16 | inherited ImagePanel: TPanel 17 | inherited IconContainer: TPanel 18 | object SkAnimatedImage: TSkAnimatedImage 19 | Left = 0 20 | Top = 0 21 | Width = 64 22 | Height = 64 23 | Align = alClient 24 | end 25 | end 26 | end 27 | end 28 | end 29 | -------------------------------------------------------------------------------- /Ext/StyledComponents/source/StyledButtonsBMP.RES: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/source/StyledButtonsBMP.RES -------------------------------------------------------------------------------- /Ext/StyledComponents/source/StyledButtonsPNG.RES: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/source/StyledButtonsPNG.RES -------------------------------------------------------------------------------- /Ext/StyledComponents/source/StyledComponents.inc: -------------------------------------------------------------------------------- 1 | {.$Define ItaMessages} 2 | {.$Define FraMessages} 3 | {.$DEFINE Use_Large_Dialog_Icons} 4 | 5 | {$DEFINE INCLUDE_AngularButtonStyles} 6 | {$DEFINE INCLUDE_BootstrapButtonStyles} 7 | {$DEFINE INCLUDE_ColorButtonStyles} 8 | 9 | // Delphi XE6 10 | {$IFDEF VER270} 11 | {$DEFINE DXE6+} 12 | {$ENDIF} 13 | 14 | // Delphi XE7 15 | {$IFDEF VER280} 16 | {$DEFINE DXE6+} 17 | {$DEFINE DXE7+} 18 | {$ENDIF} 19 | 20 | // Delphi XE8 21 | {$IFDEF VER290} 22 | {$DEFINE DXE6+} 23 | {$DEFINE DXE7+} 24 | {$DEFINE DXE8+} 25 | {$ENDIF} 26 | 27 | // Delphi 10 Seattle 28 | {$IFDEF VER300} 29 | {$DEFINE DXE6+} 30 | {$DEFINE DXE7+} 31 | {$DEFINE DXE8+} 32 | {$DEFINE D10_0+} 33 | {$ENDIF} 34 | 35 | // Delphi 10.1 Berlin 36 | {$IFDEF VER310} 37 | {$DEFINE DXE6+} 38 | {$DEFINE DXE7+} 39 | {$DEFINE DXE8+} 40 | {$DEFINE D10_0+} 41 | {$DEFINE D10_1+} 42 | {$ENDIF} 43 | 44 | // Delphi 10.2 Tokyo 45 | {$IFDEF VER320} 46 | {$DEFINE DXE6+} 47 | {$DEFINE DXE7+} 48 | {$DEFINE DXE8+} 49 | {$DEFINE D10_0+} 50 | {$DEFINE D10_1+} 51 | {$DEFINE D10_2+} 52 | {$ENDIF} 53 | 54 | // Delphi 10.3 Rio 55 | {$IFDEF VER330} 56 | {$DEFINE DXE6+} 57 | {$DEFINE DXE7+} 58 | {$DEFINE DXE8+} 59 | {$DEFINE D10_0+} 60 | {$DEFINE D10_1+} 61 | {$DEFINE D10_2+} 62 | {$DEFINE D10_3+} 63 | {$ENDIF} 64 | 65 | // Delphi 10.4 Sydney 66 | {$IFDEF VER340} 67 | {$DEFINE DXE6+} 68 | {$DEFINE DXE7+} 69 | {$DEFINE DXE8+} 70 | {$DEFINE D10_0+} 71 | {$DEFINE D10_1+} 72 | {$DEFINE D10_2+} 73 | {$DEFINE D10_3+} 74 | {$DEFINE D10_4+} 75 | {$ENDIF} 76 | 77 | // Delphi 11 Alexandria 78 | {$IFDEF VER350} 79 | {$DEFINE DXE6+} 80 | {$DEFINE DXE7+} 81 | {$DEFINE DXE8+} 82 | {$DEFINE D10_0+} 83 | {$DEFINE D10_1+} 84 | {$DEFINE D10_2+} 85 | {$DEFINE D10_3+} 86 | {$DEFINE D10_4+} 87 | {$DEFINE D11+} 88 | {$ENDIF} 89 | 90 | // Delphi 12 Athens 91 | {$IFDEF VER360} 92 | {$DEFINE DXE6+} 93 | {$DEFINE DXE7+} 94 | {$DEFINE DXE8+} 95 | {$DEFINE D10_0+} 96 | {$DEFINE D10_1+} 97 | {$DEFINE D10_2+} 98 | {$DEFINE D10_3+} 99 | {$DEFINE D10_4+} 100 | {$DEFINE D11+} 101 | {$DEFINE D12+} 102 | {$ENDIF} 103 | 104 | {$IFDEF DXE6+} 105 | {$Define GDIPlusSupport} 106 | {.$Define DrawTextWithGDIPlus} 107 | {$Define DrawRectWithGDIPlus} 108 | {$ENDIF} 109 | 110 | {$IFDEF D10_3+} 111 | {$Define HiDPISupport} 112 | {$ENDIF} 113 | 114 | -------------------------------------------------------------------------------- /Ext/StyledComponents/source/StyledNavButtonsBMP.RES: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/source/StyledNavButtonsBMP.RES -------------------------------------------------------------------------------- /Ext/StyledComponents/source/StyledNavButtonsPNG.RES: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/source/StyledNavButtonsPNG.RES -------------------------------------------------------------------------------- /Ext/StyledComponents/source/Vcl.StyledCmpMessages.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/source/Vcl.StyledCmpMessages.pas -------------------------------------------------------------------------------- /Ext/StyledComponents/source/Vcl.StyledCmpStrUtils.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/StyledComponents/source/Vcl.StyledCmpStrUtils.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Packages/Delphi12.groupproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | {20EAD8A8-4C4A-4FC8-9292-D1BF23BB9F4E} 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 | -------------------------------------------------------------------------------- /Ext/SynEdit/Packages/SynEdit_D12.dpk: -------------------------------------------------------------------------------- 1 | package SynEdit_D12; 2 | 3 | {$R *.res} 4 | {$R '..\Source\SynEditReg.dcr'} 5 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 6 | {$ALIGN 8} 7 | {$ASSERTIONS ON} 8 | {$BOOLEVAL OFF} 9 | {$DEBUGINFO OFF} 10 | {$EXTENDEDSYNTAX ON} 11 | {$IMPORTEDDATA ON} 12 | {$IOCHECKS ON} 13 | {$LOCALSYMBOLS OFF} 14 | {$LONGSTRINGS ON} 15 | {$OPENSTRINGS ON} 16 | {$OPTIMIZATION ON} 17 | {$OVERFLOWCHECKS OFF} 18 | {$RANGECHECKS OFF} 19 | {$REFERENCEINFO OFF} 20 | {$SAFEDIVIDE OFF} 21 | {$STACKFRAMES OFF} 22 | {$TYPEDADDRESS OFF} 23 | {$VARSTRINGCHECKS ON} 24 | {$WRITEABLECONST ON} 25 | {$MINENUMSIZE 1} 26 | {$IMAGEBASE $400000} 27 | {$DEFINE RELEASE} 28 | {$ENDIF IMPLICITBUILDING} 29 | {$DESCRIPTION 'SynEdit component suite'} 30 | {$DESIGNONLY} 31 | {$IMPLICITBUILD OFF} 32 | 33 | requires 34 | designide, 35 | SynEdit_R12; 36 | 37 | contains 38 | SynEditReg in '..\Source\SynEditReg.pas', 39 | SynEditPropertyReg in '..\Source\SynEditPropertyReg.pas', 40 | SynHighlighterManager in '..\Source\SynHighlighterManager.pas'; 41 | 42 | end. 43 | -------------------------------------------------------------------------------- /Ext/SynEdit/Source/FSynHighlightProp.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/FSynHighlightProp.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/FTestPrintPreview.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/FTestPrintPreview.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/Page.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/Page.bmp -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynAutoCorrectEditor.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynAutoCorrectEditor.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEdit.inc: -------------------------------------------------------------------------------- 1 | {------------------------------------------------------------------------------} 2 | { Common compiler defines } 3 | { (remove the dot in front of a define to enable it) } 4 | {------------------------------------------------------------------------------} 5 | 6 | {$B-,H+} // defaults are short evaluation of boolean values and long strings 7 | 8 | {.$DEFINE SYN_DEVELOPMENT_CHECKS} // additional tests for debugging 9 | {$IFDEF SYN_DEVELOPMENT_CHECKS} 10 | {$R+,Q+,S+,T+} 11 | {$ENDIF} 12 | 13 | {------------------------------------------------------------------------------} 14 | { Pull in all defines from SynEditJedi.inc (must be done after the common } 15 | { compiler defines to work correctly). Use SynEdit-prefix to avoid problems } 16 | { with other versions of jedi.inc in the search-path. } 17 | {------------------------------------------------------------------------------} 18 | 19 | {$I SynEditJedi.inc} 20 | 21 | {------------------------------------------------------------------------------} 22 | { Please change this to suit your needs (to activate an option remove the dot } 23 | { in front of a DEFINE) } 24 | {------------------------------------------------------------------------------} 25 | 26 | // "Heredoc" syntax highlighting 27 | // If you enable the following statement and use highlighter(s) that have 28 | // support for "Heredoc" strings as scheme(s) in SynMultiSyn, you must 29 | // implement your own SynMultiSyn OnCustomRange event handler in order to 30 | // properly store Range State information 31 | {.$DEFINE SYN_HEREDOC} 32 | 33 | 34 | -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEdit.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEdit.res -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditExport.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEditExport.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditKbdHandler.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEditKbdHandler.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditKeyCmdEditor.dfm: -------------------------------------------------------------------------------- 1 | object SynEditKeystrokeEditorForm: TSynEditKeystrokeEditorForm 2 | Left = 424 3 | Top = 306 4 | BorderStyle = bsDialog 5 | Caption = 'Edit Keystroke' 6 | ClientHeight = 129 7 | ClientWidth = 269 8 | Color = clBtnFace 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -11 12 | Font.Name = 'MS Sans Serif' 13 | Font.Style = [] 14 | Position = poScreenCenter 15 | OnCreate = FormCreate 16 | OnShow = FormShow 17 | PixelsPerInch = 96 18 | TextHeight = 13 19 | object pnlAlign: TPanel 20 | Left = 3 21 | Top = 5 22 | Width = 262 23 | Height = 120 24 | BevelInner = bvRaised 25 | BevelOuter = bvLowered 26 | TabOrder = 0 27 | object Label1: TLabel 28 | Left = 9 29 | Top = 14 30 | Width = 50 31 | Height = 13 32 | Caption = 'Command:' 33 | end 34 | object Label2: TLabel 35 | Left = 9 36 | Top = 41 37 | Width = 50 38 | Height = 13 39 | Caption = 'Keystroke:' 40 | end 41 | object Label4: TLabel 42 | Left = 9 43 | Top = 65 44 | Width = 50 45 | Height = 13 46 | Caption = 'Keystroke:' 47 | end 48 | object bntClearKey: TButton 49 | Left = 9 50 | Top = 86 51 | Width = 75 52 | Height = 25 53 | Caption = 'Clear Key' 54 | TabOrder = 3 55 | OnClick = bntClearKeyClick 56 | end 57 | object btnOK: TButton 58 | Left = 93 59 | Top = 86 60 | Width = 75 61 | Height = 25 62 | Caption = 'OK' 63 | TabOrder = 1 64 | OnClick = btnOKClick 65 | end 66 | object cmbCommand: TComboBox 67 | Left = 65 68 | Top = 14 69 | Width = 186 70 | Height = 21 71 | Style = csDropDownList 72 | TabOrder = 0 73 | end 74 | object btnCancel: TButton 75 | Left = 177 76 | Top = 86 77 | Width = 75 78 | Height = 25 79 | Cancel = True 80 | Caption = 'Cancel' 81 | ModalResult = 2 82 | TabOrder = 2 83 | end 84 | end 85 | end 86 | -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditMiscClasses.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEditMiscClasses.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditPlugins.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEditPlugins.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditPrintHeaderFooter.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEditPrintHeaderFooter.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditPrintPreview.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEditPrintPreview.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditPrintTypes.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEditPrintTypes.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditPropertyReg.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEditPropertyReg.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditPythonBehaviour.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEditPythonBehaviour.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditReg.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEditReg.dcr -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditReg.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEditReg.res -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditRegexSearch.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEditRegexSearch.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditTextBuffer.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEditTextBuffer.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditTypes.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEditTypes.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditWildcardSearch.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEditWildcardSearch.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynEditWordWrap.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynEditWordWrap.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynExportHTML.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynExportHTML.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynExportTeX.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynExportTeX.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterADSP21xx.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterADSP21xx.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterAWK.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterAWK.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterAsm.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterAsm.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterBaan.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterBaan.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterBat.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterBat.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterCAC.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterCAC.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterCPM.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterCPM.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterCS.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterCS.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterCache.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterCache.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterCobol.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterCobol.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterCpp.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterCpp.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterCss.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterCss.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterDOT.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterDOT.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterDfm.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterDfm.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterDml.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterDml.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterEiffel.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterEiffel.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterFortran.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterFortran.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterFoxpro.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterFoxpro.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterGWS.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterGWS.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterGalaxy.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterGalaxy.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterGeneral.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterGeneral.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterHC11.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterHC11.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterHP48.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterHP48.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterHaskell.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterHaskell.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterHtml.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterHtml.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterIDL.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterIDL.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterIni.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterIni.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterInno.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterInno.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterJScript.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterJScript.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterJava.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterJava.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterKix.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterKix.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterLDraw.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterLDraw.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterM3.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterM3.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterModelica.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterModelica.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterMsg.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterMsg.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterMulti.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterMulti.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterPas.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterPas.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterProgress.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterProgress.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterPython.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterPython.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterRC.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterRC.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterRuby.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterRuby.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterSDD.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterSDD.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterST.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterST.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterSml.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterSml.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterTclTk.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterTclTk.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterTeX.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterTeX.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterURI.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterURI.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterUnreal.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterUnreal.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterVB.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterVB.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterVBScript.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterVBScript.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterVrml97.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterVrml97.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynHighlighterXML.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynHighlighterXML.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynMacroRecorder.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynMacroRecorder.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynSpellCheck.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynSpellCheck.dcr -------------------------------------------------------------------------------- /Ext/SynEdit/Source/SynURIOpener.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynEdit/Source/SynURIOpener.pas -------------------------------------------------------------------------------- /Ext/SynEdit/Source/dlgConfirmReplace.dfm: -------------------------------------------------------------------------------- 1 | object ConfirmReplaceDialog: TConfirmReplaceDialog 2 | Left = 176 3 | Top = 158 4 | BorderStyle = bsDialog 5 | Caption = 'Confirm replace' 6 | ClientHeight = 98 7 | ClientWidth = 328 8 | Color = clBtnFace 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -12 12 | Font.Name = 'Segoe UI' 13 | Font.Style = [] 14 | OldCreateOrder = False 15 | OnCreate = FormCreate 16 | OnDestroy = FormDestroy 17 | PixelsPerInch = 96 18 | TextHeight = 15 19 | object lblConfirmation: TLabel 20 | Left = 60 21 | Top = 12 22 | Width = 261 23 | Height = 44 24 | AutoSize = False 25 | WordWrap = True 26 | end 27 | object Image: TImage 28 | Left = 16 29 | Top = 16 30 | Width = 32 31 | Height = 32 32 | end 33 | object btnReplace: TButton 34 | Left = 8 35 | Top = 67 36 | Width = 75 37 | Height = 23 38 | Caption = '&Yes' 39 | Default = True 40 | ModalResult = 6 41 | TabOrder = 0 42 | end 43 | object btnSkip: TButton 44 | Left = 87 45 | Top = 67 46 | Width = 75 47 | Height = 23 48 | Caption = '&No' 49 | ModalResult = 7 50 | TabOrder = 1 51 | end 52 | object btnCancel: TButton 53 | Left = 166 54 | Top = 67 55 | Width = 75 56 | Height = 23 57 | Cancel = True 58 | Caption = 'Cancel' 59 | ModalResult = 2 60 | TabOrder = 2 61 | end 62 | object btnReplaceAll: TButton 63 | Left = 245 64 | Top = 67 65 | Width = 75 66 | Height = 23 67 | Caption = 'Yes to &all' 68 | ModalResult = 10 69 | TabOrder = 3 70 | end 71 | end 72 | -------------------------------------------------------------------------------- /Ext/SynEdit/Source/dlgReplaceText.dfm: -------------------------------------------------------------------------------- 1 | inherited TextReplaceDialog: TTextReplaceDialog 2 | Caption = 'Replace text' 3 | ClientHeight = 206 4 | OldCreateOrder = True 5 | ExplicitHeight = 235 6 | PixelsPerInch = 96 7 | TextHeight = 13 8 | object ReplaceWidthLabel: TLabel [0] 9 | Left = 8 10 | Top = 41 11 | Width = 82 12 | Height = 13 13 | Alignment = taRightJustify 14 | AutoSize = False 15 | Caption = '&Replace with:' 16 | end 17 | inherited cbSearchText: TComboBox 18 | TabOrder = 5 19 | end 20 | inherited FSearchOptions: TGroupBox 21 | Top = 70 22 | ExplicitTop = 70 23 | end 24 | inherited FSearchDirection: TRadioGroup 25 | Top = 70 26 | ExplicitTop = 70 27 | end 28 | inherited btnOK: TButton 29 | Top = 174 30 | ExplicitTop = 174 31 | end 32 | object cbReplaceText: TComboBox [6] 33 | Left = 96 34 | Top = 37 35 | Width = 228 36 | Height = 21 37 | TabOrder = 0 38 | end 39 | inherited btnCancel: TButton 40 | Top = 174 41 | ExplicitTop = 174 42 | end 43 | end 44 | -------------------------------------------------------------------------------- /Ext/SynPDF/SynopseCommit.inc: -------------------------------------------------------------------------------- 1 | '1.18.6395' 2 | -------------------------------------------------------------------------------- /Ext/SynPDF/crc32c64.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynPDF/crc32c64.obj -------------------------------------------------------------------------------- /Ext/SynPDF/deflate.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynPDF/deflate.obj -------------------------------------------------------------------------------- /Ext/SynPDF/mORMotReport.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynPDF/mORMotReport.pas -------------------------------------------------------------------------------- /Ext/SynPDF/sha512-x64sse4.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynPDF/sha512-x64sse4.obj -------------------------------------------------------------------------------- /Ext/SynPDF/sha512-x86.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynPDF/sha512-x86.obj -------------------------------------------------------------------------------- /Ext/SynPDF/trees.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/SynPDF/trees.obj -------------------------------------------------------------------------------- /Ext/VCLStyleUtils/Common/AwesomeFont.RC: -------------------------------------------------------------------------------- 1 | fontawesome RCDATA fontawesome.ttf -------------------------------------------------------------------------------- /Ext/VCLStyleUtils/Common/AwesomeFont.RES: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/VCLStyleUtils/Common/AwesomeFont.RES -------------------------------------------------------------------------------- /Ext/VCLStyleUtils/Common/AwesomeFont_zip.RC: -------------------------------------------------------------------------------- 1 | fontawesome_zip RCDATA fontawesome.zip -------------------------------------------------------------------------------- /Ext/VCLStyleUtils/Common/AwesomeFont_zip.RES: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/VCLStyleUtils/Common/AwesomeFont_zip.RES -------------------------------------------------------------------------------- /Ext/VCLStyleUtils/Common/CompileResources.bat: -------------------------------------------------------------------------------- 1 | "C:\Program Files (x86)\Embarcadero\Studio\18.0\bin\brcc32.exe" AwesomeFont.rc 2 | Pause -------------------------------------------------------------------------------- /Ext/VCLStyleUtils/Common/CompileResources_zip.bat: -------------------------------------------------------------------------------- 1 | "C:\Program Files (x86)\Embarcadero\Studio\18.0\bin\brcc32.exe" AwesomeFont_zip.rc 2 | Pause -------------------------------------------------------------------------------- /Ext/VCLStyleUtils/Common/VCL.Styles.Utils.inc: -------------------------------------------------------------------------------- 1 | //************************************************************************************************** 2 | // 3 | // Vcl.Styles.Utils.inc 4 | // file for the VCL Styles Utils 5 | // https://github.com/RRUZ/vcl-styles-utils/ 6 | // 7 | // The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); 8 | // you may not use this file except in compliance with the License. You may obtain a copy of the 9 | // License at http://www.mozilla.org/MPL/ 10 | // 11 | // Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 12 | // ANY KIND, either express or implied. See the License for the specific language governing rights 13 | // and limitations under the License. 14 | // 15 | // 16 | // Portions created by Mahdi Safsafi [SMP3] e-mail SMP@LIVE.FR 17 | // Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2023 Rodrigo Ruz V. 18 | // All Rights Reserved. 19 | // 20 | //************************************************************************************************ 21 | {$DEFINE USE_Vcl.Styles.Hooks} 22 | {$DEFINE HOOK_UXTHEME} 23 | {$DEFINE HOOK_TDateTimePicker} 24 | {$DEFINE HOOK_TProgressBar} 25 | {.$DEFINE LimitStylesToMainApplicationThread} 26 | {.$DEFINE HOOK_VirtualShell} 27 | {.$DEFINE HOOK_ExplorerStatusBar} 28 | { Feature toggles for supported UxThemes - see Vcl.Styles.UxTheme } 29 | {$DEFINE HOOK_Button} 30 | {$DEFINE HOOK_AllButtons} 31 | {$DEFINE HOOK_Scrollbar} 32 | {$DEFINE HOOK_TaskDialog} 33 | {$DEFINE HOOK_ProgressBar} 34 | {$DEFINE HOOK_DateTimePicker} 35 | {$DEFINE HOOK_TreeView} 36 | {$DEFINE HOOK_ListView} 37 | {$DEFINE HOOK_ListBox} 38 | {$DEFINE HOOK_ComboBox} 39 | 40 | {$DEFINE HOOK_Spin} 41 | {$DEFINE HOOK_EDIT} 42 | {$DEFINE HOOK_Rebar} 43 | {$DEFINE HOOK_ToolBar} 44 | {$DEFINE HOOK_Menu} 45 | {$DEFINE HOOK_TrackBar} 46 | {$DEFINE HOOK_ToolTip} 47 | {$DEFINE HOOK_Tab} 48 | // Introduced in Windows Vista 49 | {$DEFINE HOOK_CommandModule} 50 | {$DEFINE HOOK_SearchBox} 51 | {$DEFINE HOOK_AddressBand} 52 | {$DEFINE HOOK_PreviewPane} 53 | {$DEFINE HOOK_TRYHARDER} 54 | {$DEFINE HOOK_BREADCRUMBAR} 55 | {$DEFINE HOOK_InfoBar} 56 | // Introduced in Windows 8 57 | {$DEFINE HOOK_Navigation} 58 | -------------------------------------------------------------------------------- /Ext/VCLStyleUtils/Common/Vcl.Styles.Register.pas: -------------------------------------------------------------------------------- 1 | unit Vcl.Styles.Register; 2 | 3 | interface 4 | 5 | procedure Register; 6 | 7 | implementation 8 | 9 | uses 10 | System.Classes, Vcl.Styles.Preview; 11 | 12 | procedure Register; 13 | begin 14 | RegisterComponents('VisualStyles', [TVisualStylePreview]); 15 | end; 16 | 17 | end. 18 | -------------------------------------------------------------------------------- /Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.SysControls.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.SysControls.pas -------------------------------------------------------------------------------- /Ext/VCLStyleUtils/DDetours/Source/DDetoursDefs.inc: -------------------------------------------------------------------------------- 1 | {.$DEFINE HOOK_INTERNAL_FUNCTIONS} // hook internal functions. 2 | 3 | {$IFDEF FPC} 4 | {$ASMMODE INTEL} 5 | {$ELSE !FPC} 6 | 7 | {$T-} 8 | 9 | {$IF CompilerVersion >= 17.0} 10 | {$DEFINE DELPHI_2005_UP} 11 | {$IFEND} 12 | 13 | {$IF CompilerVersion >= 18.5} 14 | {$DEFINE DELPHI_2007_UP} 15 | {$IFEND} 16 | 17 | {$IF CompilerVersion >= 20} 18 | {$DEFINE DELPHI_2009_UP} 19 | {$IFEND} 20 | 21 | {$IF CompilerVersion >= 21} 22 | {$DEFINE DELPHI_2010_UP} 23 | {$IFEND} 24 | 25 | {$IF CompilerVersion >= 22} 26 | {$DEFINE DELPHI_XE_UP} 27 | {$IFEND} 28 | 29 | {$IF CompilerVersion >= 23} 30 | {$DEFINE DELPHI_XE2_UP} 31 | {$IFEND} 32 | 33 | {$IF CompilerVersion >= 33} 34 | {$DEFINE DELPHI_RIO_UP} 35 | {$IFEND} 36 | 37 | {$IFDEF DELPHI_2005_UP} 38 | {$DEFINE SUPPORTS_INLINE} 39 | {$ENDIF} 40 | 41 | {$IFDEF DELPHI_XE2_UP} 42 | {$DEFINE SUPPORTS_RTTI} 43 | {$DEFINE SUPPORTS_GENERICS} 44 | {$DEFINE RENAMED_NAMESPACE} 45 | {$ENDIF} 46 | 47 | {$ENDIF FPC} 48 | 49 | -------------------------------------------------------------------------------- /Ext/VCLStyleUtils/DDetours/Source/LegacyTypes.pas: -------------------------------------------------------------------------------- 1 | // ************************************************************************************************** 2 | // 3 | // https://github.com/MahdiSafsafi/DDetours 4 | // 5 | // ************************************************************************************************** 6 | 7 | unit LegacyTypes; 8 | 9 | interface 10 | 11 | {$I DDetoursDefs.inc} 12 | 13 | type 14 | 15 | {$IFNDEF FPC} 16 | {$IFNDEF DELPHI_XE_UP} 17 | NativeInt = Integer; 18 | NativeUInt = Cardinal; 19 | PNativeInt = ^NativeInt; 20 | PNativeUInt = ^NativeUInt; 21 | {$IFDEF MSWINDOWS} 22 | TThreadID = LongWord; 23 | {$ENDIF MSWINDOWS} 24 | {$ENDIF DELPHI_XE_UP} 25 | {$ENDIF FPC} 26 | Int8 = Shortint; 27 | Int16 = Smallint; 28 | Int32 = Integer; 29 | 30 | UInt8 = Byte; 31 | UInt16 = Word; 32 | UInt32 = Cardinal; 33 | 34 | PInt8 = ^Int8; 35 | PInt16 = ^Int16; 36 | PInt32 = ^Int32; 37 | PInt64 = ^Int64; 38 | 39 | PUInt8 = ^UInt8; 40 | PUInt16 = ^UInt16; 41 | PUInt32 = ^UInt32; 42 | PUInt64 = ^UInt64; 43 | 44 | SIZE_T = NativeUInt; 45 | 46 | implementation 47 | 48 | end. 49 | -------------------------------------------------------------------------------- /Ext/VCLStyleUtils/DDetours/Source/TlHelp32.inc: -------------------------------------------------------------------------------- 1 | { TlHelp32 types for fpc } 2 | 3 | const 4 | TH32CS_SNAPHEAPLIST = $00000001; 5 | TH32CS_SNAPPROCESS = $00000002; 6 | TH32CS_SNAPTHREAD = $00000004; 7 | TH32CS_SNAPMODULE = $00000008; 8 | TH32CS_SNAPALL = TH32CS_SNAPHEAPLIST or TH32CS_SNAPPROCESS or 9 | TH32CS_SNAPTHREAD or TH32CS_SNAPMODULE; 10 | TH32CS_INHERIT = $80000000; 11 | 12 | TLS_OUT_OF_INDEXES = DWORD($FFFFFFFF); // FPC does not declare TLS_OUT_OF_INDEXES. 13 | 14 | type 15 | tagTHREADENTRY32 = record 16 | dwSize: DWORD; 17 | cntUsage: DWORD; 18 | th32ThreadID: DWORD; 19 | th32OwnerProcessID: DWORD; 20 | tpBasePri: Longint; 21 | tpDeltaPri: Longint; 22 | dwFlags: DWORD; 23 | end; 24 | THREADENTRY32 = tagTHREADENTRY32; 25 | PTHREADENTRY32 = ^tagTHREADENTRY32; 26 | LPTHREADENTRY32 = ^tagTHREADENTRY32; 27 | TThreadEntry32 = tagTHREADENTRY32; 28 | 29 | TThread32First = function (hSnapshot: THandle; var lpte: TThreadEntry32): BOOL stdcall; 30 | TThread32Next = function (hSnapshot: THandle; var lpte: TThreadENtry32): BOOL stdcall; 31 | TCreateToolhelp32Snapshot = function (dwFlags, th32ProcessID: DWORD): THandle; stdcall; 32 | -------------------------------------------------------------------------------- /Ext/dzlib/src/License.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) Thomas Mueller 2 | 3 | Unless stated otherwise in the source code, all source code in dzlib 4 | is subject to the terms of the Mozilla Public License, v. 1.1 or higher. 5 | 6 | If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/. 7 | 8 | At the time of this writing the exceptions are: 9 | * u_dzTimSort (Apache License 2.0 - because it is based on code that was licensed thus) 10 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_PCharQueue.pas: -------------------------------------------------------------------------------- 1 | unit u_PCharQueue; 2 | 3 | interface 4 | 5 | uses 6 | SysUtils, 7 | Classes; 8 | 9 | {$DEFINE __QUEUE_TEMPLATE__} 10 | type 11 | _QUEUE_ANCESTOR_ = TObject; 12 | _QUEUE_CONTAINER_TYPE_ = TList; 13 | _LIST_CONTAINER_ITEM_TYPE_ = Pointer; 14 | _QUEUE_ITEM_ = PChar; 15 | {$INCLUDE 't_dzQueueTemplate.tpl'} 16 | 17 | type 18 | {: Queue for storing PChar items } 19 | TPCharQueue = class(_QUEUE_TEMPLATE_) 20 | protected 21 | public 22 | destructor Destroy; override; 23 | end; 24 | 25 | implementation 26 | 27 | {$INCLUDE 't_dzQueueTemplate.tpl'} 28 | 29 | { TPCharQueue } 30 | 31 | destructor TPCharQueue.Destroy; 32 | begin 33 | while not IsEmpty do 34 | StrDispose(Dequeue); 35 | inherited; 36 | end; 37 | 38 | end. 39 | 40 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzAbstractHandler.pas: -------------------------------------------------------------------------------- 1 | /// 2 | /// This unit implements an AbstractErrorHandler which raises the exception where 3 | /// the abstract method was called, so it is actually possible to find which bl**dy 4 | /// abstract method has caused the problem. 5 | /// Owner: TM (curtesy of Allan Mertner from Peregrine Systems) 6 | /// Usage: Include in the application, preferable as the first unit. 7 | /// 8 | unit u_dzAbstractHandler; 9 | 10 | {$INCLUDE 'dzlib.inc'} 11 | 12 | interface 13 | 14 | uses 15 | SysUtils, 16 | SysConst; 17 | 18 | implementation 19 | 20 | procedure XAbstractErrorHandler; 21 | var 22 | p: Pointer; 23 | begin 24 | asm 25 | mov eax,[ebp+8] 26 | mov p,eax 27 | end; 28 | raise EAbstractError.CreateResFmt(PResStringRec(@SAbstractError), [''])at p; 29 | end; 30 | 31 | initialization 32 | AbstractErrorProc := XAbstractErrorHandler; 33 | end. 34 | 35 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzAssertTrace.pas: -------------------------------------------------------------------------------- 1 | unit u_dzAssertTrace; 2 | 3 | {$INCLUDE 'dzlib.inc'} 4 | 5 | interface 6 | 7 | uses 8 | SysUtils, 9 | Classes; 10 | 11 | var 12 | gblAssertTraceOn: Boolean = False; 13 | 14 | function WriteTrace(const _fn: string): Boolean; 15 | function ClearTrace: Boolean; 16 | 17 | implementation 18 | 19 | {$IFDEF ASSERT_TRACING} 20 | 21 | {$MESSAGE warn 'Assert tracing is turned on, this will impact performance!'} 22 | 23 | var 24 | Trace: TStringList = nil; 25 | 26 | procedure DebugAssertLine(const _Message, _Filename: string; _LineNumber: Integer; _ErrorAddr: Pointer); 27 | var 28 | Line: string; 29 | begin 30 | if gblAssertTraceOn then begin 31 | if not Assigned(Trace) then 32 | Trace := TStringList.Create; 33 | Line := ChangeFileExt(ExtractFileName(_Filename), '') + ':' + IntToStr(_LineNumber) + ' ' + _Message; 34 | // SendDebug(Line); 35 | Trace.Add(Line); 36 | end; 37 | end; 38 | {$ENDIF} 39 | 40 | function WriteTrace(const _fn: string): Boolean; 41 | begin 42 | {$IF Declared(Trace)} 43 | Result := (_fn <> '') and Assigned(Trace); 44 | if Result then begin 45 | Trace.SaveToFile(_fn); 46 | end; 47 | {$ELSE} 48 | Result := False; 49 | {$IFEND} 50 | end; 51 | 52 | function ClearTrace: Boolean; 53 | begin 54 | {$IF Declared(Trace)} 55 | if Assigned(Trace) then 56 | Trace.Clear; 57 | Result := True; 58 | {$ELSE} 59 | Result := True; 60 | {$IFEND} 61 | end; 62 | 63 | procedure dummy; 64 | begin 65 | if ClearTrace then 66 | WriteTrace(''); 67 | end; 68 | 69 | {$IFDEF ASSERT_TRACING} 70 | initialization 71 | dummy; 72 | AssertErrorProc := DebugAssertLine; 73 | finalization 74 | FreeAndNil(Trace); 75 | {$ENDIF} 76 | end. 77 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzBubbleSort.pas: -------------------------------------------------------------------------------- 1 | unit u_dzBubbleSort; 2 | 3 | interface 4 | 5 | uses 6 | u_dzSortUtils; 7 | 8 | // Why do I use Bubblesort instead of Insertionsort? 9 | // * It has roughly the same efficiency as Insertionsort (according to Wikipedia) 10 | // which is good enough for small data sets. 11 | // * It requires the same methods as Quicksort: Compare and Swap 12 | // (Insertionsort would need a Move method that is not as simple to implement independently 13 | // of the data type.) 14 | 15 | // https://en.wikipedia.org/wiki/Bubble_sort 16 | procedure BubbleSort(_Left, _Right: Integer; _CompareMeth: TCompareItemsMeth; _SwapMeth: TSwapItemsMeth); overload; 17 | procedure BubbleSort(_Left, _Right: Integer; _DataHandler: ISortDataHandler); overload; 18 | 19 | implementation 20 | 21 | procedure BubbleSort(_Left, _Right: Integer; _CompareMeth: TCompareItemsMeth; _SwapMeth: TSwapItemsMeth); 22 | var 23 | Max: Integer; 24 | NewMax: Integer; 25 | i: Integer; 26 | begin 27 | Max := _Right; 28 | repeat 29 | NewMax := 0; 30 | for i := 1 to Max do begin 31 | if _CompareMeth(i - 1, i) > 0 then begin 32 | _SwapMeth(i - 1, i); 33 | NewMax := i; 34 | end; 35 | end; 36 | Max := NewMax; 37 | until Max = 0; 38 | end; 39 | 40 | procedure BubbleSort(_Left, _Right: Integer; _DataHandler: ISortDataHandler); 41 | var 42 | Max: Integer; 43 | NewMax: Integer; 44 | i: Integer; 45 | begin 46 | Max := _Right; 47 | repeat 48 | NewMax := 0; 49 | for i := 1 to Max do begin 50 | if _DataHandler.Compare(i - 1, i) > 0 then begin 51 | _DataHandler.Swap(i - 1, i); 52 | NewMax := i; 53 | end; 54 | end; 55 | Max := NewMax; 56 | until Max = 0; 57 | end; 58 | 59 | end. 60 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzCallbackThread.pas: -------------------------------------------------------------------------------- 1 | unit u_dzCallbackThread; 2 | 3 | {$INCLUDE 'dzlib.inc'} 4 | 5 | interface 6 | 7 | uses 8 | SysUtils, 9 | Classes, 10 | u_dzNamedThread, 11 | u_dzErrorThread; 12 | 13 | type 14 | /// 15 | /// A thread that calls the given callback method, catches exceptions and allows to check 16 | /// whether it has finished. 17 | TdzCallbackThread = class(TErrorThread) 18 | private 19 | FCallback: TNotifyEvent; 20 | protected 21 | /// 22 | /// Calls the callback method given in the constructor. 23 | procedure doExecute; override; 24 | public 25 | /// 26 | /// @param CreateSuspended (see TThread.Create) 27 | /// @param Callback is TNotifyEvent that will be executed inside the thread 28 | /// @param Name is the name to set for this thread for the debugger to display 29 | constructor Create(_CreateSuspended: Boolean; _Callback: TNotifyEvent; const _Name: string); 30 | property Terminated; 31 | end; 32 | 33 | implementation 34 | 35 | { TdzCallbackThread } 36 | 37 | constructor TdzCallbackThread.Create(_CreateSuspended: Boolean; _Callback: TNotifyEvent; const _Name: string); 38 | begin 39 | Assert(Assigned(_Callback), 'Callback must be assigned'); 40 | FCallback := _Callback; 41 | inherited Create(_CreateSuspended, _Name); 42 | end; 43 | 44 | procedure TdzCallbackThread.doExecute; 45 | begin 46 | FCallback(Self); 47 | end; 48 | 49 | end. 50 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzCocktailSort.pas: -------------------------------------------------------------------------------- 1 | unit u_dzCocktailSort; 2 | 3 | interface 4 | 5 | uses 6 | u_dzSortUtils; 7 | 8 | // https://en.wikipedia.org/wiki/Cocktail_shaker_sort 9 | procedure CocktailSort(_Left, _Right: Integer; _CompareMeth: TCompareItemsMeth; _SwapMeth: TSwapItemsMeth); overload; 10 | procedure CocktailSort(_Left, _Right: Integer; _DataHandler: ISortDataHandler); overload; 11 | 12 | implementation 13 | 14 | procedure CocktailSort(_Left, _Right: Integer; _CompareMeth: TCompareItemsMeth; _SwapMeth: TSwapItemsMeth); 15 | var 16 | k: Integer; 17 | l: Integer; 18 | r: Integer; 19 | j: Integer; 20 | begin 21 | l := _Left + 1; 22 | r := _Right; 23 | k := _Right; 24 | repeat 25 | for j := r downto l do begin 26 | if _CompareMeth(j - 1, j) > 0 then begin 27 | _SwapMeth(j - 1, j); 28 | k := j; 29 | end; 30 | end; 31 | l := k + 1; 32 | for j := l to r do begin 33 | if _CompareMeth(j - 1, j) > 0 then begin 34 | _SwapMeth(j - 1, j); 35 | k := j; 36 | end; 37 | end; 38 | r := k - 1; 39 | until l > r; 40 | end; 41 | 42 | procedure CocktailSort(_Left, _Right: Integer; _DataHandler: ISortDataHandler); overload; 43 | var 44 | k: Integer; 45 | l: Integer; 46 | r: Integer; 47 | j: Integer; 48 | begin 49 | l := _Left + 1; 50 | r := _Right; 51 | k := _Right; 52 | repeat 53 | for j := r downto l do begin 54 | if _DataHandler.Compare(j - 1, j) > 0 then begin 55 | _DataHandler.Swap(j - 1, j); 56 | k := j; 57 | end; 58 | end; 59 | l := k + 1; 60 | for j := l to r do begin 61 | if _DataHandler.Compare(j - 1, j) > 0 then begin 62 | _DataHandler.Swap(j - 1, j); 63 | k := j; 64 | end; 65 | end; 66 | r := k - 1; 67 | until l > r; 68 | end; 69 | 70 | end. 71 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzCombSort.pas: -------------------------------------------------------------------------------- 1 | unit u_dzCombSort; 2 | 3 | interface 4 | 5 | uses 6 | u_dzSortUtils; 7 | 8 | // https://en.wikipedia.org/wiki/Comb_sort 9 | procedure CombSort(_Left, _Right: Integer; _CompareMeth: TCompareItemsMeth; _SwapMeth: TSwapItemsMeth); overload; 10 | procedure CombSort(_Left, _Right: Integer; _DataHandler: ISortDataHandler); overload; 11 | 12 | implementation 13 | 14 | procedure CombSort(_Left, _Right: Integer; _CompareMeth: TCompareItemsMeth; _SwapMeth: TSwapItemsMeth); 15 | var 16 | i: Integer; 17 | gap: Integer; 18 | Sorted: Boolean; 19 | begin 20 | gap := _Right - _Left + 1; 21 | Sorted := False; 22 | while (gap > 1) or not Sorted do begin 23 | gap := trunc(gap / 1.3); 24 | if gap < 1 then 25 | gap := 1; 26 | Sorted := True; 27 | for i := _Left to _Right - gap do 28 | if _CompareMeth(i, i + gap) > 0 then begin 29 | _SwapMeth(i, i + gap); 30 | Sorted := False; 31 | end; 32 | end; 33 | end; 34 | 35 | procedure CombSort(_Left, _Right: Integer; _DataHandler: ISortDataHandler); 36 | var 37 | i: Integer; 38 | gap: Integer; 39 | Sorted: Boolean; 40 | begin 41 | gap := _Right - _Left + 1; 42 | Sorted := False; 43 | while (gap > 1) or not Sorted do begin 44 | gap := trunc(gap / 1.3); 45 | if gap < 1 then 46 | gap := 1; 47 | Sorted := True; 48 | for i := _Left to _Right - gap do 49 | if _DataHandler.Compare(i, i + gap) > 0 then begin 50 | _DataHandler.Swap(i, i + gap); 51 | Sorted := False; 52 | end; 53 | end; 54 | end; 55 | 56 | end. 57 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzConsoleLogger.pas: -------------------------------------------------------------------------------- 1 | unit u_dzConsoleLogger; 2 | 3 | interface 4 | 5 | uses 6 | u_dzLogging; 7 | 8 | type 9 | TConsoleLogger = class(TAbstractLogger, ILogger) 10 | protected 11 | procedure Log(const _s: string; _Level: TLogLevel = llDump); override; 12 | {$WARNINGS OFF} 13 | // We get lots of deprecated warnings here for inherited methods that implement 14 | // the ILogger interface. They can be safely ignored. 15 | // For whatever reason {$WARN SYMBOL_DEPRECATED OFF} doesn't work here. 16 | end; 17 | 18 | implementation 19 | 20 | { TConsoleLogger } 21 | 22 | procedure TConsoleLogger.Log(const _s: string; _Level: TLogLevel); 23 | begin 24 | if IsConsole then 25 | WriteLn(LogLevel2Str(_Level) + ': ' + _s); 26 | end; 27 | 28 | end. 29 | 30 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzDatasetHelpersBDE.pas: -------------------------------------------------------------------------------- 1 | unit u_dzDatasetHelpersBDE; 2 | 3 | {$INCLUDE 'dzlib.inc'} 4 | 5 | {$IFDEF BDE_IS_DEPRECATED} 6 | {$IFNDEF NO_BDE_HINT} 7 | {$MESSAGE HINT 'The BDE has been deprecated for a long time'} 8 | {$ENDIF} 9 | {$ENDIF} 10 | 11 | interface 12 | 13 | {$IFNDEF BDE_IS_DEPRECATED} 14 | uses 15 | SysUtils, 16 | Classes, 17 | DB, 18 | DBTables, 19 | u_dzTranslator, 20 | u_dzDatasetHelpers; 21 | 22 | type 23 | TDataSetHelperBDE = class(TDatasetHelper) 24 | protected 25 | procedure SetParamByName(const _Param: string; _Value: variant); override; 26 | function TrySetParamByName(const _Param: string; _Value: variant): Boolean; override; 27 | public 28 | constructor Create(_Table: TTable); overload; 29 | end; 30 | {$ENDIF ~BDE_IS_DEPRECATED} 31 | 32 | implementation 33 | 34 | {$IFNDEF BDE_IS_DEPRECATED} 35 | 36 | { TDataSetHelperBDE } 37 | 38 | constructor TDataSetHelperBDE.Create(_Table: TTable); 39 | begin 40 | inherited Create(_Table, _Table.TableName); 41 | end; 42 | 43 | procedure TDataSetHelperBDE.SetParamByName(const _Param: string; _Value: variant); 44 | var 45 | i: Integer; 46 | Query: TQuery; 47 | begin 48 | if FDataset is TQuery then begin 49 | Query := (FDataset as TQuery); 50 | for i := 0 to Query.Params.Count - 1 do 51 | if SameText(Query.Params[i].Name, _Param) then 52 | Query.Params[i].Value := _Value; 53 | end else 54 | raise Exception.CreateFmt(_('SetParamByName is not supported for a %s (only TQuery descendants).'), [FDataset.ClassName]); 55 | end; 56 | 57 | function TDataSetHelperBDE.TrySetParamByName(const _Param: string; _Value: variant): Boolean; 58 | var 59 | BdeParam: TParam; 60 | begin 61 | if FDataset is TQuery then begin 62 | BdeParam := (FDataset as TQuery).Params.FindParam(_Param); 63 | Result := Assigned(BdeParam); 64 | if Result then 65 | BdeParam.Value := _Value; 66 | end else 67 | raise Exception.CreateFmt(_('TrySetParamByName is not supported for a %s (only TQuery descendants).'), [FDataset.ClassName]); 68 | end; 69 | 70 | {$ENDIF ~BDE_IS_DEPRECATED} 71 | 72 | end. 73 | 74 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzDatasetHelpersTdbf.pas: -------------------------------------------------------------------------------- 1 | unit u_dzDatasetHelpersTdbf; 2 | 3 | interface 4 | 5 | uses 6 | u_dzDatasetHelpers, 7 | dbf; // libs\tdbf\src 8 | 9 | type 10 | TDataSetHelperTdbf = class(TDatasetHelper) 11 | public 12 | constructor Create(_Table: TDBF); overload; 13 | end; 14 | 15 | implementation 16 | 17 | { TDataSetHelperTdbf } 18 | 19 | constructor TDataSetHelperTdbf.Create(_Table: TDBF); 20 | begin 21 | inherited Create(_Table, _Table.TableName); 22 | end; 23 | 24 | end. 25 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzDatasetHelpersTopaz.pas: -------------------------------------------------------------------------------- 1 | unit u_dzDatasetHelpersTopaz; 2 | 3 | interface 4 | 5 | uses 6 | SysUtils, 7 | u_dzDatasetHelpers, 8 | tzprimds, // libs\topaz\src 9 | ucommon, 10 | utzcds, 11 | utzfds; 12 | 13 | type 14 | TDataSetHelperTopaz = class(TDatasetHelper) 15 | public 16 | constructor Create(_Table: TTzDbf); overload; 17 | end; 18 | 19 | implementation 20 | 21 | { TDataSetHelperTopaz } 22 | 23 | constructor TDataSetHelperTopaz.Create(_Table: TTzDbf); 24 | begin 25 | inherited Create(_Table, Extractfilename(_Table.DbfFileName)); 26 | end; 27 | 28 | end. 29 | 30 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzDelphiIdeUtils.pas: -------------------------------------------------------------------------------- 1 | unit u_dzDelphiIdeUtils; 2 | 3 | interface 4 | 5 | type 6 | DelphiVersionEnum = (dveD5, dveD6, dveD7, 7 | dveD2005, dveD2006, dveD2007, 8 | dveD2009, dveD2010, 9 | dveDXE, dveDXE2, dveDXE3, dveDXE4, dveDXE5, dveDXE6, dveDXE7, dveDXE8, 10 | dveD10, dveD101, dveD102, dveD103, dveD104, 11 | dveD11); 12 | 13 | type 14 | TDelphiStringArr = array[DelphiVersionEnum] of string; 15 | const 16 | LIBRARY_KEYS: TDelphiStringArr = ( 17 | 'Borland\Delphi\5.0', 18 | 'Borland\Delphi\6.0', 19 | 'Borland\Delphi\7.0', 20 | 'Borland\BDS\3.0', 21 | 'Borland\BDS\4.0', 22 | 'Borland\BDS\5.0', 23 | 'Codegear\BDS\6.0', 24 | 'Codegear\BDS\7.0', 25 | 'Embarcadero\BDS\8.0', 26 | 'Embarcadero\BDS\9.0', 27 | 'Embarcadero\BDS\10.0', 28 | 'Embarcadero\BDS\11.0', 29 | 'Embarcadero\BDS\12.0', 30 | 'Embarcadero\BDS\14.0', 31 | 'Embarcadero\BDS\15.0', 32 | 'Embarcadero\BDS\16.0', 33 | 'Embarcadero\BDS\17.0', 34 | 'Embarcadero\BDS\18.0', 35 | 'Embarcadero\BDS\19.0', 36 | 'Embarcadero\BDS\20.0', 37 | 'Embarcadero\BDS\21.0', 38 | 'Embarcadero\BDS\22.0'); 39 | 40 | DELPHI_NAMES: TDelphiStringArr = ( 41 | '5', '6', '7', 42 | '2005', '2006', '2007', 43 | '2009', '2010', 44 | 'XE', 'XE2', 'XE3', 'XE4', 'XE5', 'XE6', 'XE7', 'XE8', 45 | '10.0', '10.1', '10.2', '10.3', '10.4', '11'); 46 | 47 | implementation 48 | 49 | end. 50 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzErrorThreadList.pas: -------------------------------------------------------------------------------- 1 | unit u_dzErrorThreadList; 2 | 3 | {$INCLUDE 'dzlib.inc'} 4 | 5 | interface 6 | 7 | uses 8 | Windows, 9 | SysUtils, 10 | Classes, 11 | u_dzErrorThread; 12 | 13 | {$DEFINE __DZ_OBJECT_LIST_TEMPLATE__} 14 | type 15 | _LIST_ANCESTOR_ = TObject; 16 | _ITEM_TYPE_ = TErrorThread; 17 | {$INCLUDE 't_dzObjectListTemplate.tpl'} 18 | 19 | type 20 | {: List for storing TErrorThread items } 21 | TErrorThreadList = class(_DZ_OBJECT_LIST_TEMPLATE_) 22 | public 23 | function StillRunning: Integer; 24 | procedure GetErrors(_sl: TStrings); 25 | end; 26 | 27 | implementation 28 | 29 | {$INCLUDE 't_dzObjectListTemplate.tpl'} 30 | 31 | { TErrorThreadList } 32 | 33 | procedure TErrorThreadList.GetErrors(_sl: TStrings); 34 | var 35 | i: Integer; 36 | s: string; 37 | begin 38 | for i := 0 to Count - 1 do begin 39 | s := Items[i].ErrorMessage; 40 | if s <> '' then begin 41 | UniqueString(s); 42 | _sl.Add(s); 43 | end; 44 | end; 45 | end; 46 | 47 | function TErrorThreadList.StillRunning: Integer; 48 | var 49 | i: Integer; 50 | begin 51 | Result := 0; 52 | for i := 0 to Count - 1 do 53 | if not Items[i].HasFinished then 54 | Inc(Result); 55 | end; 56 | 57 | end. 58 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzExtendedList.pas: -------------------------------------------------------------------------------- 1 | unit u_dzExtendedList; 2 | 3 | {$INCLUDE 'dzlib.inc'} 4 | 5 | interface 6 | 7 | uses 8 | SysUtils, 9 | Classes; 10 | 11 | type 12 | TExtendedEntry = class 13 | private 14 | FValue: Extended; 15 | public 16 | constructor Create(_Value: Extended); 17 | function ToString: string; overload; {$IFDEF HAS_TOBJECT_TOSTRING} override; {$ENDIF} 18 | function ToString(const _FormatStr: string = '%g'): string; reintroduce; overload; 19 | property Value: Extended read FValue write FValue; 20 | end; 21 | 22 | {$DEFINE __DZ_LIST_TEMPLATE__} 23 | type 24 | _LIST_ANCESTOR_ = TObject; 25 | _LIST_CONTAINER_ = TList; 26 | _LIST_CONTAINER_ITEM_TYPE_ = pointer; 27 | _ITEM_TYPE_ = TExtendedEntry; 28 | {$INCLUDE 't_dzListTemplate.tpl'} 29 | 30 | type 31 | {: List for storing TExtendedEntry items } 32 | TdzExtendedList = class(_DZ_LIST_TEMPLATE_) 33 | protected 34 | {: Frees a TExtendedEntry } 35 | procedure FreeItem(_Item: TExtendedEntry); override; 36 | public 37 | procedure Add(_Value: Extended); reintroduce; 38 | function Extract(_Idx: Integer): Extended; reintroduce; 39 | end; 40 | 41 | implementation 42 | 43 | {$INCLUDE 't_dzListTemplate.tpl'} 44 | 45 | procedure TdzExtendedList.Add(_Value: Extended); 46 | begin 47 | inherited Add(TExtendedEntry.Create(_Value)); 48 | end; 49 | 50 | function TdzExtendedList.Extract(_Idx: Integer): Extended; 51 | var 52 | Item: TExtendedEntry; 53 | begin 54 | Item := inherited Extract(_Idx); 55 | Result := Item.Value; 56 | FreeItem(Item); 57 | end; 58 | 59 | procedure TdzExtendedList.FreeItem(_Item: TExtendedEntry); 60 | begin 61 | _Item.Free; 62 | end; 63 | 64 | { TExtendedEntry } 65 | 66 | constructor TExtendedEntry.Create(_Value: Extended); 67 | begin 68 | inherited Create; 69 | FValue := _Value; 70 | end; 71 | 72 | function TExtendedEntry.ToString(const _FormatStr: string = '%g'): string; 73 | begin 74 | Result := Format(_FormatStr, [Value]); 75 | end; 76 | 77 | function TExtendedEntry.ToString: string; 78 | begin 79 | Result := Format('%g', [Value]); 80 | end; 81 | 82 | end. 83 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzGuiTestRunner.pas: -------------------------------------------------------------------------------- 1 | unit u_dzGuiTestRunner; 2 | 3 | interface 4 | 5 | uses 6 | TestFramework, 7 | GUITestRunner, 8 | u_dzUnitTestUtils; 9 | 10 | type 11 | /// 12 | /// extends TGUITestRunner so it can display info messages in addition to failures 13 | TdzGuiTestRunner = class(TGUITestRunner, ITestListener) 14 | private 15 | procedure AddFailure(failure: TTestFailure); 16 | end; 17 | 18 | procedure RunRegisteredTests; 19 | 20 | implementation 21 | 22 | uses 23 | ComCtrls, 24 | Forms; 25 | 26 | procedure RunTest(test: ITest); 27 | var 28 | Runner: TdzGuiTestRunner; 29 | begin 30 | Runner := TdzGuiTestRunner.Create(nil); 31 | try 32 | Runner.Suite := test; 33 | Runner.ShowModal; 34 | finally 35 | Runner.Free; 36 | end; 37 | end; 38 | 39 | procedure RunRegisteredTests; 40 | begin 41 | RunTest(registeredTests) 42 | end; 43 | 44 | type 45 | TProgressBarCrack = class(TProgressBar); 46 | 47 | procedure TdzGuiTestRunner.AddFailure(failure: TTestFailure); 48 | var 49 | ListItem: TListItem; 50 | begin 51 | ListItem := AddFailureItem(failure); 52 | if failure.ThrownExceptionClass.InheritsFrom(ETestInfo) then 53 | ListItem.ImageIndex := imgRUN 54 | else begin 55 | ListItem.ImageIndex := imgERROR; 56 | if TestResult.ErrorCount = 0 then begin 57 | TProgressBarCrack(ScoreBar).Color := clFAILURE; 58 | TProgressBarCrack(ScoreBar).RecreateWnd; 59 | end; 60 | SetTreeNodeImage(TestToNode(failure.failedTest), imgFAILED); 61 | UpdateStatus(False); 62 | end; 63 | end; 64 | 65 | end. 66 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzInputValidatorCheckListbox.pas: -------------------------------------------------------------------------------- 1 | unit u_dzInputValidatorCheckListbox deprecated; // use u_dzInputValidator instead 2 | 3 | interface 4 | 5 | uses 6 | Windows, 7 | Messages, 8 | SysUtils, 9 | Classes, 10 | CheckLst, 11 | u_dzInputValidator; 12 | 13 | type 14 | IdzChecklistboxValidator = interface ['{D8A290D5-308D-40BB-A9DB-24CD36E4E5AD}'] 15 | function AtLeastOneChecked: Boolean; 16 | end; 17 | 18 | function ControlValidator(_clb: TCheckListBox; _iv: IdzInputValidator): IdzChecklistboxValidator; overload; 19 | 20 | implementation 21 | 22 | uses 23 | u_dzVclUtils; 24 | 25 | type 26 | TChecklistboxValidator = class(TControlValidator, IdzChecklistboxValidator) 27 | private 28 | function CheckListBox: TCheckListBox; 29 | private 30 | function AtLeastOneChecked: Boolean; 31 | public 32 | constructor Create(_clb: TCheckListBox; _iv: IdzInputValidator); 33 | end; 34 | 35 | function ControlValidator(_clb: TCheckListBox; _iv: IdzInputValidator): IdzChecklistboxValidator; 36 | begin 37 | Result := TChecklistboxValidator.Create(_clb, _iv); 38 | end; 39 | 40 | { TChecklistboxValidator } 41 | 42 | constructor TChecklistboxValidator.Create(_clb: TCheckListBox; _iv: IdzInputValidator); 43 | begin 44 | inherited Create(_clb, _iv); 45 | SendMessage(_clb.Handle, WM_PRINTCLIENT, 0, 0); 46 | end; 47 | 48 | function TChecklistboxValidator.CheckListBox: TCheckListBox; 49 | begin 50 | Result := FControl as TCheckListBox; 51 | end; 52 | 53 | function TChecklistboxValidator.AtLeastOneChecked: Boolean; 54 | begin 55 | Result := (TCheckListBox_GetCheckedCount(CheckListBox) > 0); 56 | SetColor(Result); 57 | end; 58 | 59 | end. 60 | 61 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzInputValidatorJVCL.pas: -------------------------------------------------------------------------------- 1 | unit u_dzInputValidatorJVCL; 2 | 3 | {$INCLUDE 'dzlib.inc'} 4 | 5 | interface 6 | 7 | {$IFNDEF DELPHI2007_UP} 8 | {$IFNDEF NO_DELPHI2007UP_HINT} 9 | {$MESSAGE HINT 'Delphi <2007 not supported'} 10 | {$ENDIF} 11 | {$ELSE} 12 | 13 | uses 14 | JvToolEdit, 15 | u_dzInputValidator; 16 | 17 | type 18 | IdzJvDateEditValidator = interface ['{7F573119-AA32-4D34-9433-29E3BC81D8AC}'] 19 | function ValidateHasValue: Boolean; 20 | end; 21 | 22 | function ControlValidator(_ed: TJvDateEdit; _iv: IdzInputValidator): IdzJvDateEditValidator; overload; 23 | 24 | {$ENDIF DELPHI2007_UP} 25 | 26 | implementation 27 | 28 | {$IFDEF DELPHI2007_UP} 29 | 30 | type 31 | TJvDateEditValidator = class(TControlValidator, IdzJvDateEditValidator) 32 | private 33 | function DateEdit: TJvDateEdit; 34 | private 35 | function ValidateHasValue: Boolean; 36 | end; 37 | 38 | { TJvDateEditValidator } 39 | 40 | function TJvDateEditValidator.DateEdit: TJvDateEdit; 41 | begin 42 | Result := FControl as TJvDateEdit; 43 | end; 44 | 45 | function TJvDateEditValidator.ValidateHasValue: Boolean; 46 | begin 47 | Result := (DateEdit.Date <> 0); 48 | end; 49 | 50 | function ControlValidator(_ed: TJvDateEdit; _iv: IdzInputValidator): IdzJvDateEditValidator; 51 | begin 52 | Result := TJvDateEditValidator.Create(_ed, _iv); 53 | end; 54 | 55 | {$ENDIF DELPHI2007_UP} 56 | 57 | end. 58 | 59 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzInputValidatorMarkerList.pas: -------------------------------------------------------------------------------- 1 | unit u_dzInputValidatorMarkerList; 2 | 3 | interface 4 | 5 | uses 6 | SysUtils, 7 | Classes, 8 | Controls, 9 | ExtCtrls, 10 | u_dzTranslator, 11 | u_dzQuickSort; 12 | 13 | type 14 | TControlShapeLink = class 15 | private 16 | FName: string; 17 | FImage: TImage; 18 | public 19 | constructor Create(const _Name: string; _Image: TImage); 20 | property Name: string read FName; 21 | property Image: TImage read FImage; 22 | end; 23 | 24 | {$DEFINE __DZ_SORTED_OBJECT_LIST_TEMPLATE__} 25 | type 26 | _LIST_ANCESTOR_ = TObject; 27 | _ITEM_TYPE_ = TControlShapeLink; 28 | _KEY_TYPE_ = string; 29 | {$INCLUDE 't_dzSortedObjectListTemplate.tpl'} 30 | 31 | type 32 | {: List for storing TControlShapeLink items sorted by string } 33 | TInputValidatorShapeList = class(_DZ_SORTED_OBJECT_LIST_TEMPLATE_) 34 | protected 35 | {: return the key of an item for comparison } 36 | function KeyOf(const _Item: TControlShapeLink): string; override; 37 | {: compare the keys of two items, must return a value 38 | < 0 if Key1 < Key2, = 0 if Key1 = Key2 and > 0 if Key1 > Key2 } 39 | function Compare(const _Key1, _Key2: string): Integer; override; 40 | end; 41 | 42 | implementation 43 | 44 | {$INCLUDE 't_dzSortedObjectListTemplate.tpl'} 45 | 46 | function TInputValidatorShapeList.KeyOf(const _Item: TControlShapeLink): string; 47 | begin 48 | Result := _Item.Name; 49 | end; 50 | 51 | function TInputValidatorShapeList.Compare(const _Key1, _Key2: string): Integer; 52 | begin 53 | Result := CompareText(_Key1, _Key2); 54 | end; 55 | 56 | { TControlShapeLink } 57 | 58 | constructor TControlShapeLink.Create(const _Name: string; _Image: TImage); 59 | begin 60 | inherited Create; 61 | FName := _Name; 62 | FImage := _Image; 63 | end; 64 | 65 | end. 66 | 67 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzInsertionSort.pas: -------------------------------------------------------------------------------- 1 | unit u_dzInsertionSort; 2 | 3 | interface 4 | 5 | uses 6 | u_dzSortUtils; 7 | 8 | // https://en.wikipedia.org/wiki/Insertion_sort 9 | procedure InsertionSort(_Left, _Right: Integer; _CompareMeth: TCompareItemsMeth; _SwapMeth: TSwapItemsMeth); overload; 10 | procedure InsertionSort(_Left, _Right: Integer; _DataHandler: ISortDataHandler); overload; 11 | 12 | implementation 13 | 14 | procedure InsertionSort(_Left, _Right: Integer; _CompareMeth: TCompareItemsMeth; _SwapMeth: TSwapItemsMeth); 15 | var 16 | i: Integer; 17 | j: Integer; 18 | begin 19 | i := _Left + 1; 20 | while i <= _Right do begin 21 | j := i; 22 | while (j > _Left) and (_CompareMeth(j - 1, j) > 0) do begin 23 | _SwapMeth(j, j - 1); 24 | Dec(j); 25 | end; 26 | Inc(i); 27 | end; 28 | end; 29 | 30 | procedure InsertionSort(_Left, _Right: Integer; _DataHandler: ISortDataHandler); overload; 31 | var 32 | i: Integer; 33 | j: Integer; 34 | begin 35 | i := _Left + 1; 36 | while i <= _Right do begin 37 | j := i; 38 | while (j > _Left) and (_DataHandler.Compare(j - 1, j) > 0) do begin 39 | _DataHandler.Swap(j, j - 1); 40 | Dec(j); 41 | end; 42 | Inc(i); 43 | end; 44 | end; 45 | 46 | end. 47 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzIntegerList.pas: -------------------------------------------------------------------------------- 1 | unit u_dzIntegerList; 2 | 3 | interface 4 | 5 | uses 6 | Classes; 7 | 8 | {$DEFINE __DZ_LIST_TEMPLATE__} 9 | type 10 | _LIST_ANCESTOR_ = TObject; 11 | _LIST_CONTAINER_ = TList; 12 | _LIST_CONTAINER_ITEM_TYPE_ = pointer; 13 | _ITEM_TYPE_ = Integer; 14 | {$INCLUDE 't_dzListTemplate.tpl'} 15 | 16 | type 17 | {: List for storing Integer items } 18 | TDzIntegerList = class(_DZ_LIST_TEMPLATE_) 19 | protected 20 | end; 21 | 22 | implementation 23 | 24 | {$INCLUDE 't_dzListTemplate.tpl'} 25 | 26 | end. 27 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzJvclUtils.pas: -------------------------------------------------------------------------------- 1 | unit u_dzJvclUtils; 2 | 3 | interface 4 | 5 | uses 6 | JvSpin; 7 | 8 | procedure TJvSpinEdit_SetValueNoChange(_sed: TJvSpinEdit; _Value: extended); 9 | 10 | implementation 11 | 12 | uses 13 | Classes; 14 | 15 | procedure TJvSpinEdit_SetValueNoChange(_sed: TJvSpinEdit; _Value: extended); 16 | var 17 | Event: TNotifyEvent; 18 | begin 19 | Event := _sed.OnChange; 20 | _sed.OnChange := nil; 21 | try 22 | _sed.Value := _Value; 23 | finally 24 | _sed.OnChange := Event; 25 | end; 26 | end; 27 | 28 | end. 29 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzList.pas: -------------------------------------------------------------------------------- 1 | unit u_dzList; 2 | 3 | interface 4 | 5 | uses 6 | SysUtils, 7 | Classes; 8 | 9 | type 10 | TdzList = class(TList) 11 | protected 12 | procedure Grow; override; 13 | public 14 | procedure ShrinkToMinimum; 15 | end; 16 | 17 | implementation 18 | 19 | { TdzList } 20 | 21 | procedure TdzList.Grow; 22 | var 23 | CurCapacity: Integer; 24 | Delta: Integer; 25 | begin 26 | CurCapacity := Capacity; 27 | if CurCapacity > 1024 * 1024 then 28 | // we can't grwo large lists by 1/4 of the capacity because this will quickly run out of memory 29 | // so we only grow by 1024 30 | Delta := 1024 31 | else if CurCapacity > 64 then 32 | Delta := CurCapacity div 4 33 | else if CurCapacity > 8 then 34 | Delta := 16 35 | else 36 | Delta := 4; 37 | SetCapacity(CurCapacity + Delta); 38 | end; 39 | 40 | procedure TdzList.ShrinkToMinimum; 41 | begin 42 | SetCapacity(Count); 43 | end; 44 | 45 | end. 46 | 47 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzMutex.pas: -------------------------------------------------------------------------------- 1 | unit u_dzMutex; 2 | 3 | {$INCLUDE 'dzlib.inc'} 4 | 5 | interface 6 | 7 | uses 8 | Windows, 9 | SyncObjs, 10 | u_dzTranslator; 11 | 12 | {$IF not Declared(TMutex)} 13 | {MESSAGE HINT 'this unit requires TMutex'} 14 | {$ELSE} 15 | 16 | type 17 | TdzMutex = class(TMutex) 18 | public 19 | /// Calls WaitFor with and returns true, if that returns 20 | /// wrSignaled or wrAbandoned. Returns false if WaitFor 21 | /// returns wrTimeout or wrError. 22 | /// If ExceptionOnError is set to true, wrError will raise an 23 | /// exception. 24 | function TryAcquire(_Timeout: LongWord = 0; _ExceptionOnError: boolean = true): boolean; 25 | end; 26 | {$IFEND} 27 | 28 | implementation 29 | 30 | {$IF Declared(TMutex)} 31 | uses 32 | u_dzMiscUtils; 33 | 34 | function _(const _s: string): string; inline; 35 | begin 36 | Result := dzDGetText(_s, 'dzlib'); 37 | end; 38 | 39 | { TdzMutex } 40 | 41 | function TdzMutex.TryAcquire(_Timeout: LongWord = 0; _ExceptionOnError: boolean = true): boolean; 42 | var 43 | Res: TWaitResult; 44 | begin 45 | Res := WaitFor(_Timeout); 46 | Result := False; 47 | case Res of 48 | wrSignaled, wrAbandoned: begin 49 | Result := true; 50 | end; 51 | wrTimeout: begin 52 | Result := False; 53 | end; 54 | wrError: begin 55 | if _ExceptionOnError then 56 | RaiseLastOsErrorEx(self.LastError, _('Error "%1:s (%0:d)" while trying to acquire mutex.')); 57 | Result := False; 58 | end; 59 | end; 60 | end; 61 | 62 | {$IFEND} 63 | 64 | end. 65 | 66 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzNameBoolList.pas: -------------------------------------------------------------------------------- 1 | unit u_dzNameBoolList; 2 | 3 | interface 4 | 5 | uses 6 | Classes, 7 | u_dzQuicksort; 8 | 9 | type 10 | TNameBool = class 11 | private 12 | FName: string; 13 | FBool: boolean; 14 | public 15 | constructor Create(const _Name: string; _Bool: boolean); 16 | property Name: string read FName; 17 | property Bool: boolean read FBool write FBool; 18 | end; 19 | 20 | {$DEFINE __DZ_OBJECT_LIST_TEMPLATE__} 21 | type 22 | _LIST_ANCESTOR_ = TObject; 23 | _ITEM_TYPE_ = TNameBool; 24 | {$INCLUDE 't_dzObjectListTemplate.tpl'} 25 | 26 | type 27 | {: Sorted list for storing TNameBool items } 28 | TNameBoolList = class(_DZ_OBJECT_LIST_TEMPLATE_) 29 | private 30 | function FindName(const _Name: string; out _Idx: integer): boolean; 31 | function GetValues(const _Name: string): boolean; 32 | procedure SetValues(const _Name: string; _Value: boolean); 33 | public 34 | property Values[const _Name: string]: boolean read GetValues write SetValues; 35 | end; 36 | 37 | implementation 38 | 39 | uses 40 | SysUtils; 41 | 42 | {$INCLUDE 't_dzObjectListTemplate.tpl'} 43 | 44 | { TNameBool } 45 | 46 | constructor TNameBool.Create(const _Name: string; _Bool: boolean); 47 | begin 48 | inherited Create; 49 | FName := _Name; 50 | FBool := _Bool; 51 | end; 52 | 53 | { TNameBoolList } 54 | 55 | function TNameBoolList.FindName(const _Name: string; out _Idx: integer): boolean; 56 | var 57 | i: Integer; 58 | begin 59 | for i := 0 to Count - 1 do 60 | if SameText(Items[i].Name, _Name) then begin 61 | Result := true; 62 | _Idx := i; 63 | exit; 64 | end; 65 | Result := false; 66 | end; 67 | 68 | function TNameBoolList.GetValues(const _Name: string): boolean; 69 | var 70 | Idx: integer; 71 | begin 72 | if not FindName(_Name, Idx) then 73 | Result := false 74 | else 75 | Result := Items[Idx].Bool; 76 | end; 77 | 78 | procedure TNameBoolList.SetValues(const _Name: string; _Value: boolean); 79 | var 80 | Idx: integer; 81 | begin 82 | if FindName(_Name, Idx) then 83 | Items[Idx].Bool := _Value 84 | else 85 | Add(TNameBool.Create(_Name, _Value)) 86 | end; 87 | 88 | end. 89 | 90 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzNameValueListUnsorted.pas: -------------------------------------------------------------------------------- 1 | /// 2 | /// an unsorted list of Name-Value pairs (unfortunately u_dzNameValueList is sorted) 3 | unit u_dzNameValueListUnsorted deprecated; // see u_dzUnsortdNameValueList 4 | 5 | interface 6 | 7 | uses 8 | SysUtils, 9 | Classes; 10 | 11 | type 12 | TNameValueItem = class 13 | private 14 | FName: string; 15 | FValue: string; 16 | public 17 | constructor Create(const _Name, _Value: string); 18 | property Name: string read FName; 19 | property Value: string read FValue write FValue; 20 | end; 21 | 22 | {$DEFINE __DZ_OBJECT_LIST_TEMPLATE__} 23 | type 24 | _LIST_ANCESTOR_ = TObject; 25 | _ITEM_TYPE_ = TNameValueItem; 26 | {$INCLUDE 't_dzObjectListTemplate.tpl'} 27 | 28 | type 29 | /// 30 | /// List for storing TNameValueItem items 31 | TNameValueListUnsorted = class(_DZ_OBJECT_LIST_TEMPLATE_) 32 | function AddEntry(const _Name, _Value: string): Integer; 33 | end; 34 | 35 | implementation 36 | 37 | {$INCLUDE 't_dzObjectListTemplate.tpl'} 38 | 39 | { TNameValueItem } 40 | 41 | constructor TNameValueItem.Create(const _Name, _Value: string); 42 | begin 43 | inherited Create; 44 | FName := _Name; 45 | FValue := _Value; 46 | end; 47 | 48 | { TNameValueListUnsorted } 49 | 50 | function TNameValueListUnsorted.AddEntry(const _Name, _Value: string): Integer; 51 | begin 52 | Result := Add(TNameValueItem.Create(_Name, _Value)); 53 | end; 54 | 55 | end. 56 | 57 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzNullableDouble.pas: -------------------------------------------------------------------------------- 1 | unit u_dzNullableDouble; 2 | 3 | {$INCLUDE 'dzlib.inc'} 4 | 5 | interface 6 | 7 | {$IFNDEF DELPHI2007_UP} 8 | {$IFNDEF NO_DELPHI2007UP_HINT} 9 | {$MESSAGE HINT 'Delphi <2007 not supported'} 10 | {$ENDIF} 11 | {$ELSE} 12 | 13 | uses 14 | SysUtils, 15 | Math, 16 | Variants, 17 | u_dzTranslator, 18 | u_dzVariantUtils, 19 | u_dzConvertUtils, 20 | u_dzStringUtils, 21 | u_dzNullableTypesUtils; 22 | 23 | {$DEFINE __DZ_NULLABLE_NUMBER_TEMPLATE__} 24 | type 25 | _NULLABLE_TYPE_BASE_ = Double; 26 | const 27 | _NULLABLE_TYPE_NAME_ = 'TNullableDouble'; 28 | 29 | {$INCLUDE 't_NullableNumber.tpl'} 30 | 31 | type 32 | TNullableDouble = _NULLABLE_NUMBER_; 33 | TdzNullableDouble = TNullableDouble deprecated; 34 | 35 | {$ENDIF DELPHI2007_UP} 36 | 37 | implementation 38 | 39 | {$IFDEF DELPHI2007_UP} 40 | 41 | {$INCLUDE 't_NullableNumber.tpl'} 42 | 43 | {$ENDIF DELPHI2007_UP} 44 | end. 45 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzNullableExtended.pas: -------------------------------------------------------------------------------- 1 | unit u_dzNullableExtended; 2 | 3 | {$INCLUDE 'dzlib.inc'} 4 | 5 | interface 6 | 7 | {$IFNDEF DELPHI2007_UP} 8 | {$IFNDEF NO_DELPHI2007UP_HINT} 9 | {$MESSAGE HINT 'Delphi <2007 not supported'} 10 | {$ENDIF} 11 | {$ELSE} 12 | 13 | uses 14 | SysUtils, 15 | Math, 16 | Variants, 17 | u_dzTranslator, 18 | u_dzVariantUtils, 19 | u_dzConvertUtils, 20 | u_dzStringUtils, 21 | u_dzNullableTypesUtils; 22 | 23 | {$DEFINE __DZ_NULLABLE_NUMBER_TEMPLATE__} 24 | type 25 | _NULLABLE_TYPE_BASE_ = Extended; 26 | const 27 | _NULLABLE_TYPE_NAME_ = 'TNullableExtended'; 28 | {$INCLUDE 't_NullableNumber.tpl'} 29 | 30 | type 31 | TNullableExtended = _NULLABLE_NUMBER_; 32 | TdzNullableExtended = TNullableExtended deprecated; 33 | 34 | {$ENDIF DELPHI2007_UP} 35 | 36 | implementation 37 | 38 | {$IFDEF DELPHI2007_UP} 39 | 40 | {$INCLUDE 't_NullableNumber.tpl'} 41 | 42 | {$ENDIF DELPHI2007_UP} 43 | 44 | end. 45 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzNullableInt64.pas: -------------------------------------------------------------------------------- 1 | unit u_dzNullableInt64; 2 | 3 | {$INCLUDE 'dzlib.inc'} 4 | 5 | interface 6 | 7 | {$IFNDEF DELPHI2007_UP} 8 | {$IFNDEF NO_DELPHI2007UP_HINT} 9 | {$MESSAGE HINT 'Delphi <2007 not supported'} 10 | {$ENDIF} 11 | {$ELSE} 12 | 13 | uses 14 | SysUtils, 15 | Math, 16 | Variants, 17 | u_dzTranslator, 18 | u_dzVariantUtils, 19 | u_dzConvertUtils, 20 | u_dzStringUtils, 21 | u_dzNullableTypesUtils; 22 | 23 | {$DEFINE __DZ_NULLABLE_NUMBER_TEMPLATE__} 24 | type 25 | _NULLABLE_TYPE_BASE_ = Int64; 26 | const 27 | _NULLABLE_TYPE_NAME_ = 'TNullableInt64'; 28 | {$INCLUDE 't_NullableNumber.tpl'} 29 | 30 | type 31 | TNullableInt64 = _NULLABLE_NUMBER_; 32 | TdzNullableInt64 = TNullableInt64 deprecated; 33 | 34 | {$ENDIF DELPHI2007_UP} 35 | 36 | implementation 37 | 38 | {$IFDEF DELPHI2007_UP} 39 | 40 | {$INCLUDE 't_NullableNumber.tpl'} 41 | 42 | {$ENDIF DELPHI2007_UP} 43 | 44 | end. 45 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzNullableInteger.pas: -------------------------------------------------------------------------------- 1 | unit u_dzNullableInteger; 2 | 3 | {$INCLUDE 'dzlib.inc'} 4 | 5 | interface 6 | 7 | {$IFNDEF DELPHI2007_UP} 8 | {$IFNDEF NO_DELPHI2007UP_HINT} 9 | {$MESSAGE HINT 'Delphi <2007 not supported'} 10 | {$ENDIF} 11 | {$ELSE} 12 | 13 | uses 14 | SysUtils, 15 | Math, 16 | Variants, 17 | u_dzTranslator, 18 | u_dzStringUtils, 19 | u_dzVariantUtils, 20 | u_dzConvertUtils, 21 | u_dzNullableTypesUtils; 22 | 23 | {$DEFINE __DZ_NULLABLE_NUMBER_TEMPLATE__} 24 | type 25 | _NULLABLE_TYPE_BASE_ = Integer; 26 | const 27 | _NULLABLE_TYPE_NAME_ = 'TNullableInteger'; 28 | {$INCLUDE 't_NullableNumber.tpl'} 29 | 30 | type 31 | TNullableInteger = _NULLABLE_NUMBER_; 32 | TdzNullableInteger = TNullableInteger deprecated; 33 | 34 | {$ENDIF DELPHI2007_UP} 35 | 36 | implementation 37 | 38 | {$IFDEF DELPHI2007_UP} 39 | 40 | {$INCLUDE 't_NullableNumber.tpl'} 41 | 42 | {$ENDIF DELPHI2007_UP} 43 | 44 | end. 45 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzNullableSingle.pas: -------------------------------------------------------------------------------- 1 | unit u_dzNullableSingle; 2 | 3 | {$INCLUDE 'dzlib.inc'} 4 | 5 | interface 6 | 7 | {$IFNDEF DELPHI2007_UP} 8 | {$IFNDEF NO_DELPHI2007UP_HINT} 9 | {$MESSAGE HINT 'Delphi <2007 not supported'} 10 | {$ENDIF} 11 | {$ELSE} 12 | 13 | uses 14 | SysUtils, 15 | Math, 16 | Variants, 17 | u_dzTranslator, 18 | u_dzVariantUtils, 19 | u_dzConvertUtils, 20 | u_dzStringUtils, 21 | u_dzNullableTypesUtils; 22 | 23 | {$DEFINE __DZ_NULLABLE_NUMBER_TEMPLATE__} 24 | type 25 | _NULLABLE_TYPE_BASE_ = Single; 26 | const 27 | _NULLABLE_TYPE_NAME_ = 'TNullableSingle'; 28 | 29 | {$INCLUDE 't_NullableNumber.tpl'} 30 | 31 | type 32 | TNullableSingle = _NULLABLE_NUMBER_; 33 | TdzNullableSingle = TNullableSingle deprecated; 34 | 35 | {$ENDIF DELPHI2007_UP} 36 | 37 | implementation 38 | 39 | {$IFDEF DELPHI2007_UP} 40 | 41 | {$INCLUDE 't_NullableNumber.tpl'} 42 | 43 | {$ENDIF DELPHI2007_UP} 44 | 45 | end. 46 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzObjectGuard.pas: -------------------------------------------------------------------------------- 1 | unit u_dzObjectGuard; 2 | 3 | interface 4 | 5 | uses 6 | SysUtils, 7 | Classes; 8 | 9 | type 10 | /// 11 | /// This class is meant to be overridden by descendants that guard a particular 12 | /// object class, e.g. a StringList (see u_dzStringsGuard) 13 | TObjectGuard = class(TInterfacedObject, IInterface) 14 | private 15 | FGuardedObject: TObject; 16 | protected 17 | property GuardedObject: TObject read FGuardedObject; 18 | public 19 | constructor Create(_GuardedObject: TObject); 20 | destructor Destroy; override; 21 | end; 22 | 23 | type 24 | TMultiObjectGuard = class(TObjectGuard) 25 | public 26 | constructor Create(const _ObjArr: array of TObject); 27 | end; 28 | 29 | function GuardObject(_Obj: TObject): IInterface; 30 | function GuardObjects(const _ObjArr: array of TObject): IInterface; 31 | 32 | implementation 33 | 34 | uses 35 | Contnrs; 36 | 37 | function GuardObject(_Obj: TObject): IInterface; 38 | begin 39 | Result := TObjectGuard.Create(_Obj); 40 | end; 41 | 42 | function GuardObjects(const _ObjArr: array of TObject): IInterface; 43 | begin 44 | Result := TMultiObjectGuard.Create(_ObjArr); 45 | end; 46 | 47 | { TObjectGuard } 48 | 49 | constructor TObjectGuard.Create(_GuardedObject: TObject); 50 | begin 51 | inherited Create; 52 | FGuardedObject := _GuardedObject; 53 | end; 54 | 55 | destructor TObjectGuard.Destroy; 56 | begin 57 | FreeAndNil(FGuardedObject); 58 | inherited; 59 | end; 60 | 61 | { TMultiObjectGuard } 62 | 63 | constructor TMultiObjectGuard.Create(const _ObjArr: array of TObject); 64 | var 65 | List: TObjectList; 66 | i: Integer; 67 | begin 68 | List := TObjectList.Create; 69 | inherited Create(List); 70 | for i := Low(_ObjArr) to High(_ObjArr) do 71 | List.Add(_ObjArr[i]); 72 | end; 73 | 74 | end. 75 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzOptionFoundList.pas: -------------------------------------------------------------------------------- 1 | unit u_dzOptionFoundList; 2 | 3 | interface 4 | 5 | uses 6 | SysUtils, 7 | Classes, 8 | u_dzTranslator, 9 | u_dzQuicksort, 10 | u_dzOptionDescList; 11 | 12 | type 13 | TOptionFound = class 14 | private 15 | FOption: TOptionDesc; 16 | FName: string; 17 | FValue: string; 18 | public 19 | constructor Create(_Option: TOptionDesc; const _Name, _Value: string); 20 | function GetPrimaryName: string; 21 | property Name: string read FName; 22 | property Value: string read FValue; 23 | end; 24 | 25 | {$DEFINE __DZ_SORTED_OBJECT_LIST_TEMPLATE__} 26 | type 27 | _LIST_ANCESTOR_ = TObject; 28 | _ITEM_TYPE_ = TOptionFound; 29 | _KEY_TYPE_ = string; 30 | {$INCLUDE 't_dzSortedObjectListTemplate.tpl'} 31 | 32 | type 33 | /// List for storing TOptionFound items sorted by String 34 | TOptionFoundList = class(_DZ_SORTED_OBJECT_LIST_TEMPLATE_) 35 | protected 36 | /// return the key of an item for comparison 37 | function KeyOf(const _Item: TOptionFound): string; override; 38 | /// compare the keys of two items, must return a value 39 | /// < 0 if Key1 < Key2, = 0 if Key1 = Key2 and > 0 if Key1 > Key2 40 | function Compare(const _Key1, _Key2: string): integer; override; 41 | end; 42 | 43 | implementation 44 | 45 | {$INCLUDE 't_dzSortedObjectListTemplate.tpl'} 46 | 47 | function TOptionFoundList.KeyOf(const _Item: TOptionFound): string; 48 | begin 49 | Result := _Item.GetPrimaryName; 50 | end; 51 | 52 | function TOptionFoundList.Compare(const _Key1, _Key2: string): integer; 53 | begin 54 | Result := CompareText(_Key1, _Key2); 55 | end; 56 | 57 | constructor TOptionFound.Create(_Option: TOptionDesc; const _Name, _Value: string); 58 | begin 59 | inherited Create; 60 | FOption := _Option; 61 | FName := _Name; 62 | FValue := _Value; 63 | end; 64 | 65 | function TOptionFound.GetPrimaryName: string; 66 | begin 67 | Result := FOption.PrimaryName; 68 | end; 69 | 70 | end. 71 | 72 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzOptionNameList.pas: -------------------------------------------------------------------------------- 1 | unit u_dzOptionNameList; 2 | 3 | interface 4 | 5 | uses 6 | SysUtils, 7 | Classes, 8 | u_dzQuickSort, 9 | u_dzTranslator, 10 | u_dzOptionDescList; 11 | 12 | type 13 | TOptionName = class 14 | protected 15 | FName: string; 16 | FOptionDesc: TOptionDesc; 17 | public 18 | constructor Create(const _Name: string; _OptionDesc: TOptionDesc); 19 | function GetPrimaryName: string; 20 | property Name: string read FName; 21 | property OptionDesc: TOptionDesc read FOptionDesc; 22 | end; 23 | 24 | {$DEFINE __DZ_SORTED_OBJECT_LIST_TEMPLATE__} 25 | type 26 | _LIST_ANCESTOR_ = TObject; 27 | _ITEM_TYPE_ = TOptionName; 28 | _KEY_TYPE_ = string; 29 | {$INCLUDE 't_dzSortedObjectListTemplate.tpl'} 30 | 31 | type 32 | /// List for storing TOptionName items sorted by string 33 | TOptionNameList = class(_DZ_SORTED_OBJECT_LIST_TEMPLATE_) 34 | protected 35 | /// return the key of an item for comparison 36 | function KeyOf(const _Item: TOptionName): string; override; 37 | /// compare the keys of two items, must return a value 38 | /// < 0 if Key1 < Key2, = 0 if Key1 = Key2 and > 0 if Key1 > Key2 39 | function Compare(const _Key1, _Key2: string): Integer; override; 40 | end; 41 | 42 | implementation 43 | 44 | {$INCLUDE 't_dzSortedObjectListTemplate.tpl'} 45 | 46 | function TOptionNameList.KeyOf(const _Item: TOptionName): string; 47 | begin 48 | Result := _Item.Name; 49 | end; 50 | 51 | function TOptionNameList.Compare(const _Key1, _Key2: string): Integer; 52 | begin 53 | // Note: This compares 1 character options case sensitively ( eg. -A <> -a ) 54 | // but long options case insensitively (e.g. --hallo = --Hallo ) 55 | Result := CompareText(_Key1, _Key2); 56 | if (Result = 0) and (Length(_Key1) = 1) then 57 | Result := CompareStr(_Key1, _Key2); 58 | end; 59 | 60 | constructor TOptionName.Create(const _Name: string; _OptionDesc: TOptionDesc); 61 | begin 62 | inherited Create; 63 | FName := _Name; 64 | FOptionDesc := _OptionDesc; 65 | end; 66 | 67 | function TOptionName.GetPrimaryName: string; 68 | begin 69 | Result := FOptionDesc.PrimaryName; 70 | end; 71 | 72 | end. 73 | 74 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzOsUtils.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/dzlib/src/u_dzOsUtils.pas -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzParamDescList.pas: -------------------------------------------------------------------------------- 1 | unit u_dzParamDescList; 2 | 3 | interface 4 | 5 | uses 6 | Classes; 7 | 8 | type 9 | TParamDesc = class 10 | protected 11 | FName: string; 12 | FDescription: string; 13 | FMinCount: integer; 14 | FMaxCount: integer; 15 | public 16 | constructor Create(const _Name, _Description: string; _MinCount, _MaxCount: integer); 17 | function GetCmdMask: string; 18 | function GetDescription(_Indent: integer): string; 19 | property Name: string read FName; 20 | property Description: string read FDescription; 21 | property MinCount: integer read FMinCount; 22 | property MaxCount: integer read FMaxCount; 23 | end; 24 | 25 | {$DEFINE __DZ_OBJECT_LIST_TEMPLATE__} 26 | type 27 | _LIST_ANCESTOR_ = TObject; 28 | _ITEM_TYPE_ = TParamDesc; 29 | {$INCLUDE 't_dzObjectListTemplate.tpl'} 30 | 31 | type 32 | /// List for storing TParamDesc items 33 | TParamDescList = class(_DZ_OBJECT_LIST_TEMPLATE_) 34 | 35 | end; 36 | 37 | implementation 38 | 39 | uses 40 | StrUtils; 41 | 42 | {$INCLUDE 't_dzObjectListTemplate.tpl'} 43 | 44 | constructor TParamDesc.Create(const _Name, _Description: string; _MinCount, _MaxCount: integer); 45 | begin 46 | inherited Create; 47 | FName := _Name; 48 | FDescription := _Description; 49 | FMinCount := _MinCount; 50 | FMaxCount := _MaxCount; 51 | end; 52 | 53 | function TParamDesc.GetCmdMask: string; 54 | begin 55 | Result := FName; 56 | if FMaxCount > 1 then 57 | Result := Result + '...'; 58 | if FMinCount = 0 then 59 | Result := '[' + Result + ']'; 60 | end; 61 | 62 | function TParamDesc.GetDescription(_Indent: integer): string; 63 | begin 64 | Result := fName + StringOfChar(' ', _Indent - Length(fName) - 3) + ' : ' + fDescription; 65 | end; 66 | 67 | end. 68 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzParamFoundList.pas: -------------------------------------------------------------------------------- 1 | unit u_dzParamFoundList; 2 | 3 | interface 4 | 5 | uses 6 | Classes, 7 | u_dzParamDescList; 8 | 9 | type 10 | TParamFound = class 11 | private 12 | FValue: string; 13 | FParamDesc: TParamDesc; 14 | public 15 | constructor Create(_Paramdesc: TParamDesc; const _Value: string); 16 | property ParamDesc: TParamDesc read FParamDesc; 17 | property Value: string read fValue; 18 | end; 19 | 20 | {$DEFINE __DZ_OBJECT_LIST_TEMPLATE__} 21 | type 22 | _LIST_ANCESTOR_ = TObject; 23 | _ITEM_TYPE_ = TParamFound; 24 | {$INCLUDE 't_dzObjectListTemplate.tpl'} 25 | 26 | type 27 | /// List for storing TParamFound items 28 | TParamFoundList = class(_DZ_OBJECT_LIST_TEMPLATE_) 29 | 30 | end; 31 | 32 | implementation 33 | 34 | {$INCLUDE 't_dzObjectListTemplate.tpl'} 35 | 36 | constructor TParamFound.Create(_Paramdesc: TParamDesc; const _Value: string); 37 | begin 38 | inherited Create; 39 | FParamDesc := _Paramdesc; 40 | FValue := _Value; 41 | end; 42 | 43 | end. 44 | 45 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzPerformanceTiming.pas: -------------------------------------------------------------------------------- 1 | unit u_dzPerformanceTiming; 2 | 3 | interface 4 | 5 | uses 6 | SysUtils, 7 | Classes, 8 | u_dzStopwatch; 9 | 10 | /// 11 | /// for timing that takes the number of calls into account 12 | type 13 | TPerformanceTiming = record 14 | FCallCount: Integer; 15 | FStopwatch: TStopwatch; 16 | procedure Reset; 17 | function GetAverageMS: Integer; 18 | function GetTotalMS: Int64; 19 | function Start: Boolean; inline; 20 | function Stop: Boolean; inline; 21 | end; 22 | 23 | implementation 24 | 25 | { TPerformanceTiming } 26 | 27 | function TPerformanceTiming.GetAverageMS: Integer; 28 | begin 29 | if FCallCount > 0 then 30 | Result := FStopwatch.ElapsedMilliseconds div FCallCount 31 | else 32 | Result := 0; 33 | end; 34 | 35 | function TPerformanceTiming.GetTotalMS: Int64; 36 | begin 37 | Result := FStopwatch.ElapsedMilliseconds; 38 | end; 39 | 40 | procedure TPerformanceTiming.Reset; 41 | begin 42 | FCallCount := 0; 43 | FStopwatch.Reset; 44 | end; 45 | 46 | function TPerformanceTiming.Start: Boolean; 47 | begin 48 | Inc(FCallCount); 49 | FStopwatch.Start; 50 | Result := True; 51 | end; 52 | 53 | function TPerformanceTiming.Stop: Boolean; 54 | begin 55 | FStopwatch.Stop; 56 | Result := True; 57 | end; 58 | 59 | end. 60 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzProgressBarText.pas: -------------------------------------------------------------------------------- 1 | unit u_dzProgressBarText; 2 | 3 | interface 4 | 5 | uses 6 | Windows, 7 | SysUtils, 8 | Classes, 9 | Messages, 10 | Graphics, 11 | ComCtrls; 12 | 13 | type 14 | /// 15 | /// extends TProgressBar with a text (e.g. 'xxx%') 16 | TProgressBarText = class(ComCtrls.TProgressBar) 17 | private 18 | FDC: THandle; 19 | FCanvas: TCanvas; 20 | FText: string; 21 | procedure SetText(const _Value: string); 22 | public 23 | constructor Create(_Owner: TComponent); override; 24 | destructor Destroy; override; 25 | procedure WndProc(var _Msg: TMessage); override; 26 | property Text: string read FText write SetText; 27 | end; 28 | 29 | implementation 30 | 31 | uses 32 | Controls; 33 | 34 | constructor TProgressBarText.Create(_Owner: TComponent); 35 | begin 36 | inherited; 37 | Parent := _Owner as TWinControl; 38 | end; 39 | 40 | destructor TProgressBarText.Destroy; 41 | begin 42 | FreeAndNil(FCanvas); 43 | inherited; 44 | end; 45 | 46 | procedure TProgressBarText.SetText(const _Value: string); 47 | begin 48 | FText := _Value; 49 | Self.Invalidate; 50 | end; 51 | 52 | procedure TProgressBarText.WndProc(var _Msg: TMessage); 53 | var 54 | XPos, YPos: Integer; 55 | begin 56 | inherited; 57 | if _Msg.Msg = WM_NCCREATE then begin 58 | if not Assigned(FCanvas) then 59 | FCanvas := TCanvas.Create; 60 | FDC := GetDC(Self.Handle); 61 | FCanvas.Handle := FDC; 62 | end else if _Msg.Msg = WM_NCDESTROY then begin 63 | if Assigned(FCanvas) then begin 64 | FreeAndNil(FCanvas); 65 | ReleaseDC(0, FDC); 66 | end; 67 | end else if _Msg.Msg = WM_PAINT then begin 68 | if Assigned(FCanvas) then begin 69 | FCanvas.Brush.Style := bsClear; 70 | XPos := Self.Width div 2 - FCanvas.TextWidth(FText) div 2; 71 | YPos := 0; 72 | FCanvas.Font.Color := clBlack; 73 | FCanvas.Font.Style := []; 74 | FCanvas.TextOut(XPos, YPos, FText); 75 | end; 76 | end; 77 | end; 78 | 79 | end. 80 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzSetFocusFix.pas: -------------------------------------------------------------------------------- 1 | /// 2 | /// Patches TWinControl.SetFocus to avoid the "Cannot focus a xxx control" 3 | /// exception. 4 | /// Source: https://stackoverflow.com/a/41017504/49925 5 | unit u_dzSetFocusFix; 6 | 7 | interface 8 | 9 | implementation 10 | 11 | uses 12 | Windows, 13 | SysUtils, 14 | Controls, 15 | Forms; 16 | 17 | type 18 | TWinControlHack = class(TWinControl) 19 | public 20 | procedure SetFocus; override; 21 | end; 22 | 23 | procedure TWinControlHack.SetFocus; 24 | var 25 | Parent: TCustomForm; 26 | begin 27 | if not CanFocus then 28 | Exit; 29 | 30 | Parent := GetParentForm(Self); 31 | if Parent <> nil then 32 | Parent.FocusControl(Self) 33 | else if ParentWindow <> 0 then 34 | Windows.SetFocus(Handle) 35 | else 36 | ValidParentForm(Self); 37 | end; 38 | 39 | procedure RedirectFunction(OrgProc, NewProc: Pointer); 40 | type 41 | TJmpBuffer = packed record 42 | Jmp: Byte; 43 | Offset: Integer; 44 | end; 45 | var 46 | n: UINT_PTR; 47 | JmpBuffer: TJmpBuffer; 48 | begin 49 | JmpBuffer.Jmp := $E9; 50 | JmpBuffer.Offset := NativeInt(NewProc) - (NativeInt(OrgProc) + 5); 51 | 52 | // theoretically this Move should do the same as the WriteProcessMemory call, 53 | // but it results in an Access Violation. 54 | // Move(JmpBuffer, OrgProc^, SizeOf(JmpBuffer)); 55 | if not WriteProcessMemory(GetCurrentProcess, OrgProc, @JmpBuffer, SizeOf(JmpBuffer), n) then 56 | RaiseLastOSError; 57 | end; 58 | 59 | initialization 60 | RedirectFunction(@TWinControl.SetFocus, @TWinControlHack.SetFocus); 61 | 62 | end. 63 | 64 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzShapeFileConsts.pas: -------------------------------------------------------------------------------- 1 | unit u_dzShapeFileConsts; 2 | 3 | interface 4 | 5 | uses 6 | u_dzNullableDouble; 7 | 8 | type 9 | TShapeTypeEnum = ( 10 | stNullShape = 0, 11 | stPoint = 1, 12 | stPolyLine = 3, 13 | stPolygon = 5, 14 | stMultiPoint = 8, 15 | stPointZ = 11, 16 | stPolyLineZ = 13, 17 | stPolygonZ = 15, 18 | stMultiPointZ = 18, 19 | stPointM = 21, 20 | stPolyLineM = 23, 21 | stPolygonM = 25, 22 | stMultiPointM = 28, 23 | stMultiPatch = 31); 24 | 25 | type 26 | PShpPoint = ^TShpPoint; 27 | TShpPoint = packed record 28 | X: Double; 29 | Y: Double; 30 | end; 31 | 32 | implementation 33 | 34 | end. 35 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzShapeFileReader.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/dzlib/src/u_dzShapeFileReader.pas -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzShapeFileWriter.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/dzlib/src/u_dzShapeFileWriter.pas -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzSortedIntegerList.pas: -------------------------------------------------------------------------------- 1 | unit u_dzSortedIntegerList; 2 | 3 | interface 4 | 5 | uses 6 | SysUtils, 7 | Classes, 8 | u_dzTranslator, 9 | u_dzQuicksort, 10 | u_dzList; 11 | 12 | {$DEFINE __DZ_SORTED_LIST_TEMPLATE__} 13 | type 14 | _LIST_ANCESTOR_ = TObject; 15 | _LIST_CONTAINER_ = TdzList; 16 | _LIST_CONTAINER_ITEM_TYPE_ = pointer; 17 | _ITEM_TYPE_ = Integer; 18 | _KEY_TYPE_ = Integer; 19 | {$DEFINE __DZ_SORTED_LIST_TEMPLATE_ITEM_TYPE_IS_INTEGER__} 20 | {$INCLUDE 't_dzSortedListTemplate.tpl'} 21 | 22 | type 23 | {: Sorted list for storing Integer items sorted by Integer } 24 | TSortedIntegerList = class(_DZ_SORTED_LIST_TEMPLATE_) 25 | protected 26 | {: return the key of an item for comparison } 27 | function KeyOf(const _Item: Integer): Integer; override; 28 | {: compare the keys of two items, must return a value 29 | < 0 if Key1 < Key2, = 0 if Key1 = Key2 and > 0 if Key1 > Key2 } 30 | function Compare(const _Key1, _Key2: Integer): integer; override; 31 | {: Frees a Integer } 32 | procedure FreeItem(_Item: Integer); override; 33 | end; 34 | 35 | implementation 36 | 37 | {$INCLUDE 't_dzSortedListTemplate.tpl'} 38 | 39 | function TSortedIntegerList.KeyOf(const _Item: Integer): Integer; 40 | begin 41 | Result := _Item; 42 | end; 43 | 44 | function TSortedIntegerList.Compare(const _Key1, _Key2: Integer): integer; 45 | begin 46 | Result := _Key1 - _Key2; 47 | end; 48 | 49 | procedure TSortedIntegerList.FreeItem(_Item: Integer); 50 | begin 51 | { Integers don't need to be freed } 52 | end; 53 | 54 | end. 55 | 56 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzSortedIntegerListInterfaced.pas: -------------------------------------------------------------------------------- 1 | unit u_dzSortedIntegerListInterfaced; 2 | 3 | interface 4 | 5 | uses 6 | SysUtils, 7 | Classes, 8 | u_dzTranslator, 9 | u_dzQuicksort; 10 | 11 | {$DEFINE __DZ_SORTED_LIST_TEMPLATE__} 12 | type 13 | _LIST_ANCESTOR_ = TInterfacedObject; 14 | _LIST_CONTAINER_ = TList; 15 | _LIST_CONTAINER_ITEM_TYPE_ = pointer; 16 | _ITEM_TYPE_ = Integer; 17 | _KEY_TYPE_ = Integer; 18 | {$DEFINE __DZ_SORTED_LIST_TEMPLATE_ITEM_TYPE_IS_INTEGER__} 19 | {$INCLUDE 't_dzSortedListTemplate.tpl'} 20 | 21 | type 22 | {: Sorted list for storing Integer items sorted by Integer } 23 | TSortedIntegerListInterfaced = class(_DZ_SORTED_LIST_TEMPLATE_) 24 | protected 25 | {: return the key of an item for comparison } 26 | function KeyOf(const _Item: Integer): Integer; override; 27 | {: compare the keys of two items, must return a value 28 | < 0 if Key1 < Key2, = 0 if Key1 = Key2 and > 0 if Key1 > Key2 } 29 | function Compare(const _Key1, _Key2: Integer): integer; override; 30 | {: Frees a Integer } 31 | procedure FreeItem(_Item: Integer); override; 32 | end; 33 | 34 | implementation 35 | 36 | {$INCLUDE 't_dzSortedListTemplate.tpl'} 37 | 38 | function TSortedIntegerListInterfaced.KeyOf(const _Item: Integer): Integer; 39 | begin 40 | Result := _Item; 41 | end; 42 | 43 | function TSortedIntegerListInterfaced.Compare(const _Key1, _Key2: Integer): integer; 44 | begin 45 | Result := _Key1 - _Key2; 46 | end; 47 | 48 | procedure TSortedIntegerListInterfaced.FreeItem(_Item: Integer); 49 | begin 50 | { Integers don't need to be freed } 51 | end; 52 | 53 | end. 54 | 55 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzStatistics.pas: -------------------------------------------------------------------------------- 1 | /// statistical tools 2 | unit u_dzStatistics; 3 | 4 | {$INCLUDE 'dzlib.inc'} 5 | 6 | interface 7 | 8 | uses 9 | SysUtils, 10 | u_dzTranslator, 11 | u_dzRingBuffer, 12 | u_dzTypes; 13 | 14 | type 15 | TMovingAverage = class 16 | private 17 | FCount: Integer; 18 | FSum: Extended; 19 | FMaxCount: Integer; 20 | FQueue: TdzRingQueue; 21 | public 22 | constructor Create(_MaxCount: Integer); 23 | destructor Destroy; override; 24 | procedure Add(_Value: Extended); 25 | function GetAverage: Extended; 26 | property Count: Integer read FCount; 27 | end; 28 | 29 | implementation 30 | 31 | function _(const _s: string): string; 32 | {$IFDEF SUPPORTS_INLINE} inline; 33 | {$ENDIF} 34 | begin 35 | Result := dzDGetText(_s, 'dzlib'); 36 | end; 37 | 38 | { TMovingAverage } 39 | 40 | constructor TMovingAverage.Create(_MaxCount: Integer); 41 | begin 42 | inherited Create; 43 | FSum := 0; 44 | FCount := 0; 45 | FMaxCount := _MaxCount; 46 | FQueue := TdzRingQueue.Create(SizeOf(Extended), FMaxCount); 47 | end; 48 | 49 | destructor TMovingAverage.Destroy; 50 | begin 51 | FreeAndNil(FQueue); 52 | inherited; 53 | end; 54 | 55 | procedure TMovingAverage.Add(_Value: Extended); 56 | var 57 | ValueToRemove: Extended; 58 | begin 59 | if FCount >= FMaxCount then begin 60 | FQueue.ExtractFront(ValueToRemove); 61 | FSum := FSum - ValueToRemove; 62 | end else 63 | Inc(FCount); 64 | FQueue.InsertEnd(_Value); 65 | FSum := FSum + _Value; 66 | end; 67 | 68 | function TMovingAverage.GetAverage: Extended; 69 | begin 70 | if FCount > 0 then 71 | Result := FSum / FCount 72 | else 73 | raise EdzException.Create(_('Cannot calculate moving average on zero elements')); 74 | end; 75 | 76 | end. 77 | 78 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzStringUtils.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Ext/dzlib/src/u_dzStringUtils.pas -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzStringsGuard.pas: -------------------------------------------------------------------------------- 1 | unit u_dzStringsGuard; 2 | 3 | {$INCLUDE 'dzlib.inc'} 4 | 5 | interface 6 | 7 | uses 8 | SysUtils, 9 | {$IFDEF HAS_UNIT_WIDESTRINGS} 10 | WideStrings, 11 | {$ENDIF} 12 | Classes; 13 | 14 | type 15 | IStringsGuard = interface ['{FE9A8BF7-A8CA-4D87-968A-0662C0B20C0A}'] 16 | function List: TStrings; 17 | end; 18 | 19 | function Guard(_List: TStrings): IStringsGuard; overload; 20 | 21 | {$IFDEF HAS_UNIT_WIDESTRINGS} 22 | type 23 | IWideStringsGuard = interface ['{B76D2FE5-9E4A-4B0F-A1D3-4CD94B6C03C6}'] 24 | function List: TWideStrings; 25 | end; 26 | 27 | function Guard(_List: TWideStrings): IWideStringsGuard; overload; 28 | {$ENDIF} 29 | 30 | implementation 31 | 32 | uses 33 | u_dzObjectGuard; 34 | 35 | type 36 | TStringsGuard = class(TObjectGuard, IStringsGuard) 37 | public 38 | function List: TStrings; 39 | end; 40 | 41 | { TStringsGuard } 42 | 43 | function TStringsGuard.List: TStrings; 44 | begin 45 | Result := GuardedObject as TStrings; 46 | end; 47 | 48 | function Guard(_List: TStrings): IStringsGuard; 49 | begin 50 | Result := TStringsGuard.Create(_List); 51 | end; 52 | 53 | {$IFDEF HAS_UNIT_WIDESTRINGS} 54 | type 55 | TWideStringsGuard = class(TObjectGuard, IWideStringsGuard) 56 | public 57 | function List: TWideStrings; 58 | end; 59 | 60 | { TWideStringsGuard } 61 | 62 | function TWideStringsGuard.List: TWideStrings; 63 | begin 64 | Result := GuardedObject as TWideStrings; 65 | end; 66 | 67 | function Guard(_List: TWideStrings): IWideStringsGuard; 68 | begin 69 | Result := TWideStringsGuard.Create(_List); 70 | end; 71 | {$ENDIF} 72 | 73 | end. 74 | 75 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzSystemCritical.pas: -------------------------------------------------------------------------------- 1 | /// 2 | // http://delphidabbler.com/tips/127 3 | // @Author: Shlomo Abuisak 4 | unit u_dzSystemCritical; 5 | 6 | interface 7 | 8 | uses 9 | Windows; 10 | 11 | type 12 | TSystemCritical = class 13 | private 14 | FIsCritical: Boolean; 15 | procedure SetIsCritical(const Value: Boolean); 16 | protected 17 | procedure UpdateCritical(Value: Boolean); virtual; 18 | public 19 | constructor Create; 20 | property IsCritical: Boolean read FIsCritical write SetIsCritical; 21 | end; 22 | 23 | var 24 | SystemCritical: TSystemCritical; 25 | 26 | implementation 27 | 28 | { TSystemCritical } 29 | // REF: http://msdn.microsoft.com/en-us/library/aa373208.aspx 30 | type 31 | EXECUTION_STATE = DWORD; 32 | 33 | const 34 | ES_SYSTEM_REQUIRED = $00000001; 35 | ES_DISPLAY_REQUIRED = $00000002; 36 | ES_USER_PRESENT = $00000004; 37 | ES_AWAYMODE_REQUIRED = $00000040; 38 | ES_CONTINUOUS = $80000000; 39 | 40 | { 41 | SetThreadExecutionState Function 42 | Enables an application to inform the system that it is in use, 43 | thereby preventing the system from entering sleep or turning off the 44 | display while the application is running. 45 | } 46 | 47 | procedure SetThreadExecutionState(ESFlags: EXECUTION_STATE); 48 | stdcall; external kernel32 name 'SetThreadExecutionState'; 49 | 50 | constructor TSystemCritical.Create; 51 | begin 52 | inherited; 53 | FIsCritical := False; 54 | end; 55 | 56 | procedure TSystemCritical.SetIsCritical(const Value: Boolean); 57 | begin 58 | if FIsCritical = Value then 59 | Exit; 60 | FIsCritical := Value; 61 | UpdateCritical(FIsCritical); 62 | end; 63 | 64 | procedure TSystemCritical.UpdateCritical(Value: Boolean); 65 | begin 66 | if Value then 67 | // Prevent the sleep idle time-out and Power off. 68 | SetThreadExecutionState(ES_SYSTEM_REQUIRED or ES_CONTINUOUS) 69 | else 70 | // Clear EXECUTION_STATE flags to disable away mode and allow the 71 | // system to idle to sleep normally. 72 | SetThreadExecutionState(ES_CONTINUOUS); 73 | end; 74 | 75 | initialization 76 | SystemCritical := TSystemCritical.Create; 77 | finalization 78 | SystemCritical.IsCritical := False; 79 | SystemCritical.Free; 80 | end. 81 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzTeeChartUtils.pas: -------------------------------------------------------------------------------- 1 | unit u_dzTeeChartUtils; 2 | 3 | interface 4 | 5 | uses 6 | Classes, 7 | Chart, 8 | TeEngine, 9 | TeeGDIPlus; 10 | 11 | /// 12 | /// Calls BeginUpdate for all series of the chart and returns an interface that 13 | /// calls EndUpdate for them when it goes out of scope. 14 | /// @param Chart is the TChart component to handle 15 | function TChart_BeginUpdate(_Chart: TChart): IInterface; 16 | 17 | /// 18 | /// Creates a TTeeGdiPlus renderer, assigns the chart as its TeePanel sets it Antialias property to false 19 | /// @returns the newly created renderer, can be ignored if not needed otherwise 20 | function TChart_DisableGdiPlusAntialias(_Chart: TChart): TTeeGdiPlus; 21 | 22 | implementation 23 | 24 | type 25 | TChartUpdateInt = class(TInterfacedObject, IInterface) 26 | private 27 | FChart: TChart; 28 | public 29 | constructor Create(_Chart: TChart); 30 | destructor Destroy; override; 31 | end; 32 | 33 | { TChartUpdateInt } 34 | 35 | constructor TChartUpdateInt.Create(_Chart: TChart); 36 | var 37 | i: Integer; 38 | begin 39 | inherited Create; 40 | FChart := _Chart; 41 | for i := 0 to FChart.SeriesCount - 1 do begin 42 | FChart.Series[i].BeginUpdate; 43 | end; 44 | end; 45 | 46 | destructor TChartUpdateInt.Destroy; 47 | var 48 | i: Integer; 49 | begin 50 | for i := 0 to FChart.SeriesCount - 1 do begin 51 | FChart.Series[i].EndUpdate; 52 | end; 53 | inherited; 54 | end; 55 | 56 | function TChart_BeginUpdate(_Chart: TChart): IInterface; 57 | begin 58 | Result := TChartUpdateInt.Create(_Chart); 59 | end; 60 | 61 | function TChart_DisableGdiPlusAntialias(_Chart: TChart): TTeeGdiPlus; 62 | begin 63 | Result := TTeeGdiPlus.Create(_Chart); 64 | Result.TeePanel := _Chart; 65 | Result.Antialias := False; 66 | end; 67 | 68 | end. 69 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzTextFile.pas: -------------------------------------------------------------------------------- 1 | unit u_dzTextFile; 2 | 3 | {$INCLUDE 'dzlib.inc'} 4 | 5 | interface 6 | 7 | uses 8 | SysUtils, 9 | u_dzTranslator; 10 | 11 | type 12 | /// defines the file access for TTextFile 13 | TTextFileAccess = (tfaRead, tfaWrite, tfaAppend); 14 | /// a wrapper class for System.TextFile 15 | TTextFile = class 16 | private 17 | FFile: TextFile; 18 | FIsFileOpen: boolean; 19 | FFilename: string; 20 | public 21 | /// Creates a new TTextFile instance with the given filename and file access 22 | constructor Create(const _Filename: string; _Access: TTextFileAccess); overload; 23 | /// Destroys the TTextFile instance and closes the file 24 | destructor Destroy; override; 25 | /// Writes a string to the file 26 | procedure Write(const _s: string); 27 | /// Writes a string followed by CR/LF to the file 28 | procedure WriteLn(const _s: string); 29 | /// Reads from the file up to the next CR/LF and returns the string 30 | function ReadLn: string; 31 | property Filename: string read FFilename; 32 | end; 33 | 34 | implementation 35 | 36 | { TTextFile } 37 | 38 | function _(const _s: string): string; 39 | {$IFDEF SUPPORTS_INLINE}inline; 40 | {$ENDIF} 41 | begin 42 | Result := dzDGetText(_s, 'dzlib'); 43 | end; 44 | 45 | constructor TTextFile.Create(const _Filename: string; _Access: TTextFileAccess); 46 | var 47 | EInOut: EInOutError; 48 | begin 49 | {$I+} 50 | inherited Create; 51 | AssignFile(FFile, _Filename); 52 | try 53 | case _Access of 54 | tfaRead: Reset(FFile); 55 | tfaWrite: Rewrite(FFile); 56 | tfaAppend: Append(FFile); 57 | else 58 | raise Exception.CreateFmt(_('Invalid file access value (%d)'), [Ord(_Access)]); 59 | end; 60 | except 61 | on e: EInOutError do begin 62 | EInOut := EInOutError.CreateFmt(_('%s accessing file %s'), [e.Message, _Filename]); 63 | EInOut.ErrorCode := e.ErrorCode; 64 | raise EInOut; 65 | end; 66 | end; 67 | FIsFileOpen := true; 68 | end; 69 | 70 | destructor TTextFile.Destroy; 71 | begin 72 | if FIsFileOpen then 73 | Close(FFile); 74 | inherited; 75 | end; 76 | 77 | function TTextFile.ReadLn: string; 78 | begin 79 | System.ReadLn(FFile, Result); 80 | end; 81 | 82 | procedure TTextFile.Write(const _s: string); 83 | begin 84 | System.Write(FFile, _s); 85 | end; 86 | 87 | procedure TTextFile.WriteLn(const _s: string); 88 | begin 89 | System.WriteLn(FFile, _s); 90 | end; 91 | 92 | end. 93 | 94 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzTextTestRunner.pas: -------------------------------------------------------------------------------- 1 | unit u_dzTextTestRunner; 2 | 3 | interface 4 | 5 | uses 6 | DUnitConsts, 7 | TestFramework, 8 | TextTestRunner, 9 | u_dzUnitTestUtils; 10 | 11 | type 12 | /// 13 | /// extends TGUITestRunner so it can display info messages in addition to failures 14 | TdzTextTestListener = class(TTextTestListener, ITestListener) 15 | public 16 | procedure AddFailure(failure: TTestFailure); override; 17 | end; 18 | 19 | function RunRegisteredTests(exitBehavior: TRunnerExitBehavior = rxbContinue): TTestResult; 20 | 21 | implementation 22 | 23 | function RunTest(suite: ITest; exitBehavior: TRunnerExitBehavior = rxbContinue): TTestResult; 24 | begin 25 | Result := TestFramework.RunTest(suite, [TdzTextTestListener.Create]); 26 | case exitBehavior of 27 | rxbPause: 28 | try 29 | writeln(sPressReturn); 30 | readln 31 | except 32 | end; 33 | rxbHaltOnFailures: 34 | with Result do begin 35 | if not WasSuccessful then 36 | System.Halt(ErrorCount + FailureCount); 37 | end 38 | end; 39 | end; 40 | 41 | function RunRegisteredTests(exitBehavior: TRunnerExitBehavior = rxbContinue): TTestResult; 42 | begin 43 | Result := RunTest(registeredTests, exitBehavior); 44 | end; 45 | 46 | { TdzTextTestListener } 47 | 48 | procedure TdzTextTestListener.AddFailure(failure: TTestFailure); 49 | begin 50 | write('I'); 51 | end; 52 | 53 | end. 54 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzTimSortInteger.pas: -------------------------------------------------------------------------------- 1 | {**************************************************************************** 2 | * * 3 | * This code is free software; you can redistribute it and/or modify it * 4 | * under the terms of the Apache License, Version 2.0; * 5 | * You may obtain a copy of the License at * 6 | * http://www.apache.org/licenses/LICENSE-2.0. * 7 | * * 8 | * Unless required by applicable law or agreed to in writing, software * 9 | * distributed under the License is distributed on an "AS IS" BASIS, * 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * 11 | * See the License for the specific language governing permissions and * 12 | * limitations under the License. * 13 | * * 14 | * This Code is based on * 15 | * https://github.com/avk959/LGenerics/blob/master/lgenerics/lgmiscutils.pas * 16 | * but has been heavily modified by me. In particular, I have made it * 17 | * compatible to Delphi 2007 and removed everything not TimSort releated. * 18 | * Note that the current code only sorts integers. * 19 | *****************************************************************************} 20 | unit u_dzTimSortInteger; 21 | 22 | {$I 'dzlib.inc'} 23 | 24 | interface 25 | 26 | uses 27 | Classes, 28 | SysUtils, 29 | Math, 30 | u_dzTypes, 31 | u_dzTimSortUtils; 32 | 33 | {$DEFINE __TIMSORT_TEMPLATE__} 34 | type 35 | _DZ_TIM_SORT_ITEM_ = Integer; 36 | 37 | // in dzlib\templates 38 | {$INCLUDE 't_dzTimSortTemplate.tpl'} 39 | 40 | implementation 41 | 42 | {$INCLUDE 't_dzTimSortTemplate.tpl'} 43 | 44 | procedure TTimSort.MoveItems(_Src, _Dst: Pointer; _Cnt: Integer); 45 | var 46 | src: PItemArray absolute _Src; 47 | dst: PItemArray absolute _Dst; 48 | begin 49 | System.Move(src[0], dst[0], _Cnt * SizeOf(_DZ_TIM_SORT_ITEM_)); 50 | end; 51 | 52 | end. 53 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzTimSortString.pas: -------------------------------------------------------------------------------- 1 | {**************************************************************************** 2 | * * 3 | * This code is free software; you can redistribute it and/or modify it * 4 | * under the terms of the Apache License, Version 2.0; * 5 | * You may obtain a copy of the License at * 6 | * http://www.apache.org/licenses/LICENSE-2.0. * 7 | * * 8 | * Unless required by applicable law or agreed to in writing, software * 9 | * distributed under the License is distributed on an "AS IS" BASIS, * 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * 11 | * See the License for the specific language governing permissions and * 12 | * limitations under the License. * 13 | * * 14 | * This Code is based on * 15 | * https://github.com/avk959/LGenerics/blob/master/lgenerics/lgmiscutils.pas * 16 | * but has been heavily modified by me. In particular, I have made it * 17 | * compatible to Delphi 2007 and removed everything not TimSort releated. * 18 | * Note that the current code only sorts integers. * 19 | *****************************************************************************} 20 | unit u_dzTimSortString; 21 | 22 | {$I 'dzlib.inc'} 23 | 24 | interface 25 | 26 | uses 27 | Classes, 28 | SysUtils, 29 | Math, 30 | u_dzTypes, 31 | u_dzTimSortUtils; 32 | 33 | {$DEFINE __TIMSORT_TEMPLATE__} 34 | type 35 | _DZ_TIM_SORT_ITEM_ = string; 36 | 37 | // in dzlib\templates 38 | {$INCLUDE 't_dzTimSortTemplate.tpl'} 39 | 40 | implementation 41 | 42 | {$INCLUDE 't_dzTimSortTemplate.tpl'} 43 | 44 | procedure TTimSort.MoveItems(_Src, _Dst: Pointer; _Cnt: Integer); 45 | var 46 | src: PItemArray absolute _Src; 47 | dst: PItemArray absolute _Dst; 48 | i: Integer; 49 | begin 50 | if UIntPtr(_Src) < UIntPtr(_Dst) then begin 51 | for i := _Cnt - 1 downto 0 do 52 | dst[i] := src[i]; 53 | end else begin 54 | for i := 0 to _Cnt - 1 do 55 | dst[i] := src[i]; 56 | end; 57 | end; 58 | 59 | end. 60 | 61 | 62 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzTranslatorAdo.pas: -------------------------------------------------------------------------------- 1 | unit u_dzTranslatorAdo; 2 | /// Add this unit to ignore some ADO database properties from translation 3 | 4 | interface 5 | 6 | uses 7 | ADODB, 8 | u_dzTranslator, 9 | u_dzTranslatorDB; 10 | 11 | implementation 12 | 13 | initialization 14 | // ADO components 15 | TP_TryGlobalIgnoreClass(TADOConnection); 16 | TP_GlobalIgnoreClassProperty(TADOQuery, 'CommandText'); 17 | TP_GlobalIgnoreClassProperty(TADOQuery, 'ConnectionString'); 18 | TP_GlobalIgnoreClassProperty(TADOQuery, 'DatasetField'); 19 | TP_GlobalIgnoreClassProperty(TADOQuery, 'Filter'); 20 | TP_GlobalIgnoreClassProperty(TADOQuery, 'IndexFieldNames'); 21 | TP_GlobalIgnoreClassProperty(TADOQuery, 'IndexName'); 22 | TP_GlobalIgnoreClassProperty(TADOQuery, 'MasterFields'); 23 | TP_GlobalIgnoreClassProperty(TADOTable, 'IndexFieldNames'); 24 | TP_GlobalIgnoreClassProperty(TADOTable, 'IndexName'); 25 | TP_GlobalIgnoreClassProperty(TADOTable, 'MasterFields'); 26 | TP_GlobalIgnoreClassProperty(TADOTable, 'TableName'); 27 | TP_GlobalIgnoreClassProperty(TADODataset, 'CommandText'); 28 | TP_GlobalIgnoreClassProperty(TADODataset, 'ConnectionString'); 29 | TP_GlobalIgnoreClassProperty(TADODataset, 'DatasetField'); 30 | TP_GlobalIgnoreClassProperty(TADODataset, 'Filter'); 31 | TP_GlobalIgnoreClassProperty(TADODataset, 'IndexFieldNames'); 32 | TP_GlobalIgnoreClassProperty(TADODataset, 'IndexName'); 33 | TP_GlobalIgnoreClassProperty(TADODataset, 'MasterFields'); 34 | end. 35 | 36 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzTranslatorBDE.pas: -------------------------------------------------------------------------------- 1 | {.GXFormatter.config=twm} 2 | /// Add this unit to ignore some database properties from translation 3 | unit u_dzTranslatorBDE; 4 | 5 | {$INCLUDE 'dzlib.inc'} 6 | 7 | {$IFDEF BDE_IS_DEPRECATED} 8 | {$IFNDEF NO_BDE_HINT} 9 | {$MESSAGE HINT 'The BDE has been deprecated for a long time'} 10 | {$ENDIF} 11 | {$ENDIF} 12 | 13 | interface 14 | 15 | {$IFNDEF BDE_IS_DEPRECATED} 16 | uses 17 | SysUtils, 18 | Classes; 19 | {$ENDIF ~BDE_IS_DEPRECATED} 20 | 21 | implementation 22 | 23 | {$IFNDEF BDE_IS_DEPRECATED} 24 | uses 25 | DB, 26 | DBTables, 27 | DBCtrls, 28 | u_dzTranslator, 29 | u_dzTranslatorDB; 30 | 31 | initialization 32 | 33 | // Database Controls 34 | TP_GlobalIgnoreClassProperty(TDBComboBox, 'DataField'); 35 | TP_GlobalIgnoreClassProperty(TDBCheckBox, 'DataField'); 36 | TP_GlobalIgnoreClassProperty(TDBEdit, 'DataField'); 37 | TP_GlobalIgnoreClassProperty(TDBImage, 'DataField'); 38 | TP_GlobalIgnoreClassProperty(TDBListBox, 'DataField'); 39 | TP_GlobalIgnoreClassProperty(TDBLookupControl, 'DataField'); 40 | TP_GlobalIgnoreClassProperty(TDBLookupControl, 'KeyField'); 41 | TP_GlobalIgnoreClassProperty(TDBLookupControl, 'ListField'); 42 | TP_GlobalIgnoreClassProperty(TDBMemo, 'DataField'); 43 | TP_GlobalIgnoreClassProperty(TDBRadioGroup, 'DataField'); 44 | TP_GlobalIgnoreClassProperty(TDBRichEdit, 'DataField'); 45 | TP_GlobalIgnoreClassProperty(TDBText, 'DataField'); 46 | 47 | // Borland Database Engine (BDE) 48 | TP_TryGlobalIgnoreClass(TSession); 49 | TP_TryGlobalIgnoreClass(TDatabase); 50 | {$ENDIF ~BDE_IS_DEPRECATED} 51 | end. 52 | 53 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzTranslatorDb.pas: -------------------------------------------------------------------------------- 1 | {.GXFormatter.config=twm} 2 | /// Add this unit to ignore some database properties from translation 3 | unit u_dzTranslatorDb; 4 | 5 | interface 6 | 7 | uses 8 | SysUtils, 9 | Classes; 10 | 11 | implementation 12 | 13 | uses 14 | DB, 15 | u_dzTranslator; 16 | 17 | initialization 18 | 19 | // Ignore Database properties 20 | TP_GlobalIgnoreClassProperty(TField, 'DefaultExpression'); 21 | TP_GlobalIgnoreClassProperty(TField, 'FieldName'); 22 | TP_GlobalIgnoreClassProperty(TField, 'KeyFields'); 23 | TP_GlobalIgnoreClassProperty(TField, 'DisplayName'); 24 | TP_GlobalIgnoreClassProperty(TField, 'LookupKeyFields'); 25 | TP_GlobalIgnoreClassProperty(TField, 'LookupResultField'); 26 | TP_GlobalIgnoreClassProperty(TField, 'Origin'); 27 | TP_TryGlobalIgnoreClass(TParam); 28 | 29 | end. 30 | 31 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzTranslatorFastReport.pas: -------------------------------------------------------------------------------- 1 | {.GXFormatter.config=twm} 2 | /// Add this unit to ignore some FastReport properties from translation 3 | unit u_dzTranslatorFastReport; 4 | 5 | interface 6 | 7 | uses 8 | SysUtils, 9 | Classes; 10 | 11 | implementation 12 | 13 | uses 14 | frxClass, 15 | u_dzTranslator; 16 | 17 | initialization 18 | 19 | // Ignore FastReport properties 20 | // TP_GlobalIgnoreClassProperty(TField, 'Origin'); 21 | 22 | // Ignore FastReport classes 23 | TP_TryGlobalIgnoreClass(TfrxReport); 24 | TP_TryGlobalIgnoreClass(TfrxUserDataSet); 25 | 26 | end. 27 | 28 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzTranslatorJVCL.pas: -------------------------------------------------------------------------------- 1 | {.GXFormatter.config=twm} 2 | /// Add this unit to ignore some JVCL classes and properties from translation 3 | unit u_dzTranslatorJVCL; 4 | 5 | interface 6 | 7 | uses 8 | SysUtils, 9 | Classes; 10 | 11 | implementation 12 | 13 | uses 14 | u_dzTranslator, 15 | JvFormPlacement; // SIG: Wenn hier ein Compile-Error kommt, cond. Define no_jvcl ins Projekt schreiben 16 | 17 | initialization 18 | 19 | // Ignore TFormStorage properties 20 | TP_TryGlobalIgnoreClass(TJvFormStorage); 21 | end. 22 | 23 | -------------------------------------------------------------------------------- /Ext/dzlib/src/u_dzTranslatorReportBuilder.pas: -------------------------------------------------------------------------------- 1 | unit u_dzTranslatorReportBuilder; 2 | 3 | interface 4 | 5 | implementation 6 | 7 | uses 8 | { TODO -otwm : todo: add report builder units for these classes } 9 | u_dzTranslator; 10 | 11 | initialization 12 | { TODO -otwm -ccheck : This should not always be called because it links in all ReportBuilder units. } 13 | // Report-Builder Components / Properties to ignore 14 | TP_GlobalIgnoreClassProperty(TppField, 'FieldAlias'); 15 | TP_GlobalIgnoreClassProperty(TppField, 'FieldName'); 16 | TP_GlobalIgnoreClassProperty(TppField, 'DisplayFormat'); 17 | TP_GlobalIgnoreClassProperty(TppField, 'SortExpression'); 18 | TP_GlobalIgnoreClassProperty(TppField, 'TableAlias'); 19 | TP_GlobalIgnoreClassProperty(TppField, 'TableName'); 20 | TP_GlobalIgnoreClassProperty(TppBackgroundPrintSettings, 'BinName'); 21 | TP_GlobalIgnoreClassProperty(TppBackgroundPrintSettings, 'PrinterName'); 22 | TP_GlobalIgnoreClassProperty(TppBackgroundPrintSettings, 'PaperName'); 23 | 24 | TP_GlobalIgnoreClassProperty(TppChildReport, 'DeviceType'); 25 | TP_GlobalIgnoreClassProperty(TppChildReport, 'Version'); 26 | 27 | TP_GlobalIgnoreClassProperty(TPsRBExportComponent, 'Version'); 28 | end. 29 | 30 | -------------------------------------------------------------------------------- /Help/MarkDown Support Test.md: -------------------------------------------------------------------------------- 1 | Markdown support test 2 | ===================== 3 | 4 | ![Markdown logo](markdownlogo.png) 5 | 6 | This page is a small demonstration of Markdown support. 7 | 8 | 9 | 10 | Referenced link: From [CommonMark]: 11 | >Markdown is a plain text format for writing structured documents, 12 | >based on conventions for indicating formatting in email and Usenet posts. 13 | >It was developed by John Gruber (with help from Aaron Swartz) 14 | >and released in 2004 in the form of a syntax description and a 15 | >Perl script (Markdown.pl) for converting Markdown to HTML. 16 | >In the next decade, dozens of implementations were developed in many languages. 17 | 18 | [CommonMark]:http://spec.commonmark.org/0.28/ 19 | 20 | # heading 1 21 | ## heading 2 22 | ### heading 3 23 | 24 | *Italic* or _Italic_ 25 | 26 | **Bold** or __Bold__ 27 | 28 | `` 29 | 30 | ~~Strike~~ 31 | 32 | ++Underline++ 33 | 34 | Subscript text 35 | 36 | Superscript text 37 | 38 | ==Mark== 39 | 40 | ```Delphi 41 | procedure HelloWorld; 42 | begin 43 | ShowMessage('Hello World'); 44 | end; 45 | ``` 46 | * Unordered List one 47 | * Unordered List two 48 | * Unordered List three 49 | 50 | 1. Ordered List one 51 | 1. Ordered List two 52 | 1. Ordered List three 53 | 54 | > Block quote 55 | 56 | --- 57 | ### Horizontal rule 58 | 59 | ## Tables 60 | 61 | | First Header | Second Header | Third Header | 62 | | :----------- | :-----------: | -----------: | 63 | | Left | Center | Right | 64 | | Second row | **strong** | *italic* | 65 | 66 | ## Formulas 67 | 68 | It is possible to use the [Google Chart API] using `TeX` language, 69 | but the translated formula can only to be seen using a browser, 70 | for insert a formula using `TeX` enclose the code between `$` 71 | without `spaces`: 72 | 73 | Quadratic formula |Zeta formula 74 | ---------------------------|----------------------------- 75 | $x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$ | $\zeta(s)=\sum_{n=1}^\infty\frac{1}{n^s}$ 76 | 77 | [Google Chart API]:https://developers.google.com/chart/infographics/docs/formulas 78 | -------------------------------------------------------------------------------- /Help/markdownlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Help/markdownlogo.png -------------------------------------------------------------------------------- /Icons/blockquote.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Icons/bold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Icons/code.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Icons/header1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Icons/header2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Icons/header3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Icons/help.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Icons/horizontal_rule.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Icons/image.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Icons/italic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Icons/link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Icons/logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Icons/logo.ico -------------------------------------------------------------------------------- /Icons/marker.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Icons/md1.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 38 | 40 | 41 | 43 | image/svg+xml 44 | 46 | 47 | 48 | 49 | 50 | 56 | 57 | -------------------------------------------------------------------------------- /Icons/mdfolder_multires.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Icons/mdfolder_multires.ico -------------------------------------------------------------------------------- /Icons/ordered_list.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Icons/setup.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Icons/setup.ico -------------------------------------------------------------------------------- /Icons/strike.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Icons/subscript.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Icons/superscript.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Icons/table.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Icons/underline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Icons/unordered_list.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Images/About.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/About.png -------------------------------------------------------------------------------- /Images/InsertImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/InsertImage.png -------------------------------------------------------------------------------- /Images/MDBanner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/MDBanner.png -------------------------------------------------------------------------------- /Images/MDTextEditorBanner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/MDTextEditorBanner.jpg -------------------------------------------------------------------------------- /Images/MDTextEditorDark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/MDTextEditorDark.png -------------------------------------------------------------------------------- /Images/MDTextEditorLight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/MDTextEditorLight.png -------------------------------------------------------------------------------- /Images/PreviewPanelDark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/PreviewPanelDark.png -------------------------------------------------------------------------------- /Images/Setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/Setup.png -------------------------------------------------------------------------------- /Images/blockquote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/blockquote.png -------------------------------------------------------------------------------- /Images/bold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/bold.png -------------------------------------------------------------------------------- /Images/code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/code.png -------------------------------------------------------------------------------- /Images/header1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/header1.png -------------------------------------------------------------------------------- /Images/header2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/header2.png -------------------------------------------------------------------------------- /Images/header3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/header3.png -------------------------------------------------------------------------------- /Images/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/help.png -------------------------------------------------------------------------------- /Images/horizontal_rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/horizontal_rule.png -------------------------------------------------------------------------------- /Images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/image.png -------------------------------------------------------------------------------- /Images/italic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/italic.png -------------------------------------------------------------------------------- /Images/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/link.png -------------------------------------------------------------------------------- /Images/marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/marker.png -------------------------------------------------------------------------------- /Images/ordered_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/ordered_list.png -------------------------------------------------------------------------------- /Images/strike.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/strike.png -------------------------------------------------------------------------------- /Images/subscript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/subscript.png -------------------------------------------------------------------------------- /Images/superscript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/superscript.png -------------------------------------------------------------------------------- /Images/table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/table.png -------------------------------------------------------------------------------- /Images/underline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/underline.png -------------------------------------------------------------------------------- /Images/unordered_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Images/unordered_list.png -------------------------------------------------------------------------------- /Setup/MDShellExtensions.iss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Setup/MDShellExtensions.iss -------------------------------------------------------------------------------- /Setup/Settings.ini: -------------------------------------------------------------------------------- 1 | [Global] 2 | FontSize=14 3 | FontName=Consolas 4 | StyleName=Windows10 5 | SplitterPos=50 6 | PreferD2D=0 -------------------------------------------------------------------------------- /Setup/SupportingDelphi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Setup/SupportingDelphi.jpg -------------------------------------------------------------------------------- /Setup/WizEtheaImage.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Setup/WizEtheaImage.bmp -------------------------------------------------------------------------------- /Setup/WizEtheaSmallImage.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Setup/WizEtheaSmallImage.bmp -------------------------------------------------------------------------------- /Setup/WizEtheaSmallImage110x106.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Setup/WizEtheaSmallImage110x106.bmp -------------------------------------------------------------------------------- /Setup/WizEtheaSmallImage119x123.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Setup/WizEtheaSmallImage119x123.bmp -------------------------------------------------------------------------------- /Setup/WizEtheaSmallImage138x140.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Setup/WizEtheaSmallImage138x140.bmp -------------------------------------------------------------------------------- /Setup/WizEtheaSmallImage64x68.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Setup/WizEtheaSmallImage64x68.bmp -------------------------------------------------------------------------------- /Setup/WizEtheaSmallImage83x80.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Setup/WizEtheaSmallImage83x80.bmp -------------------------------------------------------------------------------- /Setup/WizEtheaSmallImage92x97.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Setup/WizEtheaSmallImage92x97.bmp -------------------------------------------------------------------------------- /Source/ChildForm.dfm: -------------------------------------------------------------------------------- 1 | object MDIChildForm: TMDIChildForm 2 | Left = 197 3 | Top = 117 4 | Caption = 'MDI Child' 5 | ClientHeight = 0 6 | ClientWidth = 120 7 | Color = clAppWorkSpace 8 | ParentFont = True 9 | FormStyle = fsMDIChild 10 | Position = poDefault 11 | WindowState = wsMaximized 12 | TextHeight = 15 13 | end 14 | -------------------------------------------------------------------------------- /Source/EtheaMultires.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Source/EtheaMultires.ico -------------------------------------------------------------------------------- /Source/MDShellEx.Splash.dfm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Source/MDShellEx.Splash.dfm -------------------------------------------------------------------------------- /Source/MDShellExtensions.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Source/MDShellExtensions.res -------------------------------------------------------------------------------- /Source/MDShellExtensions32.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Source/MDShellExtensions32.res -------------------------------------------------------------------------------- /Source/MDShellExtensionsGroup.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {6fa3e40b-d28a-4b62-8ec1-c541dc6e3433} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | Default.Personality.12 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 | -------------------------------------------------------------------------------- /Source/MDTextEditor.dpr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Source/MDTextEditor.dpr -------------------------------------------------------------------------------- /Source/MDTextEditor.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EtheaDev/MarkdownShellExtensions/f56c2a8cf60fb6a4bc180eba797f5a23a67cc414/Source/MDTextEditor.res -------------------------------------------------------------------------------- /Source/dlgConfirmReplace.dfm: -------------------------------------------------------------------------------- 1 | object ConfirmReplaceDialog: TConfirmReplaceDialog 2 | Left = 176 3 | Top = 158 4 | BorderStyle = bsDialog 5 | Caption = 'Confirm replace' 6 | ClientHeight = 98 7 | ClientWidth = 328 8 | Color = clBtnFace 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -12 12 | Font.Name = 'Segoe UI' 13 | Font.Style = [] 14 | OldCreateOrder = False 15 | OnCreate = FormCreate 16 | OnDestroy = FormDestroy 17 | PixelsPerInch = 96 18 | TextHeight = 15 19 | object lblConfirmation: TLabel 20 | Left = 60 21 | Top = 12 22 | Width = 261 23 | Height = 44 24 | AutoSize = False 25 | WordWrap = True 26 | end 27 | object Image: TImage 28 | Left = 16 29 | Top = 16 30 | Width = 32 31 | Height = 32 32 | end 33 | object btnReplace: TButton 34 | Left = 8 35 | Top = 67 36 | Width = 75 37 | Height = 23 38 | Caption = '&Yes' 39 | Default = True 40 | ModalResult = 6 41 | TabOrder = 0 42 | end 43 | object btnSkip: TButton 44 | Left = 87 45 | Top = 67 46 | Width = 75 47 | Height = 23 48 | Caption = '&No' 49 | ModalResult = 7 50 | TabOrder = 1 51 | end 52 | object btnCancel: TButton 53 | Left = 166 54 | Top = 67 55 | Width = 75 56 | Height = 23 57 | Cancel = True 58 | Caption = 'Cancel' 59 | ModalResult = 2 60 | TabOrder = 2 61 | end 62 | object btnReplaceAll: TButton 63 | Left = 245 64 | Top = 67 65 | Width = 75 66 | Height = 23 67 | Caption = 'Yes to &all' 68 | ModalResult = 10 69 | TabOrder = 3 70 | end 71 | end 72 | -------------------------------------------------------------------------------- /Source/dlgReplaceText.dfm: -------------------------------------------------------------------------------- 1 | inherited TextReplaceDialog: TTextReplaceDialog 2 | Caption = 'Replace text' 3 | ClientHeight = 206 4 | StyleElements = [seFont, seClient, seBorder] 5 | ExplicitHeight = 245 6 | TextHeight = 13 7 | object ReplaceWidthLabel: TLabel [0] 8 | Left = 8 9 | Top = 41 10 | Width = 82 11 | Height = 13 12 | Alignment = taRightJustify 13 | AutoSize = False 14 | Caption = '&Replace with:' 15 | end 16 | inherited SearchForLabel: TLabel 17 | StyleElements = [seFont, seClient, seBorder] 18 | end 19 | inherited cbSearchText: TComboBox 20 | StyleElements = [seFont, seClient, seBorder] 21 | end 22 | inherited FSearchOptions: TGroupBox 23 | Top = 70 24 | TabOrder = 2 25 | ExplicitTop = 70 26 | end 27 | inherited FSearchDirection: TRadioGroup 28 | Top = 70 29 | TabOrder = 3 30 | ExplicitTop = 70 31 | end 32 | inherited btnOK: TButton 33 | Top = 174 34 | TabOrder = 4 35 | ExplicitTop = 174 36 | end 37 | object cbReplaceText: TComboBox [6] 38 | Left = 96 39 | Top = 37 40 | Width = 228 41 | Height = 21 42 | TabOrder = 1 43 | end 44 | inherited btnCancel: TButton 45 | Top = 174 46 | TabOrder = 5 47 | ExplicitTop = 174 48 | end 49 | end 50 | -------------------------------------------------------------------------------- /Source/uCommonPreviewHandler.pas: -------------------------------------------------------------------------------- 1 | // ************************************************************************************************** 2 | // 3 | // Unit uCommonPreviewHandler 4 | // unit for the Delphi Preview Handler https://github.com/RRUZ/delphi-preview-handler 5 | // 6 | // The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); 7 | // you may not use this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.mozilla.org/MPL/ 9 | // 10 | // Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 11 | // ANY KIND, either express or implied. See the License for the specific language governing rights 12 | // and limitations under the License. 13 | // 14 | // The Original Code is uCommonPreviewHandler.pas. 15 | // 16 | // The Initial Developer of the Original Code is Rodrigo Ruz V. 17 | // Portions created by Rodrigo Ruz V. are Copyright (C) 2011-2021 Rodrigo Ruz V. 18 | // All Rights Reserved. 19 | // 20 | // ************************************************************************************************* 21 | unit uCommonPreviewHandler; 22 | 23 | interface 24 | 25 | {.$DEFINE USE_TStreamPreviewHandler} 26 | 27 | uses 28 | Classes, 29 | Controls, 30 | StdCtrls, 31 | SysUtils, 32 | MDShellEx.PreviewForm, 33 | {$IFDEF USE_TStreamPreviewHandler} 34 | uStreamAdapter, 35 | uStreamPreviewHandler, 36 | {$ELSE} 37 | uFilePreviewHandler, 38 | {$ENDIF} 39 | uPreviewHandler; 40 | 41 | type 42 | {$IFDEF USE_TStreamPreviewHandler} 43 | TBasePreviewHandler = class(TStreamPreviewHandler) 44 | {$ELSE} 45 | TBasePreviewHandler = class(TFilePreviewHandler) 46 | {$ENDIF} 47 | end; 48 | 49 | implementation 50 | 51 | end. 52 | -------------------------------------------------------------------------------- /Source/uPreviewContainer.dfm: -------------------------------------------------------------------------------- 1 | object PreviewContainer: TPreviewContainer 2 | Left = 753 3 | Top = 443 4 | ClientHeight = 273 5 | ClientWidth = 296 6 | Color = clBtnFace 7 | Font.Charset = DEFAULT_CHARSET 8 | Font.Color = clWindowText 9 | Font.Height = -11 10 | Font.Name = 'Tahoma' 11 | Font.Style = [] 12 | OnCreate = FormCreate 13 | OnDestroy = FormDestroy 14 | TextHeight = 13 15 | end 16 | -------------------------------------------------------------------------------- /Source/uStackTrace.pas: -------------------------------------------------------------------------------- 1 | // ************************************************************************************************** 2 | // 3 | // Unit uStackTrace 4 | // unit for the Delphi Preview Handler https://github.com/RRUZ/delphi-preview-handler 5 | // 6 | // The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); 7 | // you may not use this file except in compliance with the License. You may obtain a copy of the 8 | // License at http://www.mozilla.org/MPL/ 9 | // 10 | // Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 11 | // ANY KIND, either express or implied. See the License for the specific language governing rights 12 | // and limitations under the License. 13 | // 14 | // The Original Code is uStackTrace.pas. 15 | // 16 | // The Initial Developer of the Original Code is Rodrigo Ruz V. 17 | // Portions created by Rodrigo Ruz V. are Copyright (C) 2011-2021 Rodrigo Ruz V. 18 | // All Rights Reserved. 19 | // 20 | // ************************************************************************************************* 21 | 22 | unit uStackTrace; 23 | 24 | interface 25 | 26 | uses 27 | SysUtils, Classes, JclDebug; 28 | 29 | implementation 30 | 31 | function GetExceptionStackInfoProc(P: PExceptionRecord): Pointer; 32 | begin 33 | Result := TJclStackInfoList.Create(False, 0, nil); 34 | end; 35 | 36 | function GetStackInfoStringProc(Info: Pointer): string; 37 | var 38 | StackInfoList: TJclStackInfoList; 39 | List: TStringList; 40 | begin 41 | if Info = nil then 42 | Exit; 43 | List := TStringList.Create; 44 | try 45 | StackInfoList := TJclStackInfoList(Info); 46 | StackInfoList.AddToStrings(List); 47 | Result := List.Text; 48 | finally 49 | List.Free; 50 | end; 51 | end; 52 | 53 | procedure CleanUpStackInfoProc(Info: Pointer); 54 | begin 55 | FreeAndNil(TJclStackInfoList(Info)); 56 | end; 57 | 58 | initialization 59 | 60 | if JclStartExceptionTracking then 61 | begin 62 | Exception.GetExceptionStackInfoProc := GetExceptionStackInfoProc; 63 | Exception.GetStackInfoStringProc := GetStackInfoStringProc; 64 | Exception.CleanUpStackInfoProc := CleanUpStackInfoProc; 65 | end; 66 | 67 | finalization 68 | 69 | if JclExceptionTrackingActive then 70 | begin 71 | Exception.GetExceptionStackInfoProc := nil; 72 | Exception.GetStackInfoStringProc := nil; 73 | Exception.CleanUpStackInfoProc := nil; 74 | JclStopExceptionTracking; 75 | end; 76 | 77 | end. 78 | -------------------------------------------------------------------------------- /Unregister_Register.cmd: -------------------------------------------------------------------------------- 1 | echo Unregister dll 2 | call D:\ETHEA\MarkdownShellExtensions\Bin32\UnRegister32bit.bat 3 | call D:\ETHEA\MarkdownShellExtensions\Bin64\UnRegister64bit.bat 4 | 5 | echo Register dll 6 | call D:\ETHEA\MarkdownShellExtensions\Bin32\Register32bit.bat 7 | call D:\ETHEA\MarkdownShellExtensions\Bin64\Register64bit.bat 8 | 9 | pause --------------------------------------------------------------------------------