IDE: open designer form: store the found fallback component classes

git-svn-id: trunk@40019 -
This commit is contained in:
mattias 2013-01-29 10:11:31 +00:00
parent 143f54346f
commit 91adfb4999
2 changed files with 11 additions and 0 deletions

View File

@ -243,6 +243,7 @@ type
TUnitInfo = class(TLazProjectFile)
private
FComponentFallbackClasses: TStrings;
FCustomDefaultHighlighter: boolean;
FDefaultSyntaxHighlighter: TLazSyntaxHighlighter;
FDisableI18NForLFM: boolean;
@ -425,6 +426,8 @@ type
property ComponentName: string read fComponentName write fComponentName;
property ComponentResourceName: string read fComponentResourceName
write fComponentResourceName;
property ComponentFallbackClasses: TStrings read FComponentFallbackClasses
write FComponentFallbackClasses; // classname to componentclass, for not registered classes in lfm
property ComponentState: TWindowState read FComponentState write FComponentState;
property ResourceBaseClass: TPFComponentBaseClass read FResourceBaseClass
write FResourceBaseClass;
@ -1487,6 +1490,7 @@ begin
FreeAndNil(FBookmarks);
Project:=nil;
FreeAndNil(FEditorInfoList);
FreeAndNil(FComponentFallbackClasses);
inherited Destroy;
end;

View File

@ -4058,9 +4058,16 @@ begin
DebugLn(['TLazSourceFileManager.LoadLFM DoLoadComponentDependencyHidden NestedClassName=',NestedClassName,' failed for ',AnUnitInfo.Filename]);
exit;
end;
if AncestorClass<>nil then
MissingClasses.Objects[i]:=TObject(Pointer(AncestorClass));
end;
end;
//DebugLn(['TLazSourceFileManager.LoadLFM had nested: ',AnUnitInfo.Filename]);
if AnUnitInfo.ComponentFallbackClasses<>nil then begin
AnUnitInfo.ComponentFallbackClasses.Free;
AnUnitInfo.ComponentFallbackClasses:=nil;
end;
AnUnitInfo.ComponentFallbackClasses:=MissingClasses;
end;
BinStream:=nil;