RTTIControls: Update property filters with types from FPC 3.2.2, including UnicodeString. Issue #32545.

This commit is contained in:
Juha 2023-06-20 03:14:34 +03:00
parent 71dc7b718b
commit 444058951b

View File

@ -170,8 +170,7 @@ Type
function GetSetElementValue(const AliasName: string): boolean; function GetSetElementValue(const AliasName: string): boolean;
procedure SetSetElementValue(const AliasName: string; NewValue: boolean); procedure SetSetElementValue(const AliasName: string; NewValue: boolean);
function GetIndexOfSetElement(const AliasName: string): integer; function GetIndexOfSetElement(const AliasName: string): integer;
function GetSetTypeData(out CompData: PTypeInfo; function GetSetTypeData(out CompData: PTypeInfo; out TypeData: PTypeData): boolean;
out TypeData: PTypeData): boolean;
public public
property AliasValues: TAliasStrings read FAliasValues; property AliasValues: TAliasStrings read FAliasValues;
property CanModify: boolean read GetCanModify; property CanModify: boolean read GetCanModify;
@ -1443,8 +1442,7 @@ Type
end; end;
function GetPropertyLinkOfComponent(AComponent: TComponent function GetPropertyLinkOfComponent(AComponent: TComponent): TCustomPropertyLink;
): TCustomPropertyLink;
procedure SaveActivePropertyLink(AForm: TCustomForm); procedure SaveActivePropertyLink(AForm: TCustomForm);
procedure CreateEnumAliasValues(EnumType: PTypeInfo; List: TStrings; procedure CreateEnumAliasValues(EnumType: PTypeInfo; List: TStrings;
AStringArray: PString); AStringArray: PString);
@ -1583,8 +1581,7 @@ begin
InvalidateEditor; InvalidateEditor;
end; end;
procedure TCustomPropertyLink.SetOptions( procedure TCustomPropertyLink.SetOptions(const NewOptions: TPropertyLinkOptions);
const NewOptions: TPropertyLinkOptions);
var var
ChangedOptions: TPropertyLinkOptions; ChangedOptions: TPropertyLinkOptions;
begin begin
@ -2051,8 +2048,7 @@ begin
end; end;
end; end;
function TCustomPropertyLink.GetSetElementValue(const AliasName: string function TCustomPropertyLink.GetSetElementValue(const AliasName: string): boolean;
): boolean;
var var
CompData: PTypeInfo; CompData: PTypeInfo;
TypeData: PTypeData; TypeData: PTypeData;
@ -2090,8 +2086,7 @@ begin
end; end;
end; end;
function TCustomPropertyLink.GetIndexOfSetElement(const AliasName: string function TCustomPropertyLink.GetIndexOfSetElement(const AliasName: string): integer;
): integer;
var var
CompData: PTypeInfo; CompData: PTypeInfo;
TypeData: PTypeData; TypeData: PTypeData;
@ -2143,8 +2138,7 @@ begin
FPropEdits.Add(Prop); FPropEdits.Add(Prop);
end; end;
function TPropertyNamePropertyEditor.TestEditor(const Prop: TPropertyEditor function TPropertyNamePropertyEditor.TestEditor(const Prop: TPropertyEditor): boolean;
): boolean;
var var
i: Integer; i: Integer;
CurPersistent: TPersistent; CurPersistent: TPersistent;
@ -2265,8 +2259,7 @@ end;
{ TPropLinkAliasPropertyEditor } { TPropLinkAliasPropertyEditor }
function TPropLinkAliasPropertyEditor.CreateDlg(s: TStrings function TPropLinkAliasPropertyEditor.CreateDlg(s: TStrings): TStringsPropEditorDlg;
): TStringsPropEditorDlg;
begin begin
if s=nil then ; if s=nil then ;
Result:=TAliasStringsPropEditorDlg.Create(Application); Result:=TAliasStringsPropEditorDlg.Create(Application);
@ -2306,11 +2299,13 @@ constructor TTICustomEdit.Create(TheOwner: TComponent);
begin begin
inherited Create(TheOwner); inherited Create(TheOwner);
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,}tkInteger,tkChar,tkEnumeration, FLink.Filter:=[{tkUnknown,}tkInteger,tkChar,tkEnumeration,tkFloat,
tkFloat,{tkSet,tkMethod,}tkSString,tkLString,tkAString, {tkSet,tkMethod,}tkSString,tkLString,tkAString,
tkWString,tkVariant,{tkArray,tkRecord,tkInterface,} tkWString,tkVariant,{tkArray,tkRecord,tkInterface,
{tkClass,tkObject,}tkWChar,tkBool,tkInt64, tkClass,tkObject,}tkWChar,tkBool,tkInt64,tkQWord,
tkQWord{,tkDynArray,tkInterfaceRaw}]; {tkDynArray,tkInterfaceRaw,tkProcVar,}tkUString,tkUChar
{tkHelper,tkFile,tkClassRef,tkPointer}];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
FLink.OnSaveToProperty:=@LinkSaveToProperty; FLink.OnSaveToProperty:=@LinkSaveToProperty;
end; end;
@ -2459,11 +2454,12 @@ constructor TTICustomComboBox.Create(TheOwner: TComponent);
begin begin
inherited Create(TheOwner); inherited Create(TheOwner);
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,}tkInteger,tkChar,tkEnumeration, FLink.Filter:=[{tkUnknown,}tkInteger,tkChar,tkEnumeration,tkFloat,
tkFloat,{tkSet,}tkMethod,tkSString,tkLString,tkAString, {tkSet,}tkMethod,tkSString,tkLString,tkAString,
tkWString,tkVariant,{tkArray,tkRecord,tkInterface,} tkWString,tkVariant,{tkArray,tkRecord,tkInterface,}
tkClass,tkObject,tkWChar,tkBool,tkInt64, tkClass,tkObject,tkWChar,tkBool,tkInt64,tkQWord,
tkQWord{,tkDynArray,tkInterfaceRaw}]; {tkDynArray,tkInterfaceRaw,}tkProcVar,tkUString,tkUChar,
tkHelper,tkFile,tkClassRef,tkPointer];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
FLink.OnSaveToProperty:=@LinkSaveToProperty; FLink.OnSaveToProperty:=@LinkSaveToProperty;
FLink.OnEditorChanged:=@LinkEditorChanged; FLink.OnEditorChanged:=@LinkEditorChanged;
@ -2548,11 +2544,12 @@ begin
FLinkValueFalse:='False'; FLinkValueFalse:='False';
FLinkValueTrue:='True'; FLinkValueTrue:='True';
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,}tkInteger{,tkChar},tkEnumeration, FLink.Filter:=[{tkUnknown,}tkInteger,{tkChar,}tkEnumeration,{tkFloat,}
{tkFloat,}tkSet,{tkMethod,}tkSString,tkLString,tkAString, tkSet,{tkMethod,}tkSString,tkLString,tkAString,
tkWString,tkVariant,{tkArray,tkRecord,tkInterface,} tkWString,tkVariant,{tkArray,tkRecord,tkInterface,
{tkClass,tkObject,}tkWChar,tkBool,tkInt64, tkClass,tkObject,}tkWChar,tkBool,tkInt64,tkQWord,
tkQWord{,tkDynArray,tkInterfaceRaw}]; {tkDynArray,tkInterfaceRaw,tkProcVar,}tkUString,tkUChar
{tkHelper,tkFile,tkClassRef,tkPointer}];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
FLink.OnSaveToProperty:=@LinkSaveToProperty; FLink.OnSaveToProperty:=@LinkSaveToProperty;
FLink.OnEditorChanged:=@LinkEditorChanged; FLink.OnEditorChanged:=@LinkEditorChanged;
@ -2609,11 +2606,12 @@ constructor TTICustomLabel.Create(TheOwner: TComponent);
begin begin
inherited Create(TheOwner); inherited Create(TheOwner);
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,}tkInteger,tkChar,tkEnumeration, FLink.Filter:=[{tkUnknown,}tkInteger,tkChar,tkEnumeration,tkFloat,
tkFloat,{tkSet,tkMethod,}tkSString,tkLString,tkAString, {tkSet,tkMethod,}tkSString,tkLString,tkAString,
tkWString,tkVariant,{tkArray,tkRecord,tkInterface,} tkWString,tkVariant,{tkArray,tkRecord,tkInterface,
{tkClass,tkObject,}tkWChar,tkBool,tkInt64, tkClass,tkObject,}tkWChar,tkBool,tkInt64,tkQWord,
tkQWord{,tkDynArray,tkInterfaceRaw}]; {tkDynArray,tkInterfaceRaw,tkProcVar,}tkUString,tkUChar
{tkHelper,tkFile,tkClassRef,tkPointer}];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
end; end;
@ -2648,11 +2646,12 @@ constructor TTICustomGroupbox.Create(TheOwner: TComponent);
begin begin
inherited Create(TheOwner); inherited Create(TheOwner);
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,}tkInteger,tkChar,tkEnumeration, FLink.Filter:=[{tkUnknown,}tkInteger,tkChar,tkEnumeration,tkFloat,
tkFloat,{tkSet,tkMethod,}tkSString,tkLString,tkAString, {tkSet,tkMethod,}tkSString,tkLString,tkAString,
tkWString,tkVariant,{tkArray,tkRecord,tkInterface,} tkWString,tkVariant,{tkArray,tkRecord,tkInterface,
{tkClass,tkObject,}tkWChar,tkBool,tkInt64, tkClass,tkObject,}tkWChar,tkBool,tkInt64,tkQWord,
tkQWord{,tkDynArray,tkInterfaceRaw}]; {tkDynArray,tkInterfaceRaw,tkProcVar,}tkUString,tkUChar
{tkHelper,tkFile,tkClassRef,tkPointer}];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
end; end;
@ -2702,11 +2701,12 @@ constructor TTICustomRadioGroup.Create(TheOwner: TComponent);
begin begin
inherited Create(TheOwner); inherited Create(TheOwner);
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,}tkInteger,{tkChar,}tkEnumeration, FLink.Filter:=[{tkUnknown,}tkInteger,{tkChar,}tkEnumeration,{tkFloat,}
{tkFloat,tkSet,tkMethod,}tkSString,tkLString,tkAString, {tkSet,tkMethod,}tkSString,tkLString,tkAString,
tkWString,{tkVariant,tkArray,tkRecord,tkInterface,} tkWString,{tkVariant,tkArray,tkRecord,tkInterface,
{tkClass,tkObject,tkWChar,}tkBool{,tkInt64,} tkClass,tkObject,tkWChar,}tkBool,{tkInt64,tkQWord,
{tkQWord,tkDynArray,tkInterfaceRaw}]; tkDynArray,tkInterfaceRaw,tkProcVar,}tkUString{,tkUChar,
tkHelper,tkFile,tkClassRef,tkPointer}];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
FLink.OnSaveToProperty:=@LinkSaveToProperty; FLink.OnSaveToProperty:=@LinkSaveToProperty;
FLink.CollectValues:=true; FLink.CollectValues:=true;
@ -2770,11 +2770,12 @@ constructor TTICustomCheckGroup.Create(TheOwner: TComponent);
begin begin
inherited Create(TheOwner); inherited Create(TheOwner);
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,tkInteger,tkChar,tkEnumeration,} FLink.Filter:=[{tkUnknown,tkInteger,tkChar,tkEnumeration,tkFloat,}
{tkFloat,}tkSet{,tkMethod,tkSString,tkLString,tkAString,} tkSet{,tkMethod,tkSString,tkLString,tkAString,
{tkWString,tkVariant,tkArray,tkRecord,tkInterface,} tkWString,tkVariant,tkArray,tkRecord,tkInterface,
{tkClass,tkObject,tkWChar,tkBool,tkInt64,} tkClass,tkObject,tkWChar,tkBool,tkInt64,tkQWord,
{tkQWord,tkDynArray,tkInterfaceRaw}]; tkDynArray,tkInterfaceRaw,tkProcVar,tkUString,tkUChar,
tkHelper,tkFile,tkClassRef,tkPointer}];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
FLink.OnSaveToProperty:=@LinkSaveToProperty; FLink.OnSaveToProperty:=@LinkSaveToProperty;
FLink.CollectValues:=true; FLink.CollectValues:=true;
@ -2855,11 +2856,12 @@ constructor TTICustomMemo.Create(TheOwner: TComponent);
begin begin
inherited Create(TheOwner); inherited Create(TheOwner);
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,tkInteger,tkChar,tkEnumeration,} FLink.Filter:=[{tkUnknown,tkInteger,tkChar,tkEnumeration,tkFloat,
{tkFloat,tkSet,tkMethod,}tkSString,tkLString,tkAString, tkSet,tkMethod,}tkSString,tkLString,tkAString,
tkWString,{tkVariant,tkArray,tkRecord,tkInterface,} tkWString,{tkVariant,tkArray,tkRecord,tkInterface,}
tkClass{,tkObject,tkWChar,tkBool,tkInt64,} tkClass,{tkObject,tkWChar,tkBool,tkInt64,tkQWord,
{tkQWord,tkDynArray,tkInterfaceRaw}]; tkDynArray,tkInterfaceRaw,tkProcVar,}tkUString{,tkUChar,
tkHelper,tkFile,tkClassRef,tkPointer}];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
FLink.OnSaveToProperty:=@LinkSaveToProperty; FLink.OnSaveToProperty:=@LinkSaveToProperty;
FLink.OnTestEditor:=@LinkTestEditor; FLink.OnTestEditor:=@LinkTestEditor;
@ -2922,11 +2924,12 @@ constructor TTICustomCalendar.Create(TheOwner: TComponent);
begin begin
inherited Create(TheOwner); inherited Create(TheOwner);
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,tkInteger,tkChar,tkEnumeration,} FLink.Filter:=[{tkUnknown,tkInteger,tkChar,tkEnumeration,}tkFloat,
tkFloat,{tkSet,tkMethod,}tkSString,tkLString,tkAString, {tkSet,tkMethod,}tkSString,tkLString,tkAString,
tkWString{,tkVariant,tkArray,tkRecord,tkInterface,} tkWString,{tkVariant,tkArray,tkRecord,tkInterface,
{tkClass,tkObject,tkWChar,tkBool,tkInt64,} tkClass,tkObject,tkWChar,tkBool,tkInt64,tkQWord,
{tkQWord,tkDynArray,tkInterfaceRaw}]; tkDynArray,tkInterfaceRaw,tkProcVar,}tkUString{,tkUChar,
tkHelper,tkFile,tkClassRef,tkPointer}];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
FLink.OnSaveToProperty:=@LinkSaveToProperty; FLink.OnSaveToProperty:=@LinkSaveToProperty;
FLink.OnTestEditor:=@LinkTestEditor; FLink.OnTestEditor:=@LinkTestEditor;
@ -3050,11 +3053,12 @@ begin
inherited Create(TheOwner); inherited Create(TheOwner);
FUseRTTIMinMax:=true; FUseRTTIMinMax:=true;
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,}tkInteger,{tkChar,tkEnumeration,} FLink.Filter:=[{tkUnknown,}tkInteger,{tkChar,tkEnumeration,}tkFloat,
tkFloat,{tkSet,tkMethod,}tkSString,tkLString,tkAString, {tkSet,tkMethod,}tkSString,tkLString,tkAString,
tkWString{,tkVariant,tkArray,tkRecord,tkInterface,} tkWString,{tkVariant,tkArray,tkRecord,tkInterface,
{tkClass,tkObject,tkWChar,tkBool},tkInt64, tkClass,tkObject,tkWChar,tkBool,}tkInt64,tkQWord,
tkQWord{,tkDynArray,tkInterfaceRaw}]; {tkDynArray,tkInterfaceRaw,tkProcVar,}tkUString{,tkUChar,
tkHelper,tkFile,tkClassRef,tkPointer}];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
FLink.OnSaveToProperty:=@LinkSaveToProperty; FLink.OnSaveToProperty:=@LinkSaveToProperty;
FLink.OnEditorChanged:=@LinkEditorChanged; FLink.OnEditorChanged:=@LinkEditorChanged;
@ -3178,11 +3182,12 @@ begin
inherited Create(TheOwner); inherited Create(TheOwner);
FUseRTTIMinMax:=true; FUseRTTIMinMax:=true;
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,}tkInteger,{tkChar,tkEnumeration,} FLink.Filter:=[{tkUnknown,}tkInteger,{tkChar,tkEnumeration,}tkFloat,
tkFloat,{tkSet,tkMethod,}tkSString,tkLString,tkAString, {tkSet,tkMethod,}tkSString,tkLString,tkAString,
tkWString{,tkVariant,tkArray,tkRecord,tkInterface,} tkWString,{tkVariant,tkArray,tkRecord,tkInterface,
{tkClass,tkObject,tkWChar,tkBool},tkInt64, tkClass,tkObject,tkWChar,tkBool,}tkInt64,tkQWord,
tkQWord{,tkDynArray,tkInterfaceRaw}]; {tkDynArray,tkInterfaceRaw,tkProcVar,}tkUString{,tkUChar,
tkHelper,tkFile,tkClassRef,tkPointer}];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
FLink.OnSaveToProperty:=@LinkSaveToProperty; FLink.OnSaveToProperty:=@LinkSaveToProperty;
FLink.OnEditorChanged:=@LinkEditorChanged; FLink.OnEditorChanged:=@LinkEditorChanged;
@ -3242,11 +3247,12 @@ constructor TTICustomImage.Create(TheOwner: TComponent);
begin begin
inherited Create(TheOwner); inherited Create(TheOwner);
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,tkInteger,tkChar,tkEnumeration,} FLink.Filter:=[{tkUnknown,tkInteger,tkChar,tkEnumeration,tkFloat,
{tkFloat,tkSet,tkMethod,tkSString,tkLString,tkAString,} tkSet,tkMethod,tkSString,tkLString,tkAString,
{tkWString,tkVariant,tkArray,tkRecord,tkInterface,} tkWString,tkVariant,tkArray,tkRecord,tkInterface,}
tkClass{,tkObject,tkWChar,tkBool,tkInt64,} tkClass{,tkObject,tkWChar,tkBool,tkInt64,tkQWord,
{tkQWord,tkDynArray,tkInterfaceRaw}]; tkDynArray,tkInterfaceRaw,tkProcVar,tkUString,tkUChar,
tkHelper,tkFile,tkClassRef,tkPointer}];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
FLink.OnTestEditor:=@LinkTestEditor; FLink.OnTestEditor:=@LinkTestEditor;
end; end;
@ -3343,11 +3349,12 @@ begin
inherited Create(TheOwner); inherited Create(TheOwner);
FUseRTTIMinMax:=true; FUseRTTIMinMax:=true;
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,}tkInteger,{tkChar,tkEnumeration,} FLink.Filter:=[{tkUnknown,}tkInteger,{tkChar,tkEnumeration,}tkFloat,
tkFloat,{tkSet,tkMethod,}tkSString,tkLString,tkAString, {tkSet,tkMethod,}tkSString,tkLString,tkAString,
tkWString{,tkVariant,tkArray,tkRecord,tkInterface,} tkWString,{tkVariant,tkArray,tkRecord,tkInterface,
{tkClass,tkObject,tkWChar,tkBool,tkInt64,} tkClass,tkObject,tkWChar,tkBool,tkInt64,tkQWord,
{tkQWord,tkDynArray,tkInterfaceRaw}]; tkDynArray,tkInterfaceRaw,tkProcVar,}tkUString{,tkUChar,
tkHelper,tkFile,tkClassRef,tkPointer}];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
FLink.OnSaveToProperty:=@LinkSaveToProperty; FLink.OnSaveToProperty:=@LinkSaveToProperty;
FLink.OnEditorChanged:=@LinkEditorChanged; FLink.OnEditorChanged:=@LinkEditorChanged;
@ -3397,11 +3404,12 @@ constructor TTICustomMaskEdit.Create(TheOwner: TComponent);
begin begin
inherited Create(TheOwner); inherited Create(TheOwner);
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,}tkInteger,tkChar,tkEnumeration, FLink.Filter:=[{tkUnknown,}tkInteger,tkChar,tkEnumeration,tkFloat,
tkFloat,{tkSet,tkMethod,}tkSString,tkLString,tkAString, {tkSet,tkMethod,}tkSString,tkLString,tkAString,
tkWString,tkVariant,{tkArray,tkRecord,tkInterface,} tkWString,tkVariant,{tkArray,tkRecord,tkInterface,
{tkClass,tkObject,}tkWChar,tkBool,tkInt64, tkClass,tkObject,}tkWChar,tkBool,tkInt64,tkQWord,
tkQWord{,tkDynArray,tkInterfaceRaw}]; {tkDynArray,tkInterfaceRaw,tkProcVar,}tkUString,tkUChar
{tkHelper,tkFile,tkClassRef,tkPointer}];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
FLink.OnSaveToProperty:=@LinkSaveToProperty; FLink.OnSaveToProperty:=@LinkSaveToProperty;
end; end;
@ -3498,11 +3506,12 @@ constructor TTICustomCheckListBox.Create(TheOwner: TComponent);
begin begin
inherited Create(TheOwner); inherited Create(TheOwner);
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,tkInteger,tkChar,tkEnumeration,} FLink.Filter:=[{tkUnknown,tkInteger,tkChar,tkEnumeration,tkFloat,}
{tkFloat,}tkSet{,tkMethod,tkSString,tkLString,tkAString,} tkSet{,tkMethod,tkSString,tkLString,tkAString,
{tkWString,tkVariant,tkArray,tkRecord,tkInterface,} tkWString,tkVariant,tkArray,tkRecord,tkInterface,
{tkClass,tkObject,tkWChar,tkBool,tkInt64,} tkClass,tkObject,tkWChar,tkBool,tkInt64,tkQWord,
{tkQWord,tkDynArray,tkInterfaceRaw}]; tkDynArray,tkInterfaceRaw,tkProcVar,tkUString,tkUChar,
tkHelper,tkFile,tkClassRef,tkPointer}];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
FLink.OnSaveToProperty:=@LinkSaveToProperty; FLink.OnSaveToProperty:=@LinkSaveToProperty;
FLink.CollectValues:=true; FLink.CollectValues:=true;
@ -3618,11 +3627,13 @@ constructor TTICustomListBox.Create(TheOwner: TComponent);
begin begin
inherited Create(TheOwner); inherited Create(TheOwner);
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[tkUnknown,tkInteger,tkChar,tkEnumeration, FLink.Filter:=AllTypeKinds;
tkFloat,tkSet,tkMethod,tkSString,tkLString,tkAString, { [tkUnknown,tkInteger,tkChar,tkEnumeration,tkFloat,
tkSet,tkMethod,tkSString,tkLString,tkAString,
tkWString,tkVariant,tkArray,tkRecord,tkInterface, tkWString,tkVariant,tkArray,tkRecord,tkInterface,
tkClass,tkObject,tkWChar,tkBool,tkInt64, tkClass,tkObject,tkWChar,tkBool,tkInt64,tkQWord,
tkQWord,tkDynArray,tkInterfaceRaw]; tkDynArray,tkInterfaceRaw,tkProcVar,tkUString,tkUChar,
tkHelper,tkFile,tkClassRef,tkPointer]; }
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
FLink.OnSaveToProperty:=@LinkSaveToProperty; FLink.OnSaveToProperty:=@LinkSaveToProperty;
FLink.CollectValues:=true; FLink.CollectValues:=true;
@ -3702,11 +3713,12 @@ constructor TTICustomColorButton.Create(TheOwner: TComponent);
begin begin
inherited Create(TheOwner); inherited Create(TheOwner);
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,}tkInteger{,tkChar,tkEnumeration, FLink.Filter:=[{tkUnknown,}tkInteger{,tkChar,tkEnumeration,tkFloat,
tkFloat,tkSet,tkMethod,tkSString,tkLString,tkAString, tkSet,tkMethod,tkSString,tkLString,tkAString,
tkWString,tkVariant,tkArray,tkRecord,tkInterface, tkWString,tkVariant,tkArray,tkRecord,tkInterface,
tkClass,tkObject,tkWChar,tkBool,tkInt64, tkClass,tkObject,tkWChar,tkBool,tkInt64,tkQWord,
tkQWord,tkDynArray,tkInterfaceRaw}]; tkDynArray,tkInterfaceRaw,tkProcVar,tkUString,tkUChar,
tkHelper,tkFile,tkClassRef,tkPointer}];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
FLink.OnSaveToProperty:=@LinkSaveToProperty; FLink.OnSaveToProperty:=@LinkSaveToProperty;
FLink.OnTestEditor:=@LinkTestEditor; FLink.OnTestEditor:=@LinkTestEditor;
@ -4018,11 +4030,12 @@ begin
inherited Create(TheOwner); inherited Create(TheOwner);
FUseRTTIMinMax:=true; FUseRTTIMinMax:=true;
FLink:=TPropertyLink.Create(Self); FLink:=TPropertyLink.Create(Self);
FLink.Filter:=[{tkUnknown,}tkInteger,{tkChar,tkEnumeration,} FLink.Filter:=[{tkUnknown,}tkInteger,{tkChar,tkEnumeration,}tkFloat,
tkFloat,{tkSet,tkMethod,}tkSString,tkLString,tkAString, {tkSet,tkMethod,}tkSString,tkLString,tkAString,
tkWString{,tkVariant,tkArray,tkRecord,tkInterface,} tkWString,{tkVariant,tkArray,tkRecord,tkInterface,
{tkClass,tkObject,tkWChar,tkBool,tkInt64,} tkClass,tkObject,tkWChar,tkBool,tkInt64,tkQWord,
{tkQWord,tkDynArray,tkInterfaceRaw}]; tkDynArray,tkInterfaceRaw,tkProcVar,}tkUString{,tkUChar,
tkHelper,tkFile,tkClassRef,tkPointer}];
FLink.OnLoadFromProperty:=@LinkLoadFromProperty; FLink.OnLoadFromProperty:=@LinkLoadFromProperty;
FLink.OnSaveToProperty:=@LinkSaveToProperty; FLink.OnSaveToProperty:=@LinkSaveToProperty;
FLink.OnEditorChanged:=@LinkEditorChanged; FLink.OnEditorChanged:=@LinkEditorChanged;