You've already forked lazarus-ccr
jvcllaz: Add folder "design" forgotten in previous commit
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5393 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
711
components/jvcllaz/design/JvDsgnConsts.pas
Normal file
711
components/jvcllaz/design/JvDsgnConsts.pas
Normal file
@ -0,0 +1,711 @@
|
|||||||
|
{-----------------------------------------------------------------------------
|
||||||
|
The contents of this file are subject to the Mozilla Public License
|
||||||
|
Version 1.1 (the "License"); you may not use this file except in compliance
|
||||||
|
with the License. You may obtain a copy of the License at
|
||||||
|
http://www.mozilla.org/MPL/MPL-1.1.html
|
||||||
|
|
||||||
|
Software distributed under the License is distributed on an "AS IS" basis,
|
||||||
|
WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for
|
||||||
|
the specific language governing rights and limitations under the License.
|
||||||
|
|
||||||
|
The Original Code is: JvDsgnConsts.pas, released on 2003-6-27.
|
||||||
|
|
||||||
|
The Initial Developers of the Original Code is Marcel Bestebroer
|
||||||
|
Portions created by Marcel Bestebroer are Copyright (C) 2002 - 2003 Project JEDI
|
||||||
|
All Rights Reserved.
|
||||||
|
|
||||||
|
Contributor(s): -
|
||||||
|
|
||||||
|
You may retrieve the latest version of this file at the Project JEDI's JVCL home page,
|
||||||
|
located at http://jvcl.delphi-jedi.org
|
||||||
|
|
||||||
|
Known Issues:
|
||||||
|
-----------------------------------------------------------------------------}
|
||||||
|
// $Id$
|
||||||
|
|
||||||
|
unit JvDsgnConsts;
|
||||||
|
|
||||||
|
//{.$I jvcl.inc}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
{uses
|
||||||
|
JvConsts;}
|
||||||
|
|
||||||
|
//=== strings used by several editors ========================================
|
||||||
|
resourcestring
|
||||||
|
RsPreviewEllipsis = 'Preview...';
|
||||||
|
RsDesignerEllipsis = 'Designer...';
|
||||||
|
RsItemsEditorEllipsis = 'Items Editor...';
|
||||||
|
RsNone = '(none)';
|
||||||
|
RsHelp = 'Help';
|
||||||
|
RsConfirm = 'Confirm?';
|
||||||
|
{$IFDEF MSWINDOWS}
|
||||||
|
RsAllFilesFilter = 'All Files (*.*)|*.*';
|
||||||
|
{$ENDIF MSWINDOWS}
|
||||||
|
{$IFDEF UNIX}
|
||||||
|
RsAllFilesFilter = 'All Files (*)|*';
|
||||||
|
{$ENDIF UNIX}
|
||||||
|
RsNextPage = 'Next Page';
|
||||||
|
RsPreviousPage = 'Previous Page';
|
||||||
|
RsJVCLActionsCategory = 'JVCL';
|
||||||
|
RsJVCLEditActionsCategory = 'JVCL Edit';
|
||||||
|
RsJVCLControlActionsCategory = 'JVCL Control';
|
||||||
|
RsJVCLDBActionsCategory = 'JVCL DB';
|
||||||
|
RsPropertyEditors = '\Property Editors';
|
||||||
|
RsJvEditorString = 'Click to edit...';
|
||||||
|
RsSystemColors = 'System colors';
|
||||||
|
RsStandardColors = 'Standard colors';
|
||||||
|
|
||||||
|
RsEInvalidPropertyValue = 'Invalid property value';
|
||||||
|
|
||||||
|
//=== JVCL IDE palettes ======================================================
|
||||||
|
resourcestring
|
||||||
|
RsPaletteSystem = 'Jv System';
|
||||||
|
RsPaletteDialog = 'Jv Dialogs';
|
||||||
|
RsPaletteButton = 'Jv Buttons';
|
||||||
|
RsPaletteEdit = 'Jv Edits';
|
||||||
|
RsPaletteCustom = 'Jv Custom';
|
||||||
|
RsPaletteBarPanel = 'Jv Bars, Panels';
|
||||||
|
RsPaletteLabel = 'Jv Labels';
|
||||||
|
RsPaletteListComboTree = 'Jv Lists, Combos, Trees';
|
||||||
|
RsPaletteScrollerTracker = 'Jv Scrollers';
|
||||||
|
RsPaletteSliderSplitter = 'Jv Trackers, Sliders, Splitters';
|
||||||
|
RsPaletteImageAnimator = 'Jv Images, Animators';
|
||||||
|
RsPaletteVisual = 'Jv Visual';
|
||||||
|
RsPaletteNonVisual = 'Jv Non-Visual';
|
||||||
|
RsPaletteThreading = 'Jv Threading';
|
||||||
|
RsPalettePersistence = 'Jv Persistence';
|
||||||
|
RsPaletteAppForm = 'Jv Application, Forms';
|
||||||
|
RsPaletteInterNetWork = 'Jv Internet, Network';
|
||||||
|
RsPaletteEncryptCompress = 'Jv Encrypt, Compress';
|
||||||
|
RsPaletteDBVisual = 'Jv Data Controls';
|
||||||
|
RsPaletteDBNonVisual = 'Jv Data Access';
|
||||||
|
RsPaletteHMIComponents = 'Jv HMI';
|
||||||
|
RsPaletteBDE = 'Jv BDE';
|
||||||
|
RsPalettePrintPreview = 'Jv Print Preview';
|
||||||
|
RsPaletteInterpreter = 'Jv Interpreter';
|
||||||
|
RsPaletteGlobusComponents1 = 'JVCL Globus 1';
|
||||||
|
RsPaletteGlobusComponents2 = 'JVCL Globus 2';
|
||||||
|
RsPaletteValidators = 'Jv Validators';
|
||||||
|
RsPaletteEDI = 'Jv EDI';
|
||||||
|
RsPaletteJans = 'Jv Jans';
|
||||||
|
RsPaletteJansSim = 'Jv Jans SIM';
|
||||||
|
RsPaletteJansCsv = 'Jv Jans CSV';
|
||||||
|
RsPalettePlugin = 'Jv Plugin';
|
||||||
|
RsPaletteNavPane = 'Jv NavPane';
|
||||||
|
RsPaletteRuntimeDesign = 'Jv Runtime Design';
|
||||||
|
RsPaletteMTThreads = 'Jv Threading';
|
||||||
|
RsPaletteTimeFramework = 'Jv TimeFrameWork';
|
||||||
|
RsPaletteWizard = 'Jv Wizard';
|
||||||
|
RsPaletteXPControls = 'Jv XP Controls';
|
||||||
|
RsPaletteDocking = 'Jv Docking';
|
||||||
|
RsPaletteDotNet = 'Jv DotNet';
|
||||||
|
RsPaletteDotNetDB = 'Jv DotNet DB';
|
||||||
|
|
||||||
|
//=== JvAnimatedEditor.pas ===================================================
|
||||||
|
resourcestring
|
||||||
|
RsEditPicture = 'Edit picture...';
|
||||||
|
RsLoadAniCursor = 'Load from ANI...';
|
||||||
|
|
||||||
|
//=== JvAVICaptureEditors.pas ================================================
|
||||||
|
resourcestring
|
||||||
|
RsGetValueFmt = '%d - %s';
|
||||||
|
RsDisconnected = 'Disconnected';
|
||||||
|
RsEdIsNotWithinTheValidRangeOfdd = '%d is not within the valid range of %d..%d';
|
||||||
|
|
||||||
|
//=== JvBandObjectDLLWizard.pas ==============================================
|
||||||
|
resourcestring
|
||||||
|
RsCreatesABandObjectDLLProject = 'Creates a Band Object DLL Project.';
|
||||||
|
RsBandObjectDLLWizard = 'Band Object DLL Wizard';
|
||||||
|
RsBandObjectDLLWizardIDString = 'JVCL.JvBandObjectDLLWizard';
|
||||||
|
|
||||||
|
//=== JvBandObjectDLLWizardForm.pas ==========================================
|
||||||
|
resourcestring
|
||||||
|
RsBandHelpCaptionFmt = '%s %s';
|
||||||
|
RsEBandNameHasToBeAValidIdentifier = 'Band name has to be a valid identifier!';
|
||||||
|
RsEPleaseEnterBandDescription = 'Please enter band description!';
|
||||||
|
RsHelpText = sLineBreak +
|
||||||
|
'Band Name' + sLineBreak +
|
||||||
|
'Enter a band name, e.g. MyBand.' + sLineBreak +
|
||||||
|
'This will be the class name of the band object.' + sLineBreak +
|
||||||
|
'No need to prefix it with ''T'' as it will be generated.' + sLineBreak + sLineBreak +
|
||||||
|
'Description' + sLineBreak +
|
||||||
|
'Enter a menuitem text, e.g. &My Band' + sLineBreak +
|
||||||
|
'This text will appear in the Explorer Bar or Toolbars menu.' + sLineBreak + sLineBreak +
|
||||||
|
'Band Type' + sLineBreak +
|
||||||
|
'Select the type of band object to create.';
|
||||||
|
|
||||||
|
//=== JvBaseDsgnForm.pas =====================================================
|
||||||
|
resourcestring
|
||||||
|
RsBaseDesignFormName = 'JEDI-VCL Editor';
|
||||||
|
|
||||||
|
//=== JvChangeNotifyEditor.pas ===============================================
|
||||||
|
resourcestring
|
||||||
|
RsNotificationsEllipsis = 'Notifications...';
|
||||||
|
|
||||||
|
//=== JvCheckedItemsForm.pas =================================================
|
||||||
|
resourcestring
|
||||||
|
RsItemEditor = 'Item editor';
|
||||||
|
RsEnabled = 'Enabled';
|
||||||
|
|
||||||
|
//=== JvColorProviderAddDialogForm.pas =======================================
|
||||||
|
resourcestring
|
||||||
|
RsCustomColors = 'Custom colors';
|
||||||
|
|
||||||
|
//=== JvColorProviderDesignerForm.pas ========================================
|
||||||
|
resourcestring
|
||||||
|
RsCustomColorsEllipsis = 'Custom colors...';
|
||||||
|
RsColorMsg = 'Copy standard and system colors from the default context?';
|
||||||
|
RsDesigning = 'Designing %s';
|
||||||
|
|
||||||
|
//=== JvColorProviderEditors.pas =============================================
|
||||||
|
resourcestring
|
||||||
|
RsEMappingDoesNotExistForThisColorProv = 'Mapping does not exist for this color provider.';
|
||||||
|
|
||||||
|
//=== JvColorProviderEditors.pas =============================================
|
||||||
|
resourcestring
|
||||||
|
RsENoSplashServices = 'Unable to get Borland Splash Services';
|
||||||
|
RsENoAboutServices = 'Unable to get Borland About Services';
|
||||||
|
|
||||||
|
RsAboutDialogTitle = 'JEDI Visual Component Library';
|
||||||
|
RsAboutCopyright = 'Copyright the JVCL development team';
|
||||||
|
RsAboutTitle = 'JEDI Visual Component Library';
|
||||||
|
RsAboutDescription = 'JEDI Visual Component Library http://jvcl.delphi-jedi.org' + sLineBreak +
|
||||||
|
'The JVCL is a member of the JEDI Project http://www.delphi-jedi.org' + sLineBreak +
|
||||||
|
'Covered under the Mozilla Public License v1.1 (MPL 1.1)' + sLineBreak +
|
||||||
|
'License available at http://www.mozilla.org/MPL/MPL-1.1.html';
|
||||||
|
RsAboutLicenceStatus = 'MPL 1.1';
|
||||||
|
|
||||||
|
//=== JvCsvDataEditor.pas ====================================================
|
||||||
|
resourcestring
|
||||||
|
RsJvCsvDataSetSelectCSVFileToOpen = 'JvCsvDataSet - Select CSV File to Open';
|
||||||
|
RsCsvFilter = 'CSV files (*.csv)|*.csv';
|
||||||
|
|
||||||
|
//=== JvCsvDataForm.pas ======================================================
|
||||||
|
resourcestring
|
||||||
|
RsMustTypeAValidFieldNameAndSelectAFi =
|
||||||
|
'Must type a valid field name and select a field type. ' +
|
||||||
|
'Field name must start with a letter A-Z and consist of letters and numbers only. ' +
|
||||||
|
'All field names will be converted to uppercase before being used.';
|
||||||
|
RsAddFailed = 'Add Failed';
|
||||||
|
RsFieldNameIsNotAValidIdentifier = '%s: Field name is not a valid identifier';
|
||||||
|
RsCantAddTwoFieldsWithTheSameNameSele =
|
||||||
|
'Can''t add two fields with the same name! Select existing item and click ''Modify'' button to change its properties.';
|
||||||
|
RsUpdateFailed = 'Update Failed';
|
||||||
|
RsNoItemIsSelectedInTheFieldsListYouC = 'No item is selected in the fields list. You can''t update nothing.';
|
||||||
|
RsModifyingTheCurrentlySelectedItemWo =
|
||||||
|
'Modifying the currently selected item would create two items with the same name.';
|
||||||
|
RsYouHaventActuallyChangedAnythingIfY = 'You haven''t actually changed anything. If you ' +
|
||||||
|
'made changes and didn''t click Modify, the changes have ' +
|
||||||
|
'not been made yet. (Click no, to go back.) ' + sLineBreak +
|
||||||
|
'Are you sure you want to close the CSV Fields editor? ';
|
||||||
|
|
||||||
|
//=== JvDataConsumerContextSelectForm.pas ====================================
|
||||||
|
resourcestring
|
||||||
|
RsEConsumerDoesNotSupportContextSelect = 'Consumer does not support context selection.';
|
||||||
|
RsEIJvDataConsumerProviderIsNotSupported = 'IJvDataConsumerProvider is not supported by the specified consumer.';
|
||||||
|
|
||||||
|
//=== JvDataConsumerItemSelectForm.pas =======================================
|
||||||
|
resourcestring
|
||||||
|
RsDataProviderItemSelector = 'DataProvider Item Selector';
|
||||||
|
|
||||||
|
//=== JvDataContextManagerForm.pas ===========================================
|
||||||
|
resourcestring
|
||||||
|
RsDataProviderContextManager = 'DataProvider Context Manager';
|
||||||
|
|
||||||
|
//=== JvDataEmbeddedEditor.pas ===============================================
|
||||||
|
resourcestring
|
||||||
|
RsLoadFromFileEllipsis = 'Load From File...';
|
||||||
|
RsClearEmbeddedData = 'Clear data';
|
||||||
|
RsViewEmbeddedDataAsText = 'View As Text...';
|
||||||
|
|
||||||
|
//=== JvDataProviderDesignerForm.pas =========================================
|
||||||
|
resourcestring
|
||||||
|
RsDefault = '<Default>';
|
||||||
|
RsDataProviderDesigner = 'DataProvider Designer';
|
||||||
|
RsEInternalErrorUnableToRetrieveContext = 'Internal error: unable to retrieve context list';
|
||||||
|
|
||||||
|
//=== JvDataProviderEditors.pas ==============================================
|
||||||
|
resourcestring
|
||||||
|
RsESpecifiedProviderIsNotATComponentDe = 'Specified provider is not a TComponent descendant';
|
||||||
|
RsTreeDesignerEllipsis = 'Tree designer...';
|
||||||
|
RsContextManagerEllipsis = 'Context manager...';
|
||||||
|
RsInvalidVerbd = 'Invalid verb#: %d';
|
||||||
|
|
||||||
|
//=== JvDataProviderItemDesign.pas ===========================================
|
||||||
|
resourcestring
|
||||||
|
RsUnknown = '<unknown>';
|
||||||
|
RsNoItem = '<no item>';
|
||||||
|
|
||||||
|
//=== JvDateTimeForm.pas =====================================================
|
||||||
|
resourcestring
|
||||||
|
RsSelectDate = 'Select Date';
|
||||||
|
RsSelectTime = 'Select Time';
|
||||||
|
RsSelectDateTime = 'Select Date and Time';
|
||||||
|
RsMaxInt = 'MaxInt';
|
||||||
|
RsMinInt = 'MinInt';
|
||||||
|
RsMaxLong = 'MaxLong';
|
||||||
|
RsMinLong = 'MinLong';
|
||||||
|
RsMaxShort = 'MaxShort';
|
||||||
|
RsMinShort = 'MinShort';
|
||||||
|
RsMaxWord = 'MaxWord';
|
||||||
|
RsFileName = '(Filename)';
|
||||||
|
RsDirectory = '(Directory)';
|
||||||
|
|
||||||
|
//=== JvDBGridProp.pas =======================================================
|
||||||
|
resourcestring
|
||||||
|
RsEJvDBGridDataSourceNeeded = 'DataSource property must be set before selecting controls.';
|
||||||
|
RsEJvDBGridDataSetNeeded = 'A dataset must be linked to the grid datasource before selecting controls.';
|
||||||
|
RsJvDBGridAlreadyAdded = 'The field "%s" has already been added.';
|
||||||
|
|
||||||
|
//=== JvDBMemDatasetEditor.pas ===============================================
|
||||||
|
resourcestring
|
||||||
|
RsBorrowStructure = 'Borrow structure...';
|
||||||
|
|
||||||
|
//=== JvDockPropertyEditors.pas ==============================================
|
||||||
|
resourcestring
|
||||||
|
RsDockNewPage = 'Ne&w Page';
|
||||||
|
RsDockNextPage = 'Ne&xt Page';
|
||||||
|
RsDockPreviousPage = '&Previous Page';
|
||||||
|
RsDockDeletePage = '&Delete Page';
|
||||||
|
|
||||||
|
//=== JvDsgnEditors.pas ======================================================
|
||||||
|
resourcestring
|
||||||
|
RsStripFilePath = '&Strip file path';
|
||||||
|
{$IFDEF MSWINDOWS}
|
||||||
|
RsExecutableFilesExeExeAllFiles = 'Executable files (*.exe)|*.exe|All files (*.*)|*.*';
|
||||||
|
{$ENDIF MSWINDOWS}
|
||||||
|
{$IFDEF UNIX}
|
||||||
|
RsExecutableFilesExeExeAllFiles = 'Executable files (*)|*';
|
||||||
|
{$ENDIF UNIX}
|
||||||
|
RsFmtEditEllipsis = '%s Editor...';
|
||||||
|
RsSaveImageList = 'Save to bitmap...';
|
||||||
|
|
||||||
|
//=== JvFooterEditor.pas =====================================================
|
||||||
|
resourcestring
|
||||||
|
RsAddButtonText = 'Add button';
|
||||||
|
RsMSOffice = 'MS Office 2000';
|
||||||
|
RsMSEnterpriseManagerWizard = 'MS Enterprise Manager Wizard';
|
||||||
|
RsDialogMode = 'Dialog Mode';
|
||||||
|
RsPrevious = 'Previous';
|
||||||
|
RsNext = 'Next';
|
||||||
|
|
||||||
|
//=== JvFormPropertiesForm.pas ===============================================
|
||||||
|
resourcestring
|
||||||
|
RsStorageDesigner = 'Form Storage Designer...';
|
||||||
|
|
||||||
|
//=== JvFullColorListForm.pas ================================================
|
||||||
|
resourcestring
|
||||||
|
RsUnnamedColorFmt = '%s : Unnamed color $%.8x';
|
||||||
|
|
||||||
|
//=== JvgComponentListEditorForm.pas =========================================
|
||||||
|
resourcestring
|
||||||
|
RsEditComponentListEllipsis = 'Edit component list...';
|
||||||
|
|
||||||
|
//=== JvgHelpPanelEditor.pas =================================================
|
||||||
|
resourcestring
|
||||||
|
RsRTFAndTextFilesrtftxtrtftxt = 'RTF and Text files (*.rtf,*.txt)|*.rtf;*.txt';
|
||||||
|
RsLoadRTFFile = 'Load RTF file';
|
||||||
|
RsPreviewRTFText = 'Preview RTF text';
|
||||||
|
|
||||||
|
//=== JvgLabelEditorForm.pas =================================================
|
||||||
|
resourcestring
|
||||||
|
RsEditLabel = 'Edit &Label...';
|
||||||
|
|
||||||
|
//=== JvgLogicItemEditorForm.pas =============================================
|
||||||
|
resourcestring
|
||||||
|
RsLogicElements = 'Logic Element: %s';
|
||||||
|
RsResult = '[RESULT]';
|
||||||
|
RsNotDefined = '[ not defined ]';
|
||||||
|
|
||||||
|
//=== JvgLogicsEditorForm.pas ================================================
|
||||||
|
resourcestring
|
||||||
|
RsCaption = 'Caption';
|
||||||
|
RsComments = 'Comments';
|
||||||
|
RsEditComponentEllipsis = 'Edit component...';
|
||||||
|
|
||||||
|
//=== JvgMultiResourceEditorForm.pas =========================================
|
||||||
|
resourcestring
|
||||||
|
RsCellControlCaption = 'Control';
|
||||||
|
RsCellDefaultCaption = 'Default';
|
||||||
|
|
||||||
|
//=== JvGradientCaptionForm.pas ==============================================
|
||||||
|
resourcestring
|
||||||
|
RsCaptionDesigner = 'Edit Captions...';
|
||||||
|
RsGradientCaptions = 'Captions';
|
||||||
|
|
||||||
|
//=== JvgReportEditorForm.pas ================================================
|
||||||
|
resourcestring
|
||||||
|
RsEditReport = 'Edit report...';
|
||||||
|
RsPreviewReportEllipsis = 'Preview report...';
|
||||||
|
RsDeleteObject = 'Delete object?';
|
||||||
|
RsPagePreview = 'Page Preview';
|
||||||
|
|
||||||
|
//=== JvgReportParamsForm.pas ================================================
|
||||||
|
resourcestring
|
||||||
|
RsEditParamsEllipsis = 'Edit params...';
|
||||||
|
|
||||||
|
//=== JvGroupHeaderEditor.pas ================================================
|
||||||
|
resourcestring
|
||||||
|
RsStandardFlat = 'Standard/Flat';
|
||||||
|
RsWeb = 'Web';
|
||||||
|
|
||||||
|
//=== JvgShadowEditor.pas ====================================================
|
||||||
|
resourcestring
|
||||||
|
RsUpdateAllEditControl = 'Update all edit control';
|
||||||
|
|
||||||
|
//=== JVHLEditEditor.pas =====================================================
|
||||||
|
resourcestring
|
||||||
|
RsHLEditorMsg = 'Please select "JvHLEditor" first';
|
||||||
|
RsHLEditorMsgTitle = 'Cannot edit';
|
||||||
|
RsExecute = 'Execute';
|
||||||
|
RsJvHLEdPropDlgIni = 'JvHLEdPropDlg.ini';
|
||||||
|
|
||||||
|
//=== { TJvIconListForm.pas } ================================================
|
||||||
|
resourcestring
|
||||||
|
RsLoadIcon = 'Load Icon';
|
||||||
|
|
||||||
|
//=== JvID3v2EditorForm.pas ==================================================
|
||||||
|
resourcestring
|
||||||
|
RsfiErrorFrame = 'Error';
|
||||||
|
RsfiPaddingFrame = 'Padding';
|
||||||
|
RsfiNoFrame = 'No known frame';
|
||||||
|
RsfiAudioCrypto = 'Audio encryption';
|
||||||
|
RsfiPicture = 'Attached picture';
|
||||||
|
RsfiAudioSeekPoint = 'Audio seek point index';
|
||||||
|
RsfiComment = 'Comments';
|
||||||
|
RsfiCommercial = 'Commercial frame';
|
||||||
|
RsfiCryptoReg = 'Encryption method registration';
|
||||||
|
RsfiEqualization2 = 'Equalization (2)';
|
||||||
|
RsfiEqualization = 'Equalization';
|
||||||
|
RsfiEventTiming = 'Event timing codes';
|
||||||
|
RsfiGeneralObject = 'General encapsulated object';
|
||||||
|
RsfiGroupingReg = 'Group identification registration';
|
||||||
|
RsfiInvolvedPeople = 'Involved people list';
|
||||||
|
RsfiLinkedInfo = 'Linked information';
|
||||||
|
RsfiCDID = 'Music CD identifier';
|
||||||
|
RsfiMPEGLookup = 'MPEG location lookup table';
|
||||||
|
RsfiOwnership = 'Ownership frame';
|
||||||
|
RsfiPrivate = 'Private frame';
|
||||||
|
RsfiPlayCounter = 'Play counter';
|
||||||
|
RsfiPopularimeter = 'Popularimeter';
|
||||||
|
RsfiPositionsync = 'Position synchronisation frame';
|
||||||
|
RsfiBufferSize = 'Recommended buffer size';
|
||||||
|
RsfiVolumeAdj2 = 'Relative volume adjustment (2)';
|
||||||
|
RsfiVolumeAdj = 'Relative volume adjustment';
|
||||||
|
RsfiReverb = 'Reverb';
|
||||||
|
RsfiSeekFrame = 'Seek frame';
|
||||||
|
RsfiSignature = 'Signature frame';
|
||||||
|
RsfiSyncedLyrics = 'Synchronized lyric/text';
|
||||||
|
RsfiSyncedTempo = 'Synchronized tempo codes';
|
||||||
|
RsfiAlbum = 'Album/Movie/Show title';
|
||||||
|
RsfiBPM = 'BPM (beats per minute)';
|
||||||
|
RsfiComposer = 'Composer';
|
||||||
|
RsfiContentType = 'Content type';
|
||||||
|
RsfiCopyright = 'Copyright message';
|
||||||
|
RsfiDate = 'Date';
|
||||||
|
RsfiEncodingTime = 'Encoding time';
|
||||||
|
RsfiPlaylistDelay = 'Playlist delay';
|
||||||
|
RsfiOrigReleaseTime = 'Original release time';
|
||||||
|
RsfiRecordingTime = 'Recording time';
|
||||||
|
RsfiReleaseTime = 'Release time';
|
||||||
|
RsfiTaggingTime = 'Tagging time';
|
||||||
|
RsfiInvolvedPeople2 = 'Involved people list';
|
||||||
|
RsfiEncodedBy = 'Encoded by';
|
||||||
|
RsfiLyricist = 'Lyricist/Text writer';
|
||||||
|
RsfiFileType = 'File type';
|
||||||
|
RsfiTime = 'Time';
|
||||||
|
RsfiContentGroup = 'Content group description';
|
||||||
|
RsfiTitle = 'Title/songname/content description';
|
||||||
|
RsfiSubTitle = 'Subtitle/Description refinement';
|
||||||
|
RsfiInitialKey = 'Initial key';
|
||||||
|
RsfiLanguage = 'Language(s)';
|
||||||
|
RsfiSongLen = 'Length';
|
||||||
|
RsfiMusicianCreditList = 'Musician credits list';
|
||||||
|
RsfiMediaType = 'Media type';
|
||||||
|
RsfiMood = 'Mood';
|
||||||
|
RsfiOrigAlbum = 'Original album/movie/show title';
|
||||||
|
RsfiOrigFileName = 'Original filename';
|
||||||
|
RsfiOrigLyricist = 'Original lyricist(s)/text writer(s)';
|
||||||
|
RsfiOrigArtist = 'Original artist(s)/performer(s)';
|
||||||
|
RsfiOrigYear = 'Original release year';
|
||||||
|
RsfiFileOwner = 'File owner/licensee';
|
||||||
|
RsfiLeadArtist = 'Lead performer(s)/Soloist(s)';
|
||||||
|
RsfiBand = 'Band/orchestra/accompaniment';
|
||||||
|
RsfiConductor = 'Conductor/performer refinement';
|
||||||
|
RsfiMixArtist = 'Interpreted, remixed, or otherwise modified by';
|
||||||
|
RsfiPartInSet = 'Part of a set';
|
||||||
|
RsfiProducedNotice = 'Produced notice';
|
||||||
|
RsfiPublisher = 'Publisher';
|
||||||
|
RsfiTrackNum = 'Track number/Position in set';
|
||||||
|
RsfiRecordingDates = 'Recording dates';
|
||||||
|
RsfiNetRadioStation = 'Internet radio station name';
|
||||||
|
RsfiNetRadioOwner = 'Internet radio station owner';
|
||||||
|
RsfiSize = 'Size';
|
||||||
|
RsfiAlbumSortOrder = 'Album sort order';
|
||||||
|
RsfiPerformerSortOrder = 'Performer sort order';
|
||||||
|
RsfiTitleSortOrder = 'Title sort order';
|
||||||
|
RsfiISRC = 'ISRC (international standard recording code)';
|
||||||
|
RsfiEncoderSettings = 'Software/Hardware and settings used for encoding';
|
||||||
|
RsfiSetSubTitle = 'Set subtitle';
|
||||||
|
RsfiUserText = 'User defined text information';
|
||||||
|
RsfiYear = 'Year';
|
||||||
|
RsfiUniqueFileID = 'Unique file identifier';
|
||||||
|
RsfiTermsOfUse = 'Terms of use';
|
||||||
|
RsfiUnsyncedLyrics = 'Unsynchronized lyric/text transcription';
|
||||||
|
RsfiWWWCommercialInfo = 'Commercial information';
|
||||||
|
RsfiWWWCopyright = 'Copyright/Legal information';
|
||||||
|
RsfiWWWAudioFile = 'Official audio file webpage';
|
||||||
|
RsfiWWWArtist = 'Official artist/performer webpage';
|
||||||
|
RsfiWWWAudioSource = 'Official audio source webpage';
|
||||||
|
RsfiWWWRadioPage = 'Official internet radio station homepage';
|
||||||
|
RsfiWWWPayment = 'Payment';
|
||||||
|
RsfiWWWPublisher = 'Official publisher webpage';
|
||||||
|
RsfiWWWUser = 'User defined URL link';
|
||||||
|
RsfiMetaCrypto = 'Encrypted meta frame';
|
||||||
|
RsfiMetaCompression = 'Compressed meta frame';
|
||||||
|
|
||||||
|
RsMPEG10 = 'MPEG 1.0';
|
||||||
|
RsMPEG20 = 'MPEG 2.0';
|
||||||
|
RsMPEGUnknown = '??';
|
||||||
|
RsMPEG25 = 'MPEG 2.5';
|
||||||
|
|
||||||
|
RsLayerUnknown = '??';
|
||||||
|
RsLayer1 = 'Layer 1';
|
||||||
|
RsLayer2 = 'Layer 2';
|
||||||
|
RsLayer3 = 'Layer 3';
|
||||||
|
|
||||||
|
RsChannelModeStereo = 'Stereo';
|
||||||
|
RsChannelModeJointStereo = 'Joint Stereo';
|
||||||
|
RsChannelModeDualChannel = 'Dual Channel';
|
||||||
|
RsChannelModeMono = 'Mono';
|
||||||
|
|
||||||
|
RsEmphasisNone = 'None';
|
||||||
|
RsEmphasisMicrosec = '50/15 microsec';
|
||||||
|
RsEmphasisUnknown = '??';
|
||||||
|
RsEmphasisCCITTJ17 = 'CCIT J.17';
|
||||||
|
|
||||||
|
RsBoolNo = 'No';
|
||||||
|
RsBoolYes = 'Yes';
|
||||||
|
|
||||||
|
RsVbrNo = '';
|
||||||
|
RsVbrVbr = ' (VBR)';
|
||||||
|
|
||||||
|
RsIDV2FileInfoFmt =
|
||||||
|
'Size: %d bytes' + sLineBreak +
|
||||||
|
'Header found at: %d bytes' + sLineBreak +
|
||||||
|
'Length: %d seconds' + sLineBreak +
|
||||||
|
'%s %s' + sLineBreak +
|
||||||
|
'%dkbit%s, %d frames' + sLineBreak +
|
||||||
|
'%dHz %s' + sLineBreak +
|
||||||
|
'CRCs: %s' + sLineBreak +
|
||||||
|
'Copyrighted: %s' + sLineBreak +
|
||||||
|
'Original: %s' + sLineBreak +
|
||||||
|
'Emphasis: %s';
|
||||||
|
|
||||||
|
RsIDV2FileInfoCaption = 'File info';
|
||||||
|
RsCommit = 'Commit?';
|
||||||
|
|
||||||
|
// (rom) from JvConsts.pas
|
||||||
|
RsID3CommitTag = '&Commit';
|
||||||
|
RsID3FileInfoTag = 'File &info';
|
||||||
|
RsID3FrameEditorTag = 'Frame edi&tor';
|
||||||
|
RsID3RemoveTag = '&Remove tag...';
|
||||||
|
RsID3RemoveTagConfirmation = 'Remove tag?';
|
||||||
|
RsID3Err_FileDoesNotExists = 'File %s does not exists';
|
||||||
|
RsID3Err_NoFileSpecified = 'No file specified';
|
||||||
|
RsID3Err_NoValidMPEGTag = 'This file has not a valid MPEG tag';
|
||||||
|
|
||||||
|
//=== JvIDEZoom.pas ==========================================================
|
||||||
|
resourcestring
|
||||||
|
RsZoomEditWindow = 'Zoom Edit Window';
|
||||||
|
RsCantZoomDocked = 'An edit window can not be zoomed while docked,' + sLineBreak +
|
||||||
|
'switch to the "Classic Undocked" layout to use this command';
|
||||||
|
|
||||||
|
//=== JvImagePreviewForm.pas =================================================
|
||||||
|
resourcestring
|
||||||
|
RsPreview = 'Preview';
|
||||||
|
|
||||||
|
//=== JvJVCLAboutEditor.pas ==================================================
|
||||||
|
resourcestring
|
||||||
|
RsVersions = 'Version %s';
|
||||||
|
|
||||||
|
//=== JvLookoutEditor.pas ====================================================
|
||||||
|
resourcestring
|
||||||
|
RsAddPage = 'Add page';
|
||||||
|
RsActivate = 'Activate';
|
||||||
|
RsAddButton = 'Add Button';
|
||||||
|
RsScrollUp = 'Scroll Up';
|
||||||
|
RsScrollDown = 'Scroll Down';
|
||||||
|
RsAddPage_ = 'Add Page';
|
||||||
|
|
||||||
|
//=== JvMailEditor.pas =======================================================
|
||||||
|
resourcestring
|
||||||
|
RsSend = 'Send';
|
||||||
|
RsAddress = 'Address';
|
||||||
|
|
||||||
|
//=== JvOutlookBarEditors.pas ================================================
|
||||||
|
resourcestring
|
||||||
|
RsOLEditor = 'OutlookBar Editor...';
|
||||||
|
|
||||||
|
//=== JvOutlookBarForm.pas ===================================================
|
||||||
|
resourcestring
|
||||||
|
RsDesignerIsNilInFormClosed = 'Designer is nil in FormClosed';
|
||||||
|
RsFmtCaption = 'Editing %s';
|
||||||
|
RsOutlookBarCaption = 'OutlookBar Editor';
|
||||||
|
|
||||||
|
//=== JvPageLinkEditor.pas ===================================================
|
||||||
|
resourcestring
|
||||||
|
RsCreateLinkToPaged = 'Create link to page %d';
|
||||||
|
|
||||||
|
//=== JvPageListTreeViewReg.pas ==============================================
|
||||||
|
resourcestring
|
||||||
|
RsEFmtInterfaceNotSupported = '%s does not support the required interface (%s)';
|
||||||
|
RsPageListEditorEllipsis = 'Page List Editor...';
|
||||||
|
RsNextPageAmp = 'Ne&xt Page';
|
||||||
|
RsPrevPage = '&Previous Page';
|
||||||
|
RsNewPage = '&New Page';
|
||||||
|
RsDelPage = '&Delete Page';
|
||||||
|
|
||||||
|
//=== JvPageManagerForm.pas ==================================================
|
||||||
|
resourcestring
|
||||||
|
RsProxyEditor = 'Edit Proxies...';
|
||||||
|
RsPageProxies = '%s Page Proxies';
|
||||||
|
RsProxyName = 'Page Proxy Name';
|
||||||
|
RsPageName = 'Page Name';
|
||||||
|
|
||||||
|
//=== JvPatcherEditor.pas ====================================================
|
||||||
|
resourcestring
|
||||||
|
RsDiff = '(diff)';
|
||||||
|
RsEqual = '(equal)';
|
||||||
|
|
||||||
|
//=== JvPictureEditForm.pas ==================================================
|
||||||
|
resourcestring
|
||||||
|
RsLoadPicture = 'Load picture';
|
||||||
|
RsSavePictureAs = 'Save picture as';
|
||||||
|
|
||||||
|
//=== JvPluginParamsForm.pas =================================================
|
||||||
|
resourcestring
|
||||||
|
RsPluginParamsFormInfoText =
|
||||||
|
'The settings above will create the following project:' +
|
||||||
|
sLineBreak + sLineBreak +
|
||||||
|
'* A project called Plg%0:s.%1:s' + sLineBreak +
|
||||||
|
'* A unit called Plugin%0:s, containing the data module T%0:s.';
|
||||||
|
|
||||||
|
//=== JvPluginWizard.pas =====================================================
|
||||||
|
resourcestring
|
||||||
|
RsJvPluginWizard = 'Jv Plugin Wizard';
|
||||||
|
RsProjects = 'Projects';
|
||||||
|
RsNewPlugin = 'New Plugin';
|
||||||
|
RsPrivateDeclarations = '{ Private declarations }';
|
||||||
|
RsPublicDeclarations = '{ Public declarations }';
|
||||||
|
RsIMPORTANTNOTEIfYouChangeTheNameOfTh =
|
||||||
|
'// IMPORTANT NOTE: If you change the name of the Plugin container,' + sLineBreak +
|
||||||
|
'// you must set the type below to the same type. (Delphi changes' + sLineBreak +
|
||||||
|
'// the declaration, but not the procedure itself. Both the return' + sLineBreak +
|
||||||
|
'// type and the type created must be the same as the declared type above.';
|
||||||
|
RsJediPluginWizard = 'JEDI Plugin Wizard';
|
||||||
|
RsPluginWizardIDString = 'JVCL.JvPluginWizard';
|
||||||
|
|
||||||
|
//=== JvPreviewReg.pas =======================================================
|
||||||
|
resourcestring
|
||||||
|
RsCreatePreview = 'Create Preview';
|
||||||
|
RsClearPreview = 'Clear Preview';
|
||||||
|
|
||||||
|
//=== JvScheduleEditorForm.pas ===============================================
|
||||||
|
resourcestring
|
||||||
|
RsEInvalidScheduleSettingsFound = 'Invalid schedule settings found.';
|
||||||
|
RsStop = 'Stop';
|
||||||
|
RsRun = 'Run';
|
||||||
|
|
||||||
|
//=== JvScheduleEditors.pas ==================================================
|
||||||
|
resourcestring
|
||||||
|
RsEventEditor = 'Event editor...';
|
||||||
|
|
||||||
|
//=== JvScrollMaxEditor.pas ==================================================
|
||||||
|
resourcestring
|
||||||
|
RsAddBand = 'Add Band';
|
||||||
|
|
||||||
|
//=== JvSegmentedLEDDisplayEditors.pas =======================================
|
||||||
|
resourcestring
|
||||||
|
RsAddDigit = 'Add digit';
|
||||||
|
RsRemoveDigit = 'Remove digit';
|
||||||
|
RsEditMappingEllipsis = 'Edit mapping...';
|
||||||
|
|
||||||
|
//=== JvSegmentedLEDDisplayMappingForm.pas ===================================
|
||||||
|
resourcestring
|
||||||
|
RsSegmentedLEDDisplayMappingEditor = 'Segmented LED Display Mapping Editor';
|
||||||
|
|
||||||
|
//=== JvSegmentedLEDDisplayMappingForm.pas ===================================
|
||||||
|
resourcestring
|
||||||
|
{$IFDEF MSWINDOWS}
|
||||||
|
RsTextFilter =
|
||||||
|
'Text files (*.TXT)|*.TXT|Config files (*.SYS;*.INI)|*.SYS;*.INI|Batch files (*.BAT)|*.BAT|All files (*.*)|*.*';
|
||||||
|
// RsTextFilter = 'Text files (*.txt)|*.txt|Config files (*.sys;*.ini)|*.sys;*.ini|Batch files (*.bat)|*.bat|All files (*.*)|*.*';
|
||||||
|
{$ENDIF MSWINDOWS}
|
||||||
|
{$IFDEF UNIX}
|
||||||
|
RsTextFilter =
|
||||||
|
'Text files (*.txt)|*.txt|All files (*)|*';
|
||||||
|
{$ENDIF UNIX}
|
||||||
|
RsSingleLine = 'Line';
|
||||||
|
RsMultipleLines = 'Lines';
|
||||||
|
|
||||||
|
//=== { TJvSpeedbarForm.pas } ================================================
|
||||||
|
RsESBItemNotCreate = 'Cannot create a new Speedbar button';
|
||||||
|
RsConfirmSBDelete = 'Are you sure you want to delete current section?';
|
||||||
|
RsSpeedbarDesigner = 'Speedbar designer...';
|
||||||
|
RsNewSectionName = 'Untitled (%d)';
|
||||||
|
|
||||||
|
//=== JvTimeFrameworkReg.pas =================================================
|
||||||
|
resourcestring
|
||||||
|
RsGridLayout = 'Grid Layout';
|
||||||
|
RsCustomDraw = 'Custom Draw';
|
||||||
|
|
||||||
|
//=== JvTimerListEditor.pas ==================================================
|
||||||
|
resourcestring
|
||||||
|
RsEventsEllipsis = 'Events...';
|
||||||
|
|
||||||
|
//=== JvTreeItemsEditorForm.pas ==============================================
|
||||||
|
resourcestring
|
||||||
|
RsLinksEditorEllipsis = 'Links Editor...';
|
||||||
|
|
||||||
|
//=== JvValidatorsEditorForm.pas =============================================
|
||||||
|
resourcestring
|
||||||
|
RsJvValidatorsItemsEditorEllipsis = 'JvValidators Items Editor...';
|
||||||
|
RsJvValidatorItemsEditorEllipsis = 'JvValidator Items Editor...';
|
||||||
|
|
||||||
|
//=== JvWizardEditorForm.pas =================================================
|
||||||
|
resourcestring
|
||||||
|
RsPageListEllipsis = 'Page List...';
|
||||||
|
RsNewWelcomePage = 'New Welcome Page';
|
||||||
|
RsNewInteriorPage = 'New Interior Page';
|
||||||
|
RsDeletePage = 'Delete Page';
|
||||||
|
|
||||||
|
//=== JvXPPropertyEditors.pas ================================================
|
||||||
|
resourcestring
|
||||||
|
RsItemEditorEllipsis = 'Item Editor...';
|
||||||
|
RsDefaultColorItem = 'Restore Default Colors';
|
||||||
|
RsDefaultFontsItem = 'Restore Default Fonts';
|
||||||
|
|
||||||
|
//=== DataProvider design time constants =====================================
|
||||||
|
resourcestring
|
||||||
|
RsDataProviderDesignerCaption = 'Editing %s%s...';
|
||||||
|
RsDataProviderContextManCaption = 'Editing contexts for ''%s''...';
|
||||||
|
RsDataItemRootID = 'ROOT';
|
||||||
|
RsDataItemRootCaption = 'Root';
|
||||||
|
RsDataItemNoTextIntf = 'Item has no text support.';
|
||||||
|
RsDataItemIDNotFound = 'Item ID "%s" not found!';
|
||||||
|
RsEDataItemNotFound = 'Item not found.';
|
||||||
|
RsEDataProviderAddFailed = 'Failed to add a new item.';
|
||||||
|
RsEDataProviderAddErrorReason = 'unable to add new item; %s.';
|
||||||
|
RsEDataProviderDeleteErrorReason = 'Unable to delete item; %s.';
|
||||||
|
RsEDataProviderNoManOrDsgn = 'neither IJvDataItemsManagement nor IJvDataItemsDesigner are supported';
|
||||||
|
RsEDataProviderNoSubItems = 'item does not support IJvDataItems';
|
||||||
|
RsEDataProviderNoMan = 'IJvDataItemsManagement is not supported';
|
||||||
|
|
||||||
|
//=== not taken into JVCL ====================================================
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
end.
|
88
components/jvcllaz/design/JvHTHintForm.lfm
Normal file
88
components/jvcllaz/design/JvHTHintForm.lfm
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
object JvHintEditor: TJvHintEditor
|
||||||
|
Left = 200
|
||||||
|
Height = 240
|
||||||
|
Top = 108
|
||||||
|
Width = 320
|
||||||
|
BorderIcons = [biSystemMenu]
|
||||||
|
Caption = 'JvHtHint Editor'
|
||||||
|
ClientHeight = 240
|
||||||
|
ClientWidth = 320
|
||||||
|
Color = clBtnFace
|
||||||
|
Constraints.MinHeight = 150
|
||||||
|
Constraints.MinWidth = 200
|
||||||
|
Icon.Data = {
|
||||||
|
3E01000000000100010010101000010010002801000016000000280000001000
|
||||||
|
0000200000000100040000000000C00000000000000000000000000000000000
|
||||||
|
000000000000000080000080000000808000800000008000800080800000C0C0
|
||||||
|
C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
|
||||||
|
FF00000000000000000000000BBBB0000000000BB000BB000000000BB0000B00
|
||||||
|
0000000BBB000BB00000000BBB000BB00000000000000BB00000000000000BB0
|
||||||
|
0000000000000BB00000000000000BB00000000000000BB00000000000000BB0
|
||||||
|
0000000000000BB0000000000000BBBB00000000000BBBBBB000000000000000
|
||||||
|
0000FFFF0000F87F0000E73F0000E7BF0000E39F0000E39F0000FF9F0000FF9F
|
||||||
|
0000FF9F0000FF9F0000FF9F0000FF9F0000FF9F0000FF0F0000FE070000FFFF
|
||||||
|
0000
|
||||||
|
}
|
||||||
|
KeyPreview = True
|
||||||
|
Position = poScreenCenter
|
||||||
|
ShowHint = True
|
||||||
|
LCLVersion = '1.7'
|
||||||
|
object Label1: TLabel
|
||||||
|
Left = 8
|
||||||
|
Height = 15
|
||||||
|
Top = 8
|
||||||
|
Width = 23
|
||||||
|
Caption = 'Hint'
|
||||||
|
ParentColor = False
|
||||||
|
ParentFont = False
|
||||||
|
end
|
||||||
|
object HintLabel: TLabel
|
||||||
|
Left = 114
|
||||||
|
Height = 15
|
||||||
|
Top = 8
|
||||||
|
Width = 198
|
||||||
|
Alignment = taRightJustify
|
||||||
|
Anchors = [akTop, akRight]
|
||||||
|
Caption = 'Drag mouse over this label to see hint'
|
||||||
|
ParentColor = False
|
||||||
|
ParentFont = False
|
||||||
|
WordWrap = True
|
||||||
|
end
|
||||||
|
object HintMemo: TMemo
|
||||||
|
Left = 8
|
||||||
|
Height = 157
|
||||||
|
Top = 32
|
||||||
|
Width = 304
|
||||||
|
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||||
|
OnChange = HintMemoChange
|
||||||
|
OnKeyDown = HintMemoKeyDown
|
||||||
|
ParentFont = False
|
||||||
|
ScrollBars = ssBoth
|
||||||
|
TabOrder = 0
|
||||||
|
WordWrap = False
|
||||||
|
end
|
||||||
|
object BtnOk: TButton
|
||||||
|
Left = 151
|
||||||
|
Height = 25
|
||||||
|
Top = 204
|
||||||
|
Width = 75
|
||||||
|
Anchors = [akRight, akBottom]
|
||||||
|
Caption = '&OK'
|
||||||
|
Default = True
|
||||||
|
ModalResult = 1
|
||||||
|
ParentFont = False
|
||||||
|
TabOrder = 1
|
||||||
|
end
|
||||||
|
object BtnCancel: TButton
|
||||||
|
Left = 237
|
||||||
|
Height = 25
|
||||||
|
Top = 204
|
||||||
|
Width = 75
|
||||||
|
Anchors = [akRight, akBottom]
|
||||||
|
Cancel = True
|
||||||
|
Caption = 'Cancel'
|
||||||
|
ModalResult = 2
|
||||||
|
ParentFont = False
|
||||||
|
TabOrder = 2
|
||||||
|
end
|
||||||
|
end
|
106
components/jvcllaz/design/JvHTHintForm.pas
Normal file
106
components/jvcllaz/design/JvHTHintForm.pas
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
{-----------------------------------------------------------------------------
|
||||||
|
The contents of this file are subject to the Mozilla Public License
|
||||||
|
Version 1.1 (the "License"); you may not use this file except in compliance
|
||||||
|
with the License. You may obtain a copy of the License at
|
||||||
|
http://www.mozilla.org/MPL/MPL-1.1.html
|
||||||
|
|
||||||
|
Software distributed under the License is distributed on an "AS IS" basis,
|
||||||
|
WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for
|
||||||
|
the specific language governing rights and limitations under the License.
|
||||||
|
|
||||||
|
The Original Code is: JvHTHintEditor.PAS, released on 2002-07-04.
|
||||||
|
|
||||||
|
The Initial Developers of the Original Code are: Andrei Prygounkov <a dott prygounkov att gmx dott de>
|
||||||
|
Copyright (c) 1999, 2002 Andrei Prygounkov
|
||||||
|
All Rights Reserved.
|
||||||
|
|
||||||
|
Contributor(s):
|
||||||
|
|
||||||
|
You may retrieve the latest version of this file at the Project JEDI's JVCL home page,
|
||||||
|
located at http://jvcl.delphi-jedi.org
|
||||||
|
|
||||||
|
description : Design-time Hint Editor
|
||||||
|
|
||||||
|
Known Issues:
|
||||||
|
-----------------------------------------------------------------------------}
|
||||||
|
// $Id$
|
||||||
|
|
||||||
|
unit JvHTHintForm;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
SysUtils, Classes, Controls, Forms, StdCtrls,
|
||||||
|
PropEdits,
|
||||||
|
JvHint;
|
||||||
|
|
||||||
|
type
|
||||||
|
TJvHintEditor = class(TForm)
|
||||||
|
HintMemo: TMemo;
|
||||||
|
Label1: TLabel;
|
||||||
|
BtnOk: TButton;
|
||||||
|
BtnCancel: TButton;
|
||||||
|
HintLabel: TLabel;
|
||||||
|
procedure HintMemoChange(Sender: TObject);
|
||||||
|
procedure HintMemoKeyDown(Sender: TObject; var Key: Word;
|
||||||
|
{%H-}Shift: TShiftState);
|
||||||
|
private
|
||||||
|
public
|
||||||
|
end;
|
||||||
|
|
||||||
|
TJvHintProperty = class(TStringProperty)
|
||||||
|
public
|
||||||
|
function GetAttributes: TPropertyAttributes; override;
|
||||||
|
procedure Edit; override;
|
||||||
|
end;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
//=== { TJvHintProperty } ====================================================
|
||||||
|
|
||||||
|
procedure TJvHintProperty.Edit;
|
||||||
|
var
|
||||||
|
OldHintWindowClass: THintWindowClass;
|
||||||
|
begin
|
||||||
|
OldHintWindowClass := HintWindowClass;
|
||||||
|
with TJvHintEditor.Create(Application) do
|
||||||
|
try
|
||||||
|
HintMemo.Text := GetValue;
|
||||||
|
HintWindowClass := TJvHTHintWindow;
|
||||||
|
HintMemoChange(nil);
|
||||||
|
if ShowModal = mrOk then
|
||||||
|
SetValue(HintMemo.Text);
|
||||||
|
finally
|
||||||
|
Free;
|
||||||
|
HintWindowClass := OldHintWindowClass;
|
||||||
|
{ recreate hint window }
|
||||||
|
Application.ShowHint := not Application.ShowHint;
|
||||||
|
Application.ShowHint := not Application.ShowHint;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TJvHintProperty.GetAttributes: TPropertyAttributes;
|
||||||
|
begin
|
||||||
|
Result := inherited GetAttributes + [paDialog];
|
||||||
|
end;
|
||||||
|
|
||||||
|
//=== { TJvHintEditor } ======================================================
|
||||||
|
|
||||||
|
procedure TJvHintEditor.HintMemoChange(Sender: TObject);
|
||||||
|
begin
|
||||||
|
HintLabel.Hint := HintMemo.Text;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvHintEditor.HintMemoKeyDown(Sender: TObject; var Key: Word;
|
||||||
|
Shift: TShiftState);
|
||||||
|
begin
|
||||||
|
//if Key = VK_ESCAPE then
|
||||||
|
if Ord(Key) = 27 then //asn: With VisualCLX VK_ESCAPE <> 27
|
||||||
|
BtnCancel.Click;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
269
components/jvcllaz/design/JvValidatorsEditorForm.lfm
Normal file
269
components/jvcllaz/design/JvValidatorsEditorForm.lfm
Normal file
@ -0,0 +1,269 @@
|
|||||||
|
object frmValidatorsEditor: TfrmValidatorsEditor
|
||||||
|
Left = 289
|
||||||
|
Height = 260
|
||||||
|
Top = 205
|
||||||
|
Width = 320
|
||||||
|
BorderIcons = [biSystemMenu]
|
||||||
|
Caption = 'JvValidator Items Editor'
|
||||||
|
ClientHeight = 260
|
||||||
|
ClientWidth = 320
|
||||||
|
Color = clBtnFace
|
||||||
|
Constraints.MinHeight = 260
|
||||||
|
Constraints.MinWidth = 160
|
||||||
|
OnClose = FormClose
|
||||||
|
OnCreate = FormCreate
|
||||||
|
PopupMenu = popForm
|
||||||
|
ShowHint = True
|
||||||
|
LCLVersion = '1.6.0.4'
|
||||||
|
object ToolBar1: TToolBar
|
||||||
|
Left = 0
|
||||||
|
Height = 24
|
||||||
|
Top = 0
|
||||||
|
Width = 320
|
||||||
|
AutoSize = True
|
||||||
|
Caption = 'ToolBar1'
|
||||||
|
EdgeBorders = [ebLeft, ebBottom]
|
||||||
|
Images = il16
|
||||||
|
TabOrder = 0
|
||||||
|
object btnNew: TToolButton
|
||||||
|
Left = 3
|
||||||
|
Hint = 'Add Required Field Validator'
|
||||||
|
Top = 0
|
||||||
|
Caption = 'Required Field Validator'
|
||||||
|
DropdownMenu = popNew
|
||||||
|
ImageIndex = 0
|
||||||
|
Style = tbsDropDown
|
||||||
|
end
|
||||||
|
object btnDelete: TToolButton
|
||||||
|
Left = 38
|
||||||
|
Top = 0
|
||||||
|
Action = acDelete
|
||||||
|
end
|
||||||
|
object ToolButton1: TToolButton
|
||||||
|
Left = 61
|
||||||
|
Height = 22
|
||||||
|
Top = 0
|
||||||
|
Width = 8
|
||||||
|
Caption = 'ToolButton1'
|
||||||
|
ImageIndex = 2
|
||||||
|
Style = tbsSeparator
|
||||||
|
end
|
||||||
|
object ToolButton2: TToolButton
|
||||||
|
Left = 69
|
||||||
|
Top = 0
|
||||||
|
Action = acMoveUp
|
||||||
|
end
|
||||||
|
object ToolButton3: TToolButton
|
||||||
|
Left = 92
|
||||||
|
Top = 0
|
||||||
|
Action = acMoveDown
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object StatusBar1: TStatusBar
|
||||||
|
Left = 0
|
||||||
|
Height = 23
|
||||||
|
Top = 237
|
||||||
|
Width = 320
|
||||||
|
AutoHint = True
|
||||||
|
Panels = <
|
||||||
|
item
|
||||||
|
Width = 50
|
||||||
|
end>
|
||||||
|
end
|
||||||
|
object lbValidators: TListBox
|
||||||
|
Left = 0
|
||||||
|
Height = 213
|
||||||
|
Top = 24
|
||||||
|
Width = 320
|
||||||
|
Align = alClient
|
||||||
|
ItemHeight = 0
|
||||||
|
OnClick = lbValidatorsClick
|
||||||
|
TabOrder = 2
|
||||||
|
end
|
||||||
|
object popNew: TPopupMenu
|
||||||
|
Images = il16
|
||||||
|
left = 16
|
||||||
|
top = 40
|
||||||
|
end
|
||||||
|
object alEditor: TActionList
|
||||||
|
Images = il16
|
||||||
|
OnUpdate = alEditorUpdate
|
||||||
|
left = 16
|
||||||
|
top = 104
|
||||||
|
object acDelete: TAction
|
||||||
|
Caption = 'Delete'
|
||||||
|
Hint = 'Delete selected item'
|
||||||
|
ImageIndex = 1
|
||||||
|
OnExecute = acDeleteExecute
|
||||||
|
ShortCut = 46
|
||||||
|
end
|
||||||
|
object acMoveUp: TAction
|
||||||
|
Caption = 'Move Up'
|
||||||
|
Hint = 'Move Up'
|
||||||
|
ImageIndex = 2
|
||||||
|
OnExecute = acMoveUpExecute
|
||||||
|
ShortCut = 16422
|
||||||
|
end
|
||||||
|
object acMoveDown: TAction
|
||||||
|
Caption = 'Move Down'
|
||||||
|
Hint = 'Move Down'
|
||||||
|
ImageIndex = 3
|
||||||
|
OnExecute = acMoveDownExecute
|
||||||
|
ShortCut = 16424
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object il16: TImageList
|
||||||
|
left = 16
|
||||||
|
top = 72
|
||||||
|
Bitmap = {
|
||||||
|
4C69040000001000000010000000000000000000000000000000848484FFFFFF
|
||||||
|
FFFF000000000000000000000000000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000FFFFFF0000000000000000848484FF00FF
|
||||||
|
FFFF0000000000000000848484FF000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000848484FF00FFFFFF00000000848484FFFFFF
|
||||||
|
FFFF00000000848484FF00FFFFFF000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000848484FF00FFFFFF848484FF00FF
|
||||||
|
FFFF848484FF00FFFFFF00000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000FFFFFFFF00FFFFFF848484FF00FFFFFFFFFF
|
||||||
|
FFFF848484FF848484FF848484FF848484FF000000FF000000FF000000FF0000
|
||||||
|
00FF000000FF000000FF00000000848484FF848484FF848484FFFFFFFFFF8484
|
||||||
|
84FFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FF
|
||||||
|
FFFFFFFFFFFF000000FF848484FF00000000848484FFFFFFFFFF848484FF00FF
|
||||||
|
FFFF848484FF00FFFFFFFFFFFFFF00FFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFF
|
||||||
|
FFFF00FFFFFF000000FF848484FF848484FF00FFFFFF00FFFFFF848484FFFFFF
|
||||||
|
FFFF00FFFFFF848484FF00FFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FF
|
||||||
|
FFFFFFFFFFFF000000FF848484FFFFFFFFFF000000FFFFFFFFFF848484FF00FF
|
||||||
|
FFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFF
|
||||||
|
FFFF00FFFFFF000000FF848484FF00000000000000FF00FFFFFFFFFFFFFF00FF
|
||||||
|
FFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF000000FF000000FF0000
|
||||||
|
00FF000000FF000000FF848484FF00000000000000FFFFFFFFFF00FFFFFFFFFF
|
||||||
|
FFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFF000000FF00FFFFFFC6C6
|
||||||
|
C6FF000000FF000000FF848484FF00000000000000FF00FFFFFFFFFFFFFF00FF
|
||||||
|
FFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF000000FFC6C6C6FF0000
|
||||||
|
00FFFFFFFFFF000000FF848484FF00000000000000FFFFFFFFFF00FFFFFFFFFF
|
||||||
|
FFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFF000000FF000000FFFFFF
|
||||||
|
FFFF00FFFFFF000000FF848484FF00000000000000FF000000FF000000FF0000
|
||||||
|
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
|
||||||
|
00FF000000FF000000FF848484FF0000000000000000848484FF848484FF8484
|
||||||
|
84FF848484FF848484FF848484FF848484FF848484FF848484FF848484FF8484
|
||||||
|
84FF848484FF848484FF848484FF000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
000000000000000084FF000084FF848484FF0000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000084FF000084FF848484FF000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000084FF000084FF848484FF000000000000
|
||||||
|
84FF000084FF848484FF00000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000848484FF000084FF000084FF000084FF0000
|
||||||
|
84FF848484FF000000FF000000FF000000FF000000FF000000FF000000FF0000
|
||||||
|
00FF000000FF000000FF0000000000000000848484FF000084FF000084FF0000
|
||||||
|
84FFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FF
|
||||||
|
FFFFFFFFFFFF000000FF848484FF00000000848484FF000084FF000084FF0000
|
||||||
|
84FF000084FFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFF
|
||||||
|
FFFF00FFFFFF000000FF848484FF00000000000084FF000084FF848484FF00FF
|
||||||
|
FFFF000084FF000084FFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FF
|
||||||
|
FFFFFFFFFFFF000000FF848484FF848484FF000084FF848484FF00FFFFFFFFFF
|
||||||
|
FFFF848484FF000084FF848484FFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFF
|
||||||
|
FFFF00FFFFFF000000FF848484FF000084FF000084FF00FFFFFFFFFFFFFF00FF
|
||||||
|
FFFFFFFFFFFF848484FF000084FF00FFFFFFFFFFFFFF000000FF000000FF0000
|
||||||
|
00FF000000FF000000FF848484FF000084FF000000FFFFFFFFFF00FFFFFFFFFF
|
||||||
|
FFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFF000000FF00FFFFFFC6C6
|
||||||
|
C6FF000000FF000000FF848484FF848484FF000000FF00FFFFFFFFFFFFFF00FF
|
||||||
|
FFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF000000FFC6C6C6FF0000
|
||||||
|
00FFFFFFFFFF000000FF848484FF00000000000000FFFFFFFFFF00FFFFFFFFFF
|
||||||
|
FFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFF000000FF000000FFFFFF
|
||||||
|
FFFF00FFFFFF000000FF848484FF00000000000000FF000000FF000000FF0000
|
||||||
|
00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
|
||||||
|
00FF000000FF000000FF848484FF0000000000000000848484FF848484FF8484
|
||||||
|
84FF848484FF848484FF848484FF848484FF848484FF848484FF848484FF8484
|
||||||
|
84FF848484FF848484FF848484FF000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00000000000000000000000000FF000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
000000000000000000FF848400FF000000FF0000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FF848400FF848400FF848400FF000000FF00000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00FF848400FF848400FF848400FF848400FF848400FF000000FF000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000FF8484
|
||||||
|
00FF848400FF848400FF848400FF848400FF848400FF848400FF000000FF0000
|
||||||
|
00000000000000000000000000000000000000000000000000FF000000FF0000
|
||||||
|
00FF000000FF848400FF848400FF848400FF000000FF000000FF000000FF0000
|
||||||
|
00FF000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FF848400FF848400FF848400FF000000FF00000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FF848400FF848400FF848400FF000000FF00000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FF848400FF848400FF848400FF000000FF00000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FF000000FF000000FF000000FF000000FF00000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FF000000FF000000FF000000FF000000FF00000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FF848400FF848400FF848400FF000000FF00000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FF848400FF848400FF848400FF000000FF00000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FF848400FF848400FF848400FF000000FF00000000000000000000
|
||||||
|
00000000000000000000000000000000000000000000000000FF000000FF0000
|
||||||
|
00FF000000FF848400FF848400FF848400FF000000FF000000FF000000FF0000
|
||||||
|
00FF000000000000000000000000000000000000000000000000000000FF8484
|
||||||
|
00FF848400FF848400FF848400FF848400FF848400FF848400FF000000FF0000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00FF848400FF848400FF848400FF848400FF848400FF000000FF000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000FF848400FF848400FF848400FF000000FF00000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
000000000000000000FF848400FF000000FF0000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
00000000000000000000000000FF000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000
|
||||||
|
}
|
||||||
|
end
|
||||||
|
object popForm: TPopupMenu
|
||||||
|
left = 96
|
||||||
|
top = 96
|
||||||
|
object N1: TMenuItem
|
||||||
|
Caption = '-'
|
||||||
|
end
|
||||||
|
object Delete1: TMenuItem
|
||||||
|
Action = acDelete
|
||||||
|
end
|
||||||
|
object N2: TMenuItem
|
||||||
|
Caption = '-'
|
||||||
|
end
|
||||||
|
object MoveUp1: TMenuItem
|
||||||
|
Action = acMoveUp
|
||||||
|
end
|
||||||
|
object MoveDown1: TMenuItem
|
||||||
|
Action = acMoveDown
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
577
components/jvcllaz/design/JvValidatorsEditorForm.pas
Normal file
577
components/jvcllaz/design/JvValidatorsEditorForm.pas
Normal file
@ -0,0 +1,577 @@
|
|||||||
|
{-----------------------------------------------------------------------------
|
||||||
|
The contents of this file are subject to the Mozilla Public License
|
||||||
|
Version 1.1 (the "License"); you may not use this file except in compliance
|
||||||
|
with the License. You may obtain a copy of the License at
|
||||||
|
http://www.mozilla.org/MPL/MPL-1.1.html
|
||||||
|
|
||||||
|
Software distributed under the License is distributed on an "AS IS" basis,
|
||||||
|
WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for
|
||||||
|
the specific language governing rights and limitations under the License.
|
||||||
|
|
||||||
|
The Original Code is: JvValidatorsEditorForm.PAS, released on 2003-01-01.
|
||||||
|
|
||||||
|
The Initial Developer of the Original Code is Peter Th�rnqvist [peter3 att users dott sourceforge dott net] .
|
||||||
|
Portions created by Peter Th�rnqvist are Copyright (C) 2003 Peter Th�rnqvist.
|
||||||
|
All Rights Reserved.
|
||||||
|
|
||||||
|
Contributor(s):
|
||||||
|
|
||||||
|
You may retrieve the latest version of this file at the Project JEDI's JVCL home page,
|
||||||
|
located at http://jvcl.delphi-jedi.org
|
||||||
|
|
||||||
|
Known Issues:
|
||||||
|
-----------------------------------------------------------------------------}
|
||||||
|
// $Id$
|
||||||
|
|
||||||
|
unit JvValidatorsEditorForm;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
SysUtils, Classes,
|
||||||
|
Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, Menus, ActnList,
|
||||||
|
ComponentEditors, PropEdits,
|
||||||
|
JvValidators;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TfrmValidatorsEditor }
|
||||||
|
|
||||||
|
TfrmValidatorsEditor = class(TForm)
|
||||||
|
ToolBar1: TToolBar;
|
||||||
|
btnNew: TToolButton;
|
||||||
|
btnDelete: TToolButton;
|
||||||
|
StatusBar1: TStatusBar;
|
||||||
|
lbValidators: TListBox;
|
||||||
|
popNew: TPopupMenu;
|
||||||
|
alEditor: TActionList;
|
||||||
|
acDelete: TAction;
|
||||||
|
il16: TImageList;
|
||||||
|
ToolButton1: TToolButton;
|
||||||
|
ToolButton2: TToolButton;
|
||||||
|
ToolButton3: TToolButton;
|
||||||
|
acMoveUp: TAction;
|
||||||
|
acMoveDown: TAction;
|
||||||
|
popForm: TPopupMenu;
|
||||||
|
N1: TMenuItem;
|
||||||
|
Delete1: TMenuItem;
|
||||||
|
N2: TMenuItem;
|
||||||
|
MoveUp1: TMenuItem;
|
||||||
|
MoveDown1: TMenuItem;
|
||||||
|
procedure alEditorUpdate({%H-}AAction: TBasicAction; var {%H-}Handled: Boolean);
|
||||||
|
procedure FormClose(Sender: TObject; var AAction: TCloseAction);
|
||||||
|
procedure acDeleteExecute(Sender: TObject);
|
||||||
|
procedure lbValidatorsClick(Sender: TObject);
|
||||||
|
procedure acMoveUpExecute(Sender: TObject);
|
||||||
|
procedure acMoveDownExecute(Sender: TObject);
|
||||||
|
procedure FormCreate(Sender: TObject);
|
||||||
|
private
|
||||||
|
FDesigner: TComponentEditorDesigner;
|
||||||
|
FValidator: TJvValidators;
|
||||||
|
FFilling: Boolean;
|
||||||
|
function AddExisting(Validator: TJvBaseValidator): Integer; overload;
|
||||||
|
function AddNew(ValidatorClass: TJvBaseValidatorClass): Integer; overload;
|
||||||
|
procedure Delete(Index: Integer);
|
||||||
|
procedure ClearValidators;
|
||||||
|
procedure SelectItem(AObject: TPersistent);
|
||||||
|
procedure UpdateItem(Index: Integer);
|
||||||
|
procedure UpdateCaption;
|
||||||
|
procedure SetValidator(const Value: TJvValidators);
|
||||||
|
procedure DoAddNewValidator(Sender: TObject);
|
||||||
|
procedure AddValidatorClasses;
|
||||||
|
protected
|
||||||
|
procedure ItemDeleted(Item: TPersistent);
|
||||||
|
procedure OnComponentRenamed(AComponent: TComponent);
|
||||||
|
procedure OnGetSelection(const ASelection: TPersistentSelectionList);
|
||||||
|
procedure OnSetSelection(const ASelection: TPersistentSelectionList);
|
||||||
|
public
|
||||||
|
constructor Create(TheOwner: TComponent); override;
|
||||||
|
destructor Destroy; override;
|
||||||
|
procedure Activated;
|
||||||
|
property Validator: TJvValidators read FValidator write SetValidator;
|
||||||
|
property Designer: TComponentEditorDesigner read FDesigner write FDesigner;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TJvValidatorEditor = class(TComponentEditor)
|
||||||
|
public
|
||||||
|
function GetVerb({%H-}Index: Integer): string; override;
|
||||||
|
function GetVerbCount: Integer; override;
|
||||||
|
procedure ExecuteVerb(Index: Integer); override;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TJvPropertyValidateProperty = class(TStringProperty)
|
||||||
|
public
|
||||||
|
function GetAttributes: TPropertyAttributes; override;
|
||||||
|
procedure GetValues(Proc: TGetStrProc); override;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TJvPropertyToCompareProperty = class(TStringProperty)
|
||||||
|
public
|
||||||
|
function GetAttributes: TPropertyAttributes; override;
|
||||||
|
procedure GetValues(Proc: TGetStrProc); override;
|
||||||
|
end;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
TypInfo,
|
||||||
|
{JvErrorIndicator,} JvDsgnConsts;
|
||||||
|
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
const
|
||||||
|
ValidKinds: TTypeKinds =
|
||||||
|
[tkInteger, tkChar, tkEnumeration, tkFloat, tkString, tkSet,
|
||||||
|
tkWChar, tkLString, tkUString, tkWString, tkAString, tkVariant, tkInt64];
|
||||||
|
|
||||||
|
procedure ShowEditor(ADesigner: TComponentEditorDesigner; AValidator: TJvValidators);
|
||||||
|
var
|
||||||
|
I: Integer;
|
||||||
|
AEditor: TfrmValidatorsEditor;
|
||||||
|
begin
|
||||||
|
// because the page list editor is not show modal, so
|
||||||
|
// we need to find it rather than create a new instance.
|
||||||
|
AEditor := nil;
|
||||||
|
for I := 0 to Screen.FormCount - 1 do
|
||||||
|
if Screen.Forms[I] is TfrmValidatorsEditor then
|
||||||
|
if TfrmValidatorsEditor(Screen.Forms[I]).Validator = AValidator then
|
||||||
|
begin
|
||||||
|
AEditor := TfrmValidatorsEditor(Screen.Forms[I]);
|
||||||
|
Break;
|
||||||
|
end;
|
||||||
|
// Show the wizard editor
|
||||||
|
if Assigned(AEditor) then
|
||||||
|
begin
|
||||||
|
AEditor.Show;
|
||||||
|
if AEditor.WindowState = wsMinimized then
|
||||||
|
AEditor.WindowState := wsNormal;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
AEditor := TfrmValidatorsEditor.Create(Application);
|
||||||
|
try
|
||||||
|
AEditor.Designer := ADesigner;
|
||||||
|
AEditor.Validator := AValidator;
|
||||||
|
AEditor.Show;
|
||||||
|
except
|
||||||
|
AEditor.Free;
|
||||||
|
raise;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
//=== { TJvValidatorEditor } =================================================
|
||||||
|
|
||||||
|
procedure TJvValidatorEditor.ExecuteVerb(Index: Integer);
|
||||||
|
begin
|
||||||
|
if (Index = 0) and (Component is TJvValidators) then
|
||||||
|
ShowEditor(Designer, TJvValidators(Component))
|
||||||
|
else
|
||||||
|
inherited ExecuteVerb(Index);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TJvValidatorEditor.GetVerb(Index: Integer): string;
|
||||||
|
begin
|
||||||
|
Result := RsJvValidatorsItemsEditorEllipsis;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TJvValidatorEditor.GetVerbCount: Integer;
|
||||||
|
begin
|
||||||
|
Result := 1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
//== TfrmValidatorsEditor ====================================================
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.FormCreate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
AddValidatorClasses;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.Activated;
|
||||||
|
var
|
||||||
|
I: Integer;
|
||||||
|
Index: Integer;
|
||||||
|
begin
|
||||||
|
if FFilling then
|
||||||
|
Exit;
|
||||||
|
FFilling := True;
|
||||||
|
try
|
||||||
|
Index := lbValidators.ItemIndex;
|
||||||
|
lbValidators.Items.BeginUpdate;
|
||||||
|
try
|
||||||
|
ClearValidators;
|
||||||
|
if FValidator <> nil then
|
||||||
|
for I := 0 to FValidator.Count - 1 do
|
||||||
|
AddExisting(FValidator.Items[I]);
|
||||||
|
|
||||||
|
if lbValidators.Items.Count = 0 then
|
||||||
|
Index := -1
|
||||||
|
else
|
||||||
|
if (Index >= lbValidators.Items.Count) then
|
||||||
|
Index := 0;
|
||||||
|
lbValidators.ItemIndex := Index;
|
||||||
|
finally
|
||||||
|
lbValidators.Items.EndUpdate;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
FFilling := False;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.ItemDeleted(Item: TPersistent);
|
||||||
|
var
|
||||||
|
I, J: Integer;
|
||||||
|
begin
|
||||||
|
if not (csDestroying in ComponentState) then
|
||||||
|
begin
|
||||||
|
if Item = Validator then
|
||||||
|
begin
|
||||||
|
Validator := nil;
|
||||||
|
ClearValidators;
|
||||||
|
Close;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
lbValidators.Items.BeginUpdate;
|
||||||
|
try
|
||||||
|
for I := 0 to lbValidators.Items.Count - 1 do
|
||||||
|
if Item = lbValidators.Items.Objects[I] then
|
||||||
|
begin
|
||||||
|
J := lbValidators.ItemIndex;
|
||||||
|
lbValidators.Items.Delete(I);
|
||||||
|
if lbValidators.ItemIndex < 0 then
|
||||||
|
lbValidators.ItemIndex := J - 1;
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
lbValidators.Items.EndUpdate;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
UpdateCaption;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.OnComponentRenamed(AComponent: TComponent);
|
||||||
|
var
|
||||||
|
I: Integer;
|
||||||
|
begin
|
||||||
|
I := lbValidators.Items.IndexOfObject(AComponent);
|
||||||
|
if I >= 0 then
|
||||||
|
lbValidators.Items[I] := AComponent.Name;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.OnGetSelection(
|
||||||
|
const ASelection: TPersistentSelectionList);
|
||||||
|
begin
|
||||||
|
if not Assigned(ASelection) then
|
||||||
|
Exit;
|
||||||
|
if ASelection.Count > 0 then
|
||||||
|
ASelection.Clear;
|
||||||
|
if lbValidators.ItemIndex >= 0 then
|
||||||
|
ASelection.Add(TPersistent(lbValidators.Items.Objects[lbValidators.ItemIndex]));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.OnSetSelection(
|
||||||
|
const ASelection: TPersistentSelectionList);
|
||||||
|
begin
|
||||||
|
if Assigned(ASelection) then
|
||||||
|
if ASelection.Count > 0 then
|
||||||
|
lbValidators.ItemIndex := lbValidators.Items.IndexOfObject(ASelection.Items[0])
|
||||||
|
else
|
||||||
|
lbValidators.ItemIndex := -1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.UpdateItem(Index: Integer);
|
||||||
|
var
|
||||||
|
I: Integer;
|
||||||
|
begin
|
||||||
|
with lbValidators do
|
||||||
|
if (Index < 0) or (Index >= Items.Count) then
|
||||||
|
for I := 0 to Items.Count - 1 do
|
||||||
|
Items[I] := TComponent(Items.Objects[I]).Name
|
||||||
|
else
|
||||||
|
Items[Index] := TComponent(Items.Objects[Index]).Name;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TfrmValidatorsEditor.AddExisting(Validator: TJvBaseValidator): Integer;
|
||||||
|
begin
|
||||||
|
Result := lbValidators.Items.AddObject(Validator.Name, Validator);
|
||||||
|
Designer.PropertyEditorHook.PersistentAdded(Validator, True);
|
||||||
|
if not FFilling then
|
||||||
|
begin
|
||||||
|
lbValidators.ItemIndex := Result;
|
||||||
|
lbValidatorsClick(nil);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TfrmValidatorsEditor.AddNew(ValidatorClass: TJvBaseValidatorClass): Integer;
|
||||||
|
var
|
||||||
|
V: TJvBaseValidator;
|
||||||
|
begin
|
||||||
|
V := ValidatorClass.Create(FValidator.Owner);
|
||||||
|
try
|
||||||
|
V.Name := Designer.UniqueName(V.ClassName);
|
||||||
|
FValidator.Insert(V);
|
||||||
|
Result := AddExisting(V);
|
||||||
|
except
|
||||||
|
V.Free;
|
||||||
|
raise;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.ClearValidators;
|
||||||
|
begin
|
||||||
|
lbValidators.Items.Clear;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.Delete(Index: Integer);
|
||||||
|
var
|
||||||
|
V: TJvBaseValidator;
|
||||||
|
begin
|
||||||
|
with lbValidators do
|
||||||
|
if (Index > -1) and (Index < Items.Count) then
|
||||||
|
begin
|
||||||
|
V := TJvBaseValidator(Items.Objects[Index]);
|
||||||
|
FValidator.Remove(V);
|
||||||
|
V.Free;
|
||||||
|
Designer.Modified;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.SelectItem(AObject: TPersistent);
|
||||||
|
begin
|
||||||
|
Designer.SelectOnlyThisComponent(TComponent(AObject));
|
||||||
|
Designer.Modified;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.SetValidator(const Value: TJvValidators);
|
||||||
|
begin
|
||||||
|
FValidator := Value;
|
||||||
|
Activated;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.UpdateCaption;
|
||||||
|
begin
|
||||||
|
Caption := RsJvValidatorItemsEditorEllipsis;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.FormClose(Sender: TObject;
|
||||||
|
var AAction: TCloseAction);
|
||||||
|
begin
|
||||||
|
AAction := caFree;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.lbValidatorsClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if lbValidators.ItemIndex > -1 then
|
||||||
|
with lbValidators do
|
||||||
|
SelectItem(TJvBaseValidator(Items.Objects[ItemIndex]));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.alEditorUpdate(AAction: TBasicAction;
|
||||||
|
var Handled: Boolean);
|
||||||
|
begin
|
||||||
|
acDelete.Enabled := lbValidators.ItemIndex > -1;
|
||||||
|
acMoveUp.Enabled := lbValidators.ItemIndex > 0;
|
||||||
|
acMoveDown.Enabled := acDelete.Enabled and
|
||||||
|
(lbValidators.ItemIndex < lbValidators.Items.Count - 1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.acDeleteExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Delete(lbValidators.ItemIndex);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.acMoveUpExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
I: Integer;
|
||||||
|
begin
|
||||||
|
with lbValidators do
|
||||||
|
begin
|
||||||
|
I := ItemIndex;
|
||||||
|
Items.Exchange(I, I - 1);
|
||||||
|
FValidator.Exchange(I, I - 1);
|
||||||
|
Designer.Modified;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.acMoveDownExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
I: Integer;
|
||||||
|
begin
|
||||||
|
with lbValidators do
|
||||||
|
begin
|
||||||
|
I := ItemIndex;
|
||||||
|
Items.Exchange(I, I + 1);
|
||||||
|
FValidator.Exchange(I, I + 1);
|
||||||
|
Designer.Modified;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.DoAddNewValidator(Sender: TObject);
|
||||||
|
begin
|
||||||
|
with Sender as TAction do
|
||||||
|
AddNew(TJvBaseValidatorClass(Tag));
|
||||||
|
end;
|
||||||
|
|
||||||
|
type
|
||||||
|
TJvBaseValidatorAccess = class(TJvBaseValidator);
|
||||||
|
|
||||||
|
procedure TfrmValidatorsEditor.AddValidatorClasses;
|
||||||
|
var
|
||||||
|
I, J, K: Integer;
|
||||||
|
A: TAction;
|
||||||
|
M: TMenuItem;
|
||||||
|
AName: string;
|
||||||
|
AClass: TJvBaseValidatorClass = nil;
|
||||||
|
begin
|
||||||
|
J := TJvBaseValidatorAccess.BaseValidatorsCount;
|
||||||
|
K := 0;
|
||||||
|
for I := 0 to J - 1 do
|
||||||
|
begin
|
||||||
|
TJvBaseValidatorAccess.GetBaseValidatorInfo(I, AName, AClass);
|
||||||
|
if AName = '' then
|
||||||
|
begin
|
||||||
|
Inc(K);
|
||||||
|
Continue;
|
||||||
|
end;
|
||||||
|
A := TAction.Create(Self);
|
||||||
|
A.Caption := AName;
|
||||||
|
A.Tag := NativeInt(AClass);
|
||||||
|
A.ImageIndex := 0;
|
||||||
|
if I - K < 9 then
|
||||||
|
A.ShortCut := ShortCut(Ord('0') + I + 1 - K, [ssCtrl]);
|
||||||
|
A.OnExecute := @DoAddNewValidator;
|
||||||
|
M := TMenuItem.Create(popNew);
|
||||||
|
M.Action := A;
|
||||||
|
if I = 0 then
|
||||||
|
begin
|
||||||
|
M.Default := True;
|
||||||
|
btnNew.Action := A;
|
||||||
|
end;
|
||||||
|
popNew.Items.Add(M);
|
||||||
|
M := TMenuItem.Create(popForm);
|
||||||
|
M.Action := A;
|
||||||
|
if I = 0 then
|
||||||
|
M.Default := True;
|
||||||
|
popForm.Items.Insert(I,M);
|
||||||
|
end;
|
||||||
|
if J < 2 then
|
||||||
|
btnNew.Style := tbsButton
|
||||||
|
else
|
||||||
|
btnNew.Style := tbsDropDown;
|
||||||
|
ToolBar1.Width := 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
constructor TfrmValidatorsEditor.Create(TheOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited Create(TheOwner);
|
||||||
|
if Assigned(GlobalDesignHook) then
|
||||||
|
begin
|
||||||
|
GlobalDesignHook.AddHandlerComponentRenamed(@OnComponentRenamed);
|
||||||
|
GlobalDesignHook.AddHandlerPersistentDeleting(@ItemDeleted);
|
||||||
|
GlobalDesignHook.AddHandlerGetSelection(@OnGetSelection);
|
||||||
|
GlobalDesignHook.AddHandlerSetSelection(@OnSetSelection);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TfrmValidatorsEditor.Destroy;
|
||||||
|
begin
|
||||||
|
if Assigned(GlobalDesignHook) then
|
||||||
|
begin
|
||||||
|
GlobalDesignHook.AddHandlerComponentRenamed(@OnComponentRenamed);
|
||||||
|
GlobalDesignHook.RemoveHandlerPersistentDeleting(@ItemDeleted);
|
||||||
|
GlobalDesignHook.RemoveHandlerGetSelection(@OnGetSelection);
|
||||||
|
GlobalDesignHook.RemoveHandlerSetSelection(@OnSetSelection);
|
||||||
|
end;
|
||||||
|
inherited Destroy;
|
||||||
|
end;
|
||||||
|
|
||||||
|
//=== { TJvPropertyValidateProperty } ========================================
|
||||||
|
|
||||||
|
function TJvPropertyValidateProperty.GetAttributes: TPropertyAttributes;
|
||||||
|
begin
|
||||||
|
Result := [paValueList, paSortList];
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvPropertyValidateProperty.GetValues(Proc: TGetStrProc);
|
||||||
|
var
|
||||||
|
PropList: PPropList;
|
||||||
|
PropInfo: PPropInfo;
|
||||||
|
I, J: Integer;
|
||||||
|
C: TControl;
|
||||||
|
V:TJvBaseValidator;
|
||||||
|
begin
|
||||||
|
if not (GetComponent(0) is TJvBaseValidator) then
|
||||||
|
Exit;
|
||||||
|
V := TJvBaseValidator(GetComponent(0));
|
||||||
|
C := V.ControlToValidate;
|
||||||
|
if C = nil then
|
||||||
|
Exit;
|
||||||
|
J := GetPropList(PTypeInfo(C.ClassInfo), ValidKinds, nil);
|
||||||
|
if J > 0 then
|
||||||
|
begin
|
||||||
|
GetMem(PropList, J * SizeOf(Pointer));
|
||||||
|
J := GetPropList(PTypeInfo(C.ClassInfo), ValidKinds, PropList);
|
||||||
|
if J > 0 then
|
||||||
|
try
|
||||||
|
if V.GetDataLink(C) <> nil then
|
||||||
|
Proc(cValidatorsDBValue);
|
||||||
|
for I := 0 to J - 1 do
|
||||||
|
begin
|
||||||
|
PropInfo := PropList^[I];
|
||||||
|
if (PropInfo <> nil) and (PropInfo^.PropType^.Kind in ValidKinds) then
|
||||||
|
Proc(PropInfo^.Name);
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
FreeMem(PropList);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
//=== { TJvPropertyToCompareProperty } =======================================
|
||||||
|
|
||||||
|
function TJvPropertyToCompareProperty.GetAttributes: TPropertyAttributes;
|
||||||
|
begin
|
||||||
|
Result := [paValueList, paSortList];
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TJvPropertyToCompareProperty.GetValues(Proc: TGetStrProc);
|
||||||
|
var
|
||||||
|
PropList: PPropList;
|
||||||
|
PropInfo: PPropInfo;
|
||||||
|
I, J: Integer;
|
||||||
|
C: TControl;
|
||||||
|
V:TJvControlsCompareValidator;
|
||||||
|
begin
|
||||||
|
if not (GetComponent(0) is TJvControlsCompareValidator) then
|
||||||
|
Exit;
|
||||||
|
V := TJvControlsCompareValidator(GetComponent(0));
|
||||||
|
C := V.CompareToControl;
|
||||||
|
if C = nil then
|
||||||
|
Exit;
|
||||||
|
J := GetPropList(PTypeInfo(C.ClassInfo), ValidKinds, nil);
|
||||||
|
if J > 0 then
|
||||||
|
begin
|
||||||
|
GetMem(PropList, J * SizeOf(Pointer));
|
||||||
|
J := GetPropList(PTypeInfo(C.ClassInfo), ValidKinds, PropList);
|
||||||
|
if J > 0 then
|
||||||
|
try
|
||||||
|
|
||||||
|
if V.GetDataLink(C) <> nil then
|
||||||
|
Proc(cValidatorsDBValue);
|
||||||
|
|
||||||
|
for I := 0 to J - 1 do
|
||||||
|
begin
|
||||||
|
PropInfo := PropList^[I];
|
||||||
|
if (PropInfo <> nil) and (PropInfo^.PropType^.Kind in ValidKinds) then
|
||||||
|
Proc(PropInfo^.Name);
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
FreeMem(PropList);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
Reference in New Issue
Block a user