Нужно графику присобачить к проге не в виде ресурсов, а в виде юнита с константным байтовым массивом. Думаю так...
Я вот прогу написал отдельную, которая мне из любого файла генерит такой юнит. Могу код дать, коли нужно, хотя там ведь просто всё...
var
fi : File;
fo : TextFile;
ifn, ofn, name : String;
p, i, size : Integer;
b : Byte;
begin
ifn := ParamStr(1);
ofn := ParamStr(2);
if not FileExists(ifn) then
begin
WriteLn('Use: file2unit <inputfile> <outputfile>');
ReadLn;
end;
if ofn = '' then
ofn := ifn + '.pas';
name := ExtractFileName(ofn);
p := Pos('.', name);
if p > 0 then
name := copy(name, 1, p - 1);
WriteLn(name);
WriteLn(fo, 'unit '+name+';');
WriteLn(fo, 'interface');
WriteLn(fo, 'const');
WriteLn(fo, ' '+name+'Count = '+IntToStr(size)+';');
WriteLn(fo, ' '+name+'Data : array[0..'+name+'Count - 1] of Byte = (');
p := 0;
for i := 0 to size - 1 do
begin
inc(p);
BlockRead(fi, b, 1);
Write(fo, '$'+IntToHex(b, 2));
if i < size - 1 then Write(fo, ', ');
if p >= 128 then
begin
p := 0;
WriteLn(fo, '');
end;
end;
CloseFile(fi);
WriteLn(fo, ');');
WriteLn(fo, 'implementation');
WriteLn(fo, 'end.');
CloseFile(fo);
WriteLn(ExtractFileName(ifn)+' convert in Pascal unit.');
//ReadLn;
end.
Очень конструктивно... Мог бы это и вчате сказать. У меня траффик не казённый, грузи каждый раз весь форум, ради 3 слов, балин... ):
Прога у меня работает. Главное, чтобы в имени конвертируемого файла не было всяких непотребных символов, которые дельфи неправильно воспринимает. Типа "-" (минус), и т.д.
В общем поконструктивнее плиз... И желательно в чат. (:
beisik, берёшь рогу dll2pas и натравливаешь её на файл с музыкой.
Получаешь готовый юнит с массивом констант, которые содержат музыку.
Выбрасываешь из юнита лишнии строки с dllloaderom и всё.
(Я это написал в коментариях к демосцене уже некоторое время назад :) )
function FileCreate(const FileName: string): Integer;
begin
Result := Integer(CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE,
0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0));
end;
function FileWrite(Handle: Integer; const Buffer; Count: LongWord): Integer;
begin
if not WriteFile(THandle(Handle), Buffer, Count, LongWord(Result), nil) then
Result := -1;
end;