Also Reshack "merkt" auch nicht, wenn eine leere Stringresource (163 und 165) da ist:
http://www.frifra.de/Temp/resreshack.jpg
Ich hab jetzt meine Funktion angepasst und nun läuft sie korrekt:
Delphi-Quellcode:
function GetMaxResID: integer;
function EnumResourceNamesProc(Module: HMODULE; ResType: PChar; ResID:
Integer; lParam: TStringList): Integer; stdcall;
function Fill(Wert: string): string;
begin
Result := Wert;
while Length(Result) < 6 do
Result := '0' + Result;
end;
var
i: integer;
Buffer: array[0..MAX_PATH] of Char;
begin
lParam.Add(Fill(IntToStr(ResId)));
Result := 1;
end;
var
Buffer: array[0..MAX_PATH] of Char;
n, LastSection: integer;
MyList: TStringList;
begin
LastSection := 0;
MyList := TStringList.Create;
MyList.Sorted := True;
windows.EnumResourceNames(hinstance, RT_STRING, @EnumResourceNamesProc,
Integer(MyList));
if (MyList.Count > 0) and (StrToIntDef(MyList[0], -1) = 1) then
begin
Result := 0;
LastSection := 1;
for n := 1 to MyList.Count - 1 do
begin
if StrToIntDef(MyList[n], -1) = StrToIntDef(MyList[n - 1], -1) + 1 then
LastSection := StrToIntDef(MyList[n], -1)
else
break;
end;
for n := (LastSection - 1) * 16 to (LastSection) * 16 do
if LoadString(hinstance, n, @Buffer, MAX_PATH) > 0 then
Result := n;
end
else
Result := 0;
MyList.Free;
end;
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.