1
0
mirror of synced 2024-11-21 21:43:49 +00:00

Fixed: reference to an enumeration is resolved as a simple type and turns into a Variant instead of a properly typed enumeration

This commit is contained in:
Mark van Renswoude 2011-10-12 10:47:37 +00:00
parent 66ce9ae1c9
commit 23d6e7e18e
3 changed files with 44 additions and 42 deletions

View File

@ -82,10 +82,6 @@ object MainForm: TMainForm
TabOrder = 2 TabOrder = 2
object spFile: TTabSheet object spFile: TTabSheet
TabVisible = False TabVisible = False
ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0
object lblFile: TLabel object lblFile: TLabel
Left = 8 Left = 8
Top = 7 Top = 7
@ -200,10 +196,10 @@ object MainForm: TMainForm
Style.HotTrack = False Style.HotTrack = False
Left = 264 Left = 264
Top = 60 Top = 60
PixelsPerInch = 96
end end
object LookAndFeel: TcxLookAndFeelController object LookAndFeel: TcxLookAndFeelController
Kind = lfFlat Kind = lfFlat
NativeStyle = True
Left = 368 Left = 368
Top = 60 Top = 60
end end

View File

@ -23,7 +23,7 @@ uses
cxTextEdit, cxTextEdit,
DataBindingHintsXML, DataBindingHintsXML,
XMLDataBindingGenerator, cxGraphics, cxLookAndFeelPainters; XMLDataBindingGenerator, cxGraphics, cxLookAndFeelPainters, cxClasses;
type type

View File

@ -812,7 +812,9 @@ begin
enumerationObject := TXMLDataBindingEnumeration.Create(Self, AElement, AElement.DataType.Enumerations, AElement.Name, False); enumerationObject := TXMLDataBindingEnumeration.Create(Self, AElement, AElement.DataType.Enumerations, AElement.Name, False);
ASchema.AddItem(enumerationObject); ASchema.AddItem(enumerationObject);
Result := enumerationObject; Result := enumerationObject;
end else if AElement.DataType.IsComplex then end else
begin
if AElement.DataType.IsComplex then
begin begin
{ Interface } { Interface }
interfaceObject := TXMLDataBindingInterface.Create(Self, AElement, AElement.Name); interfaceObject := TXMLDataBindingInterface.Create(Self, AElement, AElement.Name);
@ -857,6 +859,7 @@ begin
end; end;
end; end;
end; end;
end;
function TXMLDataBindingGenerator.ProcessElement(ASchema: TXMLDataBindingSchema; AAttribute: IXMLAttributeDef): TXMLDataBindingItem; function TXMLDataBindingGenerator.ProcessElement(ASchema: TXMLDataBindingSchema; AAttribute: IXMLAttributeDef): TXMLDataBindingItem;
@ -1177,7 +1180,10 @@ begin
end; end;
itUnresolved: itUnresolved:
begin
ResolveItem(ASchema, TXMLDataBindingUnresolvedItem(item)); ResolveItem(ASchema, TXMLDataBindingUnresolvedItem(item));
FreeAndNil(item);
end;
end; end;
end; end;
end; end;