Einzelnen Beitrag anzeigen

Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#16

Re: Problem mir StringResourcen...

  Alt 30. Aug 2005, 11:40
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.
  Mit Zitat antworten Zitat