mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 23:59:10 +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
|
||||
|
@ -14063,6 +14063,7 @@ var
|
||||
ActiveUnitInfo: TUnitInfo;
|
||||
Ancestor: TComponent;
|
||||
ComponentClassNames: TStringList;
|
||||
ClassUnitInfo: TUnitInfo;
|
||||
begin
|
||||
DebugLn('TMainIDE.OnPropHookPersistentAdded A ',dbgsName(APersistent));
|
||||
ADesigner:=nil;
|
||||
@ -14072,10 +14073,13 @@ begin
|
||||
AComponent:=nil;
|
||||
RegComp:=IDEComponentPalette.FindComponent(APersistent.ClassName);
|
||||
if (RegComp=nil) and (AComponent<>nil) then begin
|
||||
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
|
||||
if AComponent.Name='' then
|
||||
@ -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,17 +2860,23 @@ 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]);
|
||||
if (RegComp<>nil) then begin
|
||||
NewUnitName:='';
|
||||
if (RegComp<>nil) then begin
|
||||
if RegComp.ComponentClass<>nil then
|
||||
NewUnitName:=GetClassUnitName(RegComp.ComponentClass);
|
||||
//DebugLn(['CollectNeededUnitnamesAndPackages AAA1 NewUnitName=',NewUnitName]);
|
||||
if NewUnitName='' then
|
||||
NewUnitName:=RegComp.GetUnitName;
|
||||
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);
|
||||
@ -2885,7 +2891,6 @@ var
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
Result:=mrOk;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user