Einzelnen Beitrag anzeigen

Ganymed

Registriert seit: 11. Jun 2003
Ort: Hameln
56 Beiträge
 
Delphi 7 Architect
 
#1

Mit UpdateResource mehrere Strings schreiben...

  Alt 30. Jun 2003, 15:14
Hallo!

Wie muss ich die Parameter für UpdateResource gestalten, damit ich mehrere Strings in die Resource schreiben kann?

Folgender Code funktioniert wunderbar für einen einzelnen String:
Delphi-Quellcode:
function TAnimalSelectionForm.WriteDataToExe: boolean;
var
  hExeFile: THandle;
  sBuffer: WideString;
  pResourceID: PChar;
  iDataSize: word;
begin
  pResourceID := MakeIntResource(CONST_RESOURCE_NAME_INDEX);

  // Im Buffer ist das erste Zeichen die Länge des Strings,
  // gefolgt vom eigentlichen String (Unicode)
  sBuffer := Chr(Length(sValue)) + sValue;

  // Fragt mich nicht, warum die Größe so bestimmt wird,
  // aber es ist so.
  iDataSize := Length(sBuffer) *2 +1;

  hExeFile := BeginUpdateResource(PChar(sExeFileName), false);
  if hExeFile <> 0 then
  begin
    try
      Result := UpdateResource(hExeFile, RT_STRING, pResourceID, LANG_NEUTRAL, PWideChar(sBuffer), iDataSize);
      if not Result
      then MessageDlg(RES_ERR_COUND_NOT_WRITE, mtError, [mbOK], 0);
    finally
    end;
  end
  else Result := false;
  EndUpdateResource(hExeFile, false);

end;
Nur wie müssen Parameter für mehrere Strings gestaltet werden? Das ist nämlich recht blöde geregelt, da Strings als Resourcen immer in Gruppen von bis zu 16 Stück gespeichert sind...
  Mit Zitat antworten Zitat