IDE: TProjectFileDescriptor.DefaultResourceName: first try without appending a number, check for pascal keywords

git-svn-id: trunk@37162 -
This commit is contained in:
mattias 2012-05-05 11:36:45 +00:00
parent 45c7aa2ce1
commit 7ef4bcdbbf

View File

@ -5490,9 +5490,21 @@ function TMainIDE.NewUniqueComponentName(Prefix: string): string;
Result:=false; Result:=false;
end; end;
function IdentifierIsOk(Identifier: string): boolean;
begin
Result:=false;
if (Identifier='') or not IsValidIdent(Identifier) then exit;
if AllKeyWords.DoIdentifier(PChar(Identifier)) then exit;
if IdentifierExists(Identifier) then exit;
if IdentifierExists('T'+Identifier) then exit;
Result:=true;
end;
var var
i: Integer; i: Integer;
begin begin
if IdentifierIsOk(Prefix) then
exit(Result);
while (Prefix<>'') and (Prefix[length(Prefix)] in ['0'..'9']) do while (Prefix<>'') and (Prefix[length(Prefix)] in ['0'..'9']) do
System.Delete(Prefix,length(Prefix),1); System.Delete(Prefix,length(Prefix),1);
if (Prefix='') or (not IsValidIdent(Prefix)) then if (Prefix='') or (not IsValidIdent(Prefix)) then
@ -5501,7 +5513,7 @@ begin
repeat repeat
inc(i); inc(i);
Result:=Prefix+IntToStr(i); Result:=Prefix+IntToStr(i);
until (not IdentifierExists(Result)) and (not IdentifierExists('T'+Result)); until IdentifierIsOk(Result);
end; end;
function TMainIDE.DoLoadResourceFile(AnUnitInfo: TUnitInfo; function TMainIDE.DoLoadResourceFile(AnUnitInfo: TUnitInfo;