Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Mit UpdateResource mehrere Strings schreiben... (https://www.delphipraxis.net/6120-mit-updateresource-mehrere-strings-schreiben.html)

Ganymed 30. Jun 2003 15:14


Mit UpdateResource mehrere Strings schreiben...
 
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...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz