mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-22 16:19:36 +02:00
IDE: adding frame to form: adding published var, unit and package
git-svn-id: trunk@15692 -
This commit is contained in:
parent
30a2dc2ee2
commit
085ddbcdac
@ -2310,7 +2310,7 @@ begin
|
||||
AnUnitInfo:=AnUnitInfo.NextUnitWithComponent;
|
||||
end;
|
||||
end;
|
||||
DebugLn(['TCustomFormEditor.JITListFindClass Searched=',ComponentClassName,' Found=',DbgSName(ComponentClass)]);
|
||||
//DebugLn(['TCustomFormEditor.JITListFindClass Searched=',ComponentClassName,' Found=',DbgSName(ComponentClass)]);
|
||||
end;
|
||||
|
||||
function TCustomFormEditor.GetDesignerBaseClasses(Index: integer
|
||||
|
12
ide/main.pp
12
ide/main.pp
@ -14063,6 +14063,7 @@ var
|
||||
ActiveUnitInfo: TUnitInfo;
|
||||
Ancestor: TComponent;
|
||||
ComponentClassNames: TStringList;
|
||||
ClassUnitInfo: TUnitInfo;
|
||||
begin
|
||||
DebugLn('TMainIDE.OnPropHookPersistentAdded A ',dbgsName(APersistent));
|
||||
ADesigner:=nil;
|
||||
@ -14072,9 +14073,12 @@ begin
|
||||
AComponent:=nil;
|
||||
RegComp:=IDEComponentPalette.FindComponent(APersistent.ClassName);
|
||||
if (RegComp=nil) and (AComponent<>nil) then begin
|
||||
DebugLn('TMainIDE.OnPropHookPersistentAdded ',APersistent.ClassName,
|
||||
' not registered');
|
||||
exit;
|
||||
ClassUnitInfo:=Project1.UnitWithComponentClass(TComponentClass(APersistent.ClassType));
|
||||
if ClassUnitInfo=nil then begin
|
||||
DebugLn('TMainIDE.OnPropHookPersistentAdded ',APersistent.ClassName,
|
||||
' not registered');
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
if AComponent<>nil then begin
|
||||
// create unique name
|
||||
@ -14091,7 +14095,7 @@ begin
|
||||
ADesigner:=FindRootDesigner(AComponent) as TDesigner;
|
||||
end;
|
||||
|
||||
if RegComp<>nil then begin
|
||||
if (RegComp<>nil) or (ClassUnitInfo<>nil) then begin
|
||||
if not BeginCodeTool(ADesigner,ActiveSrcEdit,ActiveUnitInfo,
|
||||
[ctfSwitchToFormSource])
|
||||
then exit;
|
||||
|
@ -715,6 +715,7 @@ type
|
||||
function UnitWithEditorIndex(Index:integer): TUnitInfo;
|
||||
function UnitWithComponent(AComponent: TComponent): TUnitInfo;
|
||||
function UnitWithComponentClass(AClass: TComponentClass): TUnitInfo;
|
||||
function UnitWithComponentClassName(const AClassName: string): TUnitInfo;
|
||||
function UnitWithComponentName(AComponentName: String): TUnitInfo;
|
||||
function UnitComponentInheritingFrom(AClass: TComponentClass;
|
||||
Ignore: TUnitInfo): TUnitInfo;
|
||||
@ -4172,6 +4173,15 @@ begin
|
||||
Result:=Result.fNext[uilWithComponent];
|
||||
end;
|
||||
|
||||
function TProject.UnitWithComponentClassName(const AClassName: string
|
||||
): TUnitInfo;
|
||||
begin
|
||||
Result := fFirst[uilWithComponent];
|
||||
while (Result<>nil)
|
||||
and (SysUtils.CompareText(Result.Component.ClassName, AClassName) <> 0) do
|
||||
Result := Result.fNext[uilWithComponent];
|
||||
end;
|
||||
|
||||
function TProject.UnitWithComponentName(AComponentName: String): TUnitInfo;
|
||||
begin
|
||||
Result := fFirst[uilPartOfProject];
|
||||
|
@ -2860,29 +2860,34 @@ var
|
||||
RegComp: TRegisteredComponent;
|
||||
NewUnitName: String;
|
||||
PkgFile: TPkgFile;
|
||||
ClassUnitInfo: TUnitInfo;
|
||||
begin
|
||||
for i:=0 to ComponentClassnames.Count-1 do begin
|
||||
//DebugLn(['CollectNeededUnitnamesAndPackages ComponentClassnames[i]=',ComponentClassnames[i]]);
|
||||
RegComp:=IDEComponentPalette.FindComponent(ComponentClassnames[i]);
|
||||
NewUnitName:='';
|
||||
if (RegComp<>nil) then begin
|
||||
NewUnitName:='';
|
||||
if RegComp.ComponentClass<>nil then
|
||||
NewUnitName:=GetClassUnitName(RegComp.ComponentClass);
|
||||
//DebugLn(['CollectNeededUnitnamesAndPackages AAA1 NewUnitName=',NewUnitName]);
|
||||
if NewUnitName='' then
|
||||
NewUnitName:=RegComp.GetUnitName;
|
||||
if (NewUnitName<>'') and (UnitNames.IndexOf(NewUnitName)<0) then begin
|
||||
// new needed unit
|
||||
UnitNames.Add(NewUnitName);
|
||||
// find package
|
||||
PkgFile:=PackageGraph.FindUnitInAllPackages(NewUnitName,true);
|
||||
//DebugLn(['CollectNeededUnitnamesAndPackages AAA2 PkgFile=',PkgFile<>nil]);
|
||||
if (PkgFile=nil) and (RegComp is TPkgComponent) then begin
|
||||
PkgFile:=TPkgComponent(RegComp).PkgFile;
|
||||
if (PkgFile<>nil) and (PkgFile.LazPackage<>nil)
|
||||
and (Packages.IndexOf(PkgFile.LazPackage)<0) then
|
||||
Packages.Add(PkgFile.LazPackage);
|
||||
end;
|
||||
end else begin
|
||||
ClassUnitInfo:=Project1.UnitWithComponentClassName(ComponentClassnames[i]);
|
||||
if ClassUnitInfo<>nil then
|
||||
NewUnitName:=ClassUnitInfo.UnitName;
|
||||
end;
|
||||
if (NewUnitName<>'') and (UnitNames.IndexOf(NewUnitName)<0) then begin
|
||||
// new needed unit
|
||||
UnitNames.Add(NewUnitName);
|
||||
// find package
|
||||
PkgFile:=PackageGraph.FindUnitInAllPackages(NewUnitName,true);
|
||||
//DebugLn(['CollectNeededUnitnamesAndPackages AAA2 PkgFile=',PkgFile<>nil]);
|
||||
if (PkgFile=nil) and (RegComp is TPkgComponent) then begin
|
||||
PkgFile:=TPkgComponent(RegComp).PkgFile;
|
||||
if (PkgFile<>nil) and (PkgFile.LazPackage<>nil)
|
||||
and (Packages.IndexOf(PkgFile.LazPackage)<0) then
|
||||
Packages.Add(PkgFile.LazPackage);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user