Hallo,
entschuldige himitsu. (Ich habe die verstecke Nachricht übrigens auch gelesen).
Du hast völlig recht, nach weiteren Versuchen konnte ich feststellen:
das Problem liegt definitiv darin, wie die Resource in die Exe geschrieben wird.
Dazu die Funktion:
Delphi-Quellcode:
function SetRes(filename, resname, resvalue: string; langid: word;
delex: boolean): boolean;
var
hUpdate: THandle;
Size: DWord;
begin
hUpdate := BeginUpdateResource(PChar(filename), delex);
if (hUpdate <> 0) and (hUpdate <> INVALID_HANDLE_VALUE) then
begin
try
Size := Succ(Length(resvalue)) * SizeOf(char);
Result := UpdateResource(hUpdate, RT_RCDATA, PChar(resname),
langid, PChar(resvalue), Size);
finally
EndUpdateResource(hUpdate, False);
end;
end;
end;
// Aufruf:
SetRes(f2, Edit1.Text, Edit2.Text, StrToInt(Edit3.Text), CheckBox1.Checked)
// Rückgabewert ist immer True.
Beispiel:
Edit1.text = TEST
Edit2.text = Hallo
Edit3.text = 0
checkbox1.checked = false
---
Nun erhalte ich aber, wenn ich versuche die Datei zu öffnen, in die ich geschrieben habe, sofort die Fehlermeldung siehe Anhang.