rtti controls: TTIComboBox now keeps Items if the property does not provide a value list

git-svn-id: trunk@11782 -
This commit is contained in:
mattias 2007-08-10 18:49:43 +00:00
parent 217be5842e
commit fb10d9cb9c

View File

@ -160,7 +160,8 @@ Type
var MappedValues: TStrings; var MappedValues: TStrings;
UseAllExistingAlias, AddValuesWithoutAlias, UseAllExistingAlias, AddValuesWithoutAlias,
IfNoValuesAvailableAddAllAlias: boolean); IfNoValuesAvailableAddAllAlias: boolean);
procedure AssignCollectedAliasValuesTo(DestList: TStrings); procedure AssignCollectedAliasValuesTo(DestList: TStrings;
KeepIfNoneCollected: boolean = true);
function HasAliasValues: boolean; function HasAliasValues: boolean;
procedure BuildEnumAliasValues(AStringArray: PString); procedure BuildEnumAliasValues(AStringArray: PString);
public public
@ -1632,7 +1633,6 @@ end;
procedure TCustomPropertyLink.InvalidateEditor; procedure TCustomPropertyLink.InvalidateEditor;
begin begin
FreeThenNil(FCollectedValues);
FreeThenNil(FEditor); FreeThenNil(FEditor);
end; end;
@ -1990,14 +1990,16 @@ begin
AddValuesWithoutAlias,IfNoValuesAvailableAddAllAlias); AddValuesWithoutAlias,IfNoValuesAvailableAddAllAlias);
end; end;
procedure TCustomPropertyLink.AssignCollectedAliasValuesTo(DestList: TStrings); procedure TCustomPropertyLink.AssignCollectedAliasValuesTo(DestList: TStrings;
KeepIfNoneCollected: boolean);
var var
MappedValues: TStrings; MappedValues: TStrings;
begin begin
MappedValues:=nil; MappedValues:=nil;
MapCollectedValues(AliasValues,MappedValues,true,true,true); MapCollectedValues(AliasValues,MappedValues,true,true,true);
try try
DestList.Assign(MappedValues); if (MappedValues.Count>0) or (not KeepIfNoneCollected) then
DestList.Assign(MappedValues);
finally finally
MappedValues.Free; MappedValues.Free;
end; end;