mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-10-24 02:43:45 +02:00
IDE: TMainIDE.OnPropHookCreateMethod: todo
git-svn-id: trunk@55217 -
This commit is contained in:
parent
02d03fe47f
commit
549f824d8c
13
ide/main.pp
13
ide/main.pp
@ -12626,6 +12626,7 @@ var
|
||||
OldChange: Boolean;
|
||||
InheritedMethodPath, MethodClassName, ShortMethodName: String;
|
||||
UseRTTIForMethods, AddOverride: Boolean;
|
||||
MethodComponent: TComponent;
|
||||
begin
|
||||
Result.Code:=nil;
|
||||
Result.Data:=nil;
|
||||
@ -12633,7 +12634,7 @@ begin
|
||||
if not BeginCodeTool(ActiveSrcEdit,ActiveUnitInfo,[ctfSwitchToFormSource])
|
||||
then exit;
|
||||
{$IFDEF VerboseOnPropHookCreateMethod}
|
||||
debugln('');
|
||||
debugln(' ');
|
||||
debugln('[TMainIDE.OnPropHookCreateMethod] ************ ',AMethodName);
|
||||
DebugLn([' Persistent=',dbgsName(APersistent),' Unit=',GetClassUnitName(APersistent.ClassType),' Path=',APropertyPath]);
|
||||
{$ENDIF}
|
||||
@ -12643,9 +12644,10 @@ begin
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
MethodComponent:=ActiveUnitInfo.Component;
|
||||
if IsValidIdentPair(AMethodName,MethodClassName,ShortMethodName) then
|
||||
begin
|
||||
if CompareText(MethodClassName,ActiveUnitInfo.Component.ClassName)<>0 then
|
||||
if CompareText(MethodClassName,MethodComponent.ClassName)<>0 then
|
||||
begin
|
||||
debugln(['TMainIDE.PropHookCreateMethod wrong class AMethodName="',AMethodName,'" lookuproot=',DbgSName(ActiveUnitInfo.Component)]);
|
||||
raise Exception.Create('Invalid classname "'+AMethodName+'"');
|
||||
@ -12666,6 +12668,10 @@ begin
|
||||
{$IFDEF VerboseOnPropHookCreateMethod}
|
||||
debugln(['TMainIDE.OnPropHookCreateMethod CreatePublishedMethod ',ActiveUnitInfo.Source.Filename,' LookupRoot=',ActiveUnitInfo.Component.ClassName,' ShortMethodName="',ShortMethodName,'" PropertyUnit=',GetClassUnitName(APersistent.ClassType),' APropertyPath="',APropertyPath,'" CallInherited=',InheritedMethodPath]);
|
||||
{$ENDIF}
|
||||
if not AddOverride then begin
|
||||
// ToDo: check if there is already an ancestor method
|
||||
// The JITMethod must be created for that class
|
||||
end;
|
||||
r:=CodeToolBoss.CreatePublishedMethod(ActiveUnitInfo.Source,
|
||||
ActiveUnitInfo.Component.ClassName,ShortMethodName,
|
||||
ATypeInfo,UseRTTIForMethods,GetClassUnitName(APersistent.ClassType),
|
||||
@ -12675,8 +12681,7 @@ begin
|
||||
{$ENDIF}
|
||||
ApplyCodeToolChanges;
|
||||
if r then begin
|
||||
Result:=FormEditor1.CreateNewJITMethod(ActiveUnitInfo.Component,
|
||||
ShortMethodName);
|
||||
Result:=FormEditor1.CreateNewJITMethod(MethodComponent,ShortMethodName);
|
||||
{$IFDEF VerboseOnPropHookCreateMethod}
|
||||
debugln(['TMainIDE.PropHookCreateMethod JITClass=',TJITMethod(Result.Data).TheClass.ClassName]);
|
||||
{$ENDIF}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user