Ich habs irgendwie doch hinbekommen der Code sieht jetzt so aus:
Delphi-Quellcode:
function TLicenseService.GetFreeLicenseFileName(const ApplicationName:string): String;
var
i,y:integer;
Lizenz:string;
begin
//der name der Lizenzdatei name muss zurückgegeben werden z.B Testapp\Lizenz1.ldf
// wenn keine Lizenz mehr frei ist muss noFreeLicenses zurückgegeben werden
i:=0;
while i <= ServerForm._AllLicenses.Count-1 do begin
y:=0;
if fileexists(extractfilepath(application.exename)+'Lizenzen\'+ApplicationName+'\'+ServerForm._AllLicenses.Strings[i]) then
Lizenz:=ApplicationName+'\'+ServerForm._AllLicenses.Strings[i];
while y <= ServerForm._BlockedLicenses.Count -1 do begin
if (Lizenz=ServerForm._BlockedLicenses.Strings[y]) or
(not fileexists(extractfilepath(application.exename)+'Lizenzen\'+Lizenz)) then begin
Lizenz:='noFreeLicenses';
break;
end;
if (y >=ServerForm._BlockedLicenses.Count -1) and
(fileexists(extractfilepath(application.exename)+'Lizenzen\'+Lizenz)) then begin
result:=lizenz;
exit;
end;
y:=y+1;
end;
i:=i+1;
end;
result:=Lizenz;
end;