geht aber immer noch nicht:
--> hab ich so übernommenDiBo33 hat geschrieben:Übergebe dein Parameter nicht als String, sondern als integer und verwende TResourceStream.CreateFromId
--> dann bleibt der Compiler stehen --> fehlt da vielleicht ne unit?DiBo33 hat geschrieben:desweiteren ist der Resourcetype nicht der String 'RT_RCDATA' sondern die Konstante RT_RCDATA.
Code: Alles auswählen
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
Code: Alles auswählen
procedure TFMain.bpatchClick(Sender: TObject);
begin
if Combobox1.Text = 'Minecraft 1.5_01' then Extractjar(1501);
if Combobox1.Text = 'Minecraft 1.4' then Extractjar(1400);
if Combobox1.Text = 'Minecraft 1.3_01' then Extractjar(1201);
if Combobox1.Text = 'Minecraft 1.2_02' then Extractjar(1202);
if Combobox1.Text = 'Minecraft 1.1_02' then Extractjar(1102);
end;
procedure TFMain.Extractjar(rname:Integer);
var
S: TResourceStream;
F: TFileStream;
begin
//S := TResourceStream.Create(HInstance, rname, 'RT_RCDATA');
S := TResourceStream.CreateFromID(HInstance, rname, 'RT_RCDATA');
F := TFileStream.Create(ExtractFilePath(ParamStr(0)) + String('minecraft'+inttostr(rname)+'.jar'), fmCreate);
F.CopyFrom(S, S.Size);
F.Free;
S.Free;
end;
edit geschafft!
also man muss anstelle von RT_RCDATA MAKEINTRESOURCE(10) verwenden.