Пример создания формы с XM музыкой. (как в забугорных крэках
)
Этот пример будет проигрывать Fmod'ом FM и XM файлы...
Этот вариант немного лучше проигрывания мид файла, как показал JAW (тут) (я кстати года два назад тоже начинал с мида)
в забугорном инете вы найдете огромное количество композиций..
вот тут пример проги (билдера, не забудьте, что для его работы нужен еще stub.exe
, выкладываю чисто для примера... файл старенький.. 
copy&past и сохраните файлы соответственно uFMOD.pas и ufmod.obj.
Вот эти файлы в рар ахриве
ну да приступим...
uFMOD.pas
ufmod.obj -нужный файл для работы первого
вот пример xm файла с мелодией переведенной в hex
теперь вот таким вот не хитрым путем мы вгоняем её на форму...
p.s. принято считать что мелодия должна проигрываться при выводе формы about, но решать вам
Этот пример будет проигрывать Fmod'ом FM и XM файлы...
Этот вариант немного лучше проигрывания мид файла, как показал JAW (тут) (я кстати года два назад тоже начинал с мида)
в забугорном инете вы найдете огромное количество композиций..
вот тут пример проги (билдера, не забудьте, что для его работы нужен еще stub.exe
copy&past и сохраните файлы соответственно uFMOD.pas и ufmod.obj.
Вот эти файлы в рар ахриве
ну да приступим...
uFMOD.pas
Код:
unit uFMOD;
interface
function uFMOD_PlaySong(lpXM:Pointer;param,fdwSong:LongWord):Pointer; stdcall; external;
procedure uFMOD_StopSong;
procedure uFMOD_Jump2Pattern(pat:LongWord); stdcall; external;
procedure uFMOD_Rewind;
procedure uFMOD_Pause; external;
procedure uFMOD_Resume; external;
function uFMOD_GetStats:LongWord; stdcall; external;
function uFMOD_GetRowOrder:LongWord; stdcall; external;
function uFMOD_GetTime:LongWord; stdcall; external;
function uFMOD_GetTitle:PChar; stdcall; external;
procedure uFMOD_SetVolume(vol:LongWord); stdcall; external;
const
XM_RESOURCE = 0;
XM_MEMORY = 1;
XM_FILE = 2;
XM_NOLOOP = 8;
XM_SUSPENDED = 16;
uFMOD_MIN_VOL = 0;
uFMOD_MAX_VOL = 25;
uFMOD_DEFAULT_VOL = 25;
implementation
function WaitForSingleObject(hObject,dwTimeout:LongInt):LongInt; stdcall; external 'kernel32.dll';
function CloseHandle(hObject:LongInt):LongInt; stdcall; external 'kernel32.dll';
function CreateThread(lpThreadAttributes:Pointer;dwStackSize:LongInt;lpStartAddress,lpParameter:Pointer;dwCreationFlags:LongInt;lpThreadId:Pointer):LongInt; stdcall; external 'kernel32.dll';
function SetThreadPriority(hThread,nPriority:LongInt):LongInt; stdcall; external 'kernel32.dll';
function HeapAlloc(hHeap,dwFlags,dwBytes:LongInt):LongInt; stdcall; external 'kernel32.dll';
function HeapCreate(flOptions,dwInitialSize,dwMaximumSize:LongInt):LongInt; stdcall; external 'kernel32.dll';
function HeapDestroy(hHeap:LongInt):LongInt; stdcall; external 'kernel32.dll';
procedure Sleep(cMillis:LongInt); stdcall; external 'kernel32.dll';
function FindResourceA(hModule:LongInt;lpName,lpType:PChar):LongInt; stdcall; external 'kernel32.dll';
function LoadResource(hModule,hrsrc:LongInt):LongInt; stdcall; external 'kernel32.dll';
function SizeofResource(hModule,hrsrc:LongInt):LongInt; stdcall; external 'kernel32.dll';
function CreateFileA(lpFileName:PChar;dwDesiredAccess,dwShareMode:LongInt;lpSecurityAttributes:Pointer;dwCreationDistribution,dwFlagsAndAttributes,hTemplateFile:LongInt):LongInt; stdcall; external 'kernel32.dll';
function CreateFileW(lpFileName:PWideChar;dwDesiredAccess,dwShareMode:LongInt;lpSecurityAttributes:Pointer;dwCreationDistribution,dwFlagsAndAttributes,hTemplateFile:LongInt):LongInt; stdcall; external 'kernel32.dll';
function ReadFile(hFile:LongInt;lpBuffer:Pointer;nNumberOfBytesToRead:LongInt;lpNumberOfBytesRead,lpOverlapped:Pointer):LongInt; stdcall; external 'kernel32.dll';
function SetFilePointer(hFile,lDistanceToMove:LongInt;lpDistanceToMoveHigh:Pointer;dwMoveMethod:LongInt):LongInt; stdcall; external 'kernel32.dll';
{ *** Import: winmm *** }
function waveOutClose(hwo:LongInt):LongInt; stdcall; external 'winmm.dll';
function waveOutGetPosition(hwo:LongInt;pmmt:Pointer;cbmmt:LongInt):LongInt; stdcall; external 'winmm.dll';
function waveOutOpen(phwo:Pointer;uDeviceID:LongWord;pwfx:Pointer;dwCallback,dwCallbackInstance,fdwOpen:LongWord):LongInt; stdcall; external 'winmm.dll';
function waveOutPrepareHeader(hwo:LongInt;pwh:Pointer;cbwh:LongWord):LongInt; stdcall; external 'winmm.dll';
function waveOutReset(hwo:LongInt):LongInt; stdcall; external 'winmm.dll';
function waveOutUnprepareHeader(hwo:LongInt;pwh:Pointer;cbwh:LongWord):LongInt; stdcall; external 'winmm.dll';
function waveOutWrite(hwo:LongInt;pwh:Pointer;cbwh:LongWord):LongInt; stdcall; external 'winmm.dll';
{$L ufmod.obj}
procedure uFMOD_StopSong;
var i:Pointer;
begin
i:=uFMOD_PlaySong(nil,0,0)
end;
procedure uFMOD_Rewind;
begin
uFMOD_Jump2Pattern(0)
end;
end.
ufmod.obj -нужный файл для работы первого
Код:
Ђ src\nasm.asm¤– _TEXTCODE_DATADATA_BSSBSS°˜ © ґ˜ ©чҐ™ in" Xђ uFMOD_Jump2Pattern0 mђ uFMOD_SetVolumeЃ *ђ uFMOD_Pauseљ їђ uFMOD_Resumeћ Fђ uFMOD_GetStats¦ |ђ uFMOD_GetRowOrderЄ Mђ
uFMOD_GetTimeє кђ uFMOD_GetTitleя 0ђ uFMOD_PlaySong Њ<WaitForSingleObject CloseHandle CreateThread SetThreadPriority HeapAlloc
HeapCreate HeapDestroy Sleep waveOutClose waveOutGetPosition waveOutOpen waveOutPrepareHeader waveOutReset waveOutUnprepareHeader waveOutWrite CreateFileA ReadFile SetFilePointer
FindResourceA LoadResource SizeofResource Ћ*ю Ђ» о Ц Ц , q п ‹D$№$ ·Аѓa f;AТ!Љ ‚ ¤ П HќЋ7j+
НIЉ' z(х2'@ГP*e ЂZXѓшvjXf‹„ M Ј„! яв°л1Аўq! ГjлjYєё! ‹К‹ВГЎј! ГPj я5\ и …АuZ[ЙГWV—ѕt! *‰С9В|+‘…Й~*‰VьЉ€@GIuч^_ё@" Гj
VЌuмѓf я6и Pя6Pя6и ‰и ‰FГj hЂ jj jh ЂVи jяjєt! ‰CЏBЏГ1ТЎl RTVWPRRQPи и ГSVWU—…Т]_^[ГЅx! ‹u +ux№ )с~ЃЖp )КyСM у¤…Т~Р‰СM Ѓб аяя+M ~)К‰ОR‹E M ‘и‹яяячZ‹M WЃб аяяR‰Mѕ їp иkяяяZ_л‡яsи єx! t…Аx;Bьw‰Гик XZЏt! Y…ТPtмSVWU»d Ѕ€! 1А‰EрцБѕ uцБЌvuЌvмцБ•EиЂб€Mй‰пҐҐҐ‰Ц9EьufЗEь ЂPPPPPPh jяSи и …А‰Cшt‰uфиы —яU…яtjѕ˜! ЗF ѓNяjЗ˜! ЏFj Vя3и 1яиы 9{uц‰{j Vя3и …Аu(UWWhh WWи …А‰CьtjPи “]_^[ГSVWUЅ` ‹E …Аt‰EPUPи и 1Ы‰] ‹}‰]…яt‰]Wj h˜! WWи и и ‹Eь…Аt‰]ьPи “№# їё! у«]_^[ГUVЅP jЏE jUяuи ‹uБоѓжjи ѓ} t^]В 9utРЂ=q! uёё! ю Ђ8|Ж h€ № SVWUїp 1АWWѕ$ у«8q! •…в Ѕ ‹^д…Ы…€ 9^м‹NЬub}ќдTдTдTдTд Tд$Tд(Tд,Tд5TдЏTд”TдЎTд®Tд»TдЕT¤КдЪTе TҐҐҐ$Ґ@еITеYTҐgҐlеЂTе—TевTҐуешTжTж$Tж)Tж6TжmT¦u¦zж–Tж©T¦¶¦ПжЫT¦в¦сз T§§з1T§8
§=§B §Rз]TзkT§{
§‹зЎTз©TзёTзЖTзПTзЧTB*юъK‹‹F‰…Т‰^|‰Vф…А|‰Fши_
ѓ~яuC‹Fш@f;|0‹Vф·NB1А9К| 8p! tЅ` [ЏEйРюяя·V9КЙ!К‰‰Fли ‹Fр‹^яFмFь9Fм|ѓfь ѓfм ‰п9ыs‰ЯZ)эЌъPи: Ќї™Ба№А чсј! )ы…н…>яяя‰^д‹h ЌХД! ‹NшNт‰
X^1Ы‹FшБаЌё˜! № ђђђ*W™‰ЗV1РѕА? )Р1ТчцЃъа ^ѓШя= Ђ ТчТ РБя%я ч%„! БиСЙТ!ВХСБТчТ!ВУ1ш)ш_If«u«Ўh @ѓш|1АЈh Бн
Бгf‰л‰ЕА! ]_^[Г %1<GQZbjpuz}~~}zupjbZQG<1% !"$%&')*+,-./01234567889:;;<<==>>>???@@@@@«ЄЄ= VA«ЄЄ: ¬F‹NSUV‹q,…ц„ RR‹YWЂy> ‹V‹A0uV)Ъw‹)ЪчЪчШЪчЪЪ€л ‹i¬Р‹YБк¬ЭuЅиґ ЗA ќ6 чх1нчЪи„; »€! 9ш—Cкs—·A<‹Q‹iБе Х…А‰{рt;i t0‰i Бвf1н+Q41АБъ‰Q$t°ЂБн +i8Бэ‰i(t°Ђ…Аf‰A<t9Зv‰З‹A$‰‹A(‰C‰{м‹YЌ\^VЂy> ‹t$‹Q‹itчЭчТѓЪяђWRї;їC‹Q0)шСкчкБз¤Въ’‰Зчi8¬РСВѓвРСш—чi4¬РСВѓвР‹=Њ! СшF‹€! y8Q4Z1Аi0_РѓЖOЌCu˜‹|$ ‰t$)чБп^ЌF)ГСл‰Y·Q<…Тt&Ўt! ™f)A<u+x! ‰Q$чШ‰Q(Т…Ч…sюяя1Т8r! u{¶FHu‹F‹nи9Гv)Г“чх)Х)лТчТ!УлLHчШѓТя!Q0!Q!Q,tF8A>t‹FчЭHѓнюI>Ш‹^Г;F|‹FFЌPяШчЭ“ѓнУюA>;^|Н‰i0…я‰Y…оэяя_XZ3ќA д=TдDTд¤Tд·TдѕTдЦTеTе8TеETеUTж:TзTзTзOTз\TзvT“*юфѓБ@^;NЊМэяя][Гє„ W)ВV…АRѕA
‰Чt™СвBЫ$Ш
ё ЩАЩьЬйЩЙЩрЩиЮБЩэЭЩШ
ј Ы$…цYt )ЧW1ц‰ПлО)щ…ТyчЩчйѓвРБш^ш_Г¶NqЉFz‰КVrѓв?ѓа€VqtББТѓтѓКHu!БкБЙКчЪл‰ИѓбБи¶‘X А1В)ВѕFsчкБшГи«яяяСш‰FЂГVѓЖи™яяя^‰FЂГЂ‹F‹NZ¶VpБв)ИРл)Р|Б‰NГWSU‰еЌ№Р 1Ы‹W5‰UдЉO9¶W1<ЌF=uѓГф‹G2‰EдЉO8¶W0ЌF<ѓЗР80ujQPЌL*ЌD.PЌDNPЌDJЌ\&P‹9РSЌ‹ ·‡9uyцEьt¶Eж9u¶Eе‰·‡‰‹‰EЬЌ‡J·9‹x·@‰}а‹Uр‰u‹Eшю лOБа)З—f1АцEьt¶Uд9UЬu8F:t2я‹Mм‰9‹}ф·Mаѓ' )Щt™чщ‰л
‹Eф‹‹EмZXY‹ яБш‰Й[_Гѓкrѓъ@w‰V
‰РѓвБиѓиt,Ht+Ht&Ht%ѓиv$Ht&Ht*Ht)HuАвt€VpЂ&ч‹FR‰FZГчЪV
Г€TsГБв‰V’чЪVЂГЂf‹Vw8тv‹N
чЩ‰Nvy8тvІяB€VwГ…ЙёАФ t™чсЈ< ГяU ё U‰ЖєP яU‰е1Й‹F<QЌ@<иLчяяѓДЊSjЌVї@" YЉB< |ЄIuх‘«·N@·^FчЫ‰чТ!СчЫI¶Т‰]ф9С‡Њ ЉVP9Вv’FIyф‰Eш@‰ю9Шs“¶NHiЙ f‰FFЌ<Б‰ш)П¶NDѓщ@~1Й‰N0‰ЛБг„G ‰MрЌXи€хяяЌ‰F4‰V8»Ђ Ж@‰BШЪяMрuр‰Ч·NN‰~‰Чияяя·NLj@ЏF‰N‹Eфj ЌEјZяЊ! ‹EБ‹N0= ‰·А‚љ = Т!Р„М чб‰EрЌЂихяя‰G“V‹5Њ! 1ТЌEмBяЦ¶UмцВЂtAѓвt‰ШяЦцEмt1ТЌCBяЦцEмt^ќ! д-TдETд*TжЏTж˜TжБTз‹TзИT*юо1ТЌCBяЦцEмt1ТЌCBяЦцEмt1ТЌCBл…Тt€ЌCІяЦ^CЉVH8vЖ ѓГяMрu†яEь‹EфѓЗ;Eь‡2яяя‹Mш9Бr+‹‹F0VЌ4ЛЌ<ЂБзяMш‰шЖ@иXфяя‰Fѓо‹Eф9Eшsе^1А‰F‰FЌ~ «««ЉFH„А„г €Eь‹^j!ЌE€ZяЊ! ‹u€ЉUЈѓо!„Тt%1Аѓ}Ґ)ЙчС КЂъ‡° єР ЌC@)ЦяЊ! 1Й–AихяяЌ“ 1Аf‹
СбЂzтf‰
s€BъЂzуs€Bы8EЈ„\ ‰Eш‰]фЌEИ‹UҐяЊ! ‹uМ‹}РЉEЦ‰ББи$€EЦtСmИСоСп‹EИ9р‰ЖЌ>)Вx)Чѓбt…яu1ц1Й‰З‰uМ‰}Р€MЪЌD иWуяя‹Mф‰яEшѓEфj—‹EшY:EЈЌuИуҐr€‰Mш‹4‹1А‹ЉnЉNчВ Ая…Т ѓЖЂэ*uOB‰чСъSRЌRЧЌPЌEИ‰ГяЊ! Z‰шяЊ! ‰т1Й9ъ}!Љ€Д$ЧАмG Е€аЧ иБа Б‰
БйѓВлЫ[л8Ув‰ряЊ! ‹NмЌ<1Ќ1Т8VъuHOHЉ79шf‰wф1Т‰рff‰IЌ@фx$‹Fф‹NрИЂ~юЌFuf‹Hюл
Ђ~юuf‹Nf‰яEш‹Mш:MЈ‚%яяяЃГ юMь…#юяя@[ЙГ‹FфU¶\0,‰е‹FшЌЩ‹N€mцчбЌ<Ђ‹SV…ТtЪЧѓмБбtРV‹vSFFсQЉ_ЉGѓг<t<”EфЉOtюЙx€NЉIЂщ`s€Nю¶N‹EьiЙ Hа¶Fю™ЉD@<‰Mдs‹Ѓ…ТuєX" ‰Uш‹N‹F
‰Mи‹N‰Eм‰MрЉG<tЂ~gu‹NN
€Fg1Й‰N‰NЖЉIЂщ`sDѕBБ‹Eь€Nfц@&t‹Eшѕ@
™Бб)РСшЌ„ вяячШл ‘‹MшиЊшяя‰FRЂ}ф u‰FЂЂ tD‹EшWj ¶H‰N
Y¶@‰Fj@1АЏFBj Ќ~ЏFNЗFF у«ЉNz_ЂщO}€FtцБu€FqЂ¶WиъяяЂ?asЂuюF:Tќ д°TдвTе(TеТTеЫTжTзT*юи‹MдцЃ t °иэшяял
Ђ~: tѓfB ‹MдцЃ t°иЮшяяЂ~: ‹Mдt·Ѓ )FFyѓfF ¶GH¶W< w …Тя…g яuдяuши« ѓоЂYѓЗ9ОЊKюяя[^ЙГл л с ш " I 2 \ b R z — i Є f f f і f f f 4 f = f I f f f Y t€VhГt€Vpлt€Vl‹FRЂ&ц‰FZГБкt€Vr…Ыt€^s1Аt€Vlй“чяяБкt€Vu…Ыt€^vГБвt‰VV‹Mш‹QQ‹FV9Р‹Nr1АЂ&ч‰A‰A0‰AГt€VlГ‹Eьѓ` ‰юEц·H9|ѓ ГБкЌ’ЌS‹Eь‰HЂ}ц uк‹HфA‰лЧЂъ ‰Сs‹Eь‰HрГйМшяяt‹Mь€Q!ГцЃ t3Ќ™¤ ¶‰ 1Аf;v9Иt@f;ѓwх‰FI9ИќF<| ·D‹ю‰FBГ‰V‹Lѓь‰К·Й‰Mм‹ѓ‰И·Йf1Т+MмRt f1А)Р™чщ‘‰N"‹F+EмчйZР‰F>Би‰FBяFГt€VmЂГt Бк€Юf‰VnГt Бк€Юf‰VxйьчяяБкJu…Ыt€^k¶Fk)FJu…Ыt€^j¶FjFГБкJЂъ
wц…Ыя$•‘ Й Щ ~ й с ш ' ~ 1 3 ~ @ V t€^|¶F|Ба)FГt€^}¶F}БаFГЂfzр^zГ‹Eш€X
Гu
‹Eь‹@ш‰FbГЉN^юЙy‰Щ€N^t ‹Fb‹Mь‰AГЂfzБг^zГБг‰^ЂГчЫt€^{ѕF{)F
Г‹Eи‹Uм‰F‹Eр‰FЖ ‰V
Г‹MьЇYр‰YьГ‹FфUЉ\0,‹Fшчf‹TЩЌЂ…Т‰е„ю РVP‹FБаV‹vFFрP¶~‹Uьiя ¶Fюzа™ЉD8@<s‹‡…ТuєX" 1ЫWR‰^‰^€ц‡ t °‰щихяяц‡ tMќЙ д]TдTдѓTд‡Tд‹TдЏTд“Tд—Tд›TдџTдЈTд§Tд«TдЇTдіTд·Tд»TдїTдГTдЗTдЛTдПTдУTдЧTдЫTдЯTдгTдзTдлTдпTдуTдчTдыTдяTжҐTж©Tж*Tж±TжµTж№TжЅTжБTжЕTжЙTжНTжСTжХTжЩTжЭTзРT *юв °‰щихяя8^:t·‡ )FFy‰^FЂ‹Eш¶@‰ББиЂб,t,Ht+,tHHtHt
Hu#иЁфяялчЩ)NЂл€NsиuфяялчЩN
Ђ‹Uш¶Z‰Щѓг¶BАй<wя…Ђ и’ ѓоЂXѓEш9ЖЊяяя^ЙГ@ 9 Ф µ я ш Г p P & Ћ U
иёуяялиРуяя1ЙЉNl‰ИѓаБйt‘чШ)F
ЂГЉFh‹NЌЃѓщ}jY‰Nѓf ЂГЉFhчШла8jvH‹Eь‹@мj™_чяJtJu3‰Щ‹Eьц@&tБб‰Nл ¶Ff‰ЗИ‹L$и‰тяя—‹L$итяя)З‰~ЂГЉNo…Йt+‹Eь‹@м™чщ…ТuЉNnѓбЂI‹F
xЂяЌк ‰F
HHГѓиѓиѓиГСаj™YчщГЌ@СшГ@@ГѓАѓАѓАГСаГї ѕ З Д Б Л Ч й Ы Ъ г а Э Ф з ЉNm‰Иѓа‹VБйu)Вy‰КлС™юК9С‰К‰VЂГ‹Mь‹QиЉA!ЁрuѓачШлБиВ‹Mь‰QиГЂщ tuЂйt`юЙu[‹Mь1А9YмuO‹T$ЗFF ¶RЌH ‰V
‹VBЌ~9СТѓв@‰VBу«ЉNzЂщO}€FtцБu€Fq‹FRЂ‰F‹Eш¶Pйуяя€Г‹Mь9Yмuѓf
ЂГ…Ыt‹Eь‹@м™чы…ТuЂГ‰уVW‹t$1А¶–
Ќ{6Jx%°ЂtJt
ІЂ+¶Т)РСшл7‹)Влс9Т!ВЌBАл&‹‰КѓбѓщAѓРя1Б%Ѓ ББк¶Ѓx Т1Р)Р¶– ЇР¶† …АtW—‹C2чкчя’—_БъS‹S2B9В~’¶†
‰S2цЬЂцЬЂЬ ‰‹sцtDѓ~, t'‰с+
4 БйяѓзЂЌ|>@Wj‰{YуҐ‰NФ‰Nа‰NЯќЕ д‚TдћTдўTд¦TдЄTд®TдІTд¶TдєTдѕTдВTдЖTдКTдОTдТTдЦTдЪTдЮTдвTджTдкTдоTдтTдцTдъTдюTеTеTе
TеTеTеХTжTжTжTжTжTжTж Tж$Tж(Tж,Tж0Tж4Tж8Tж<Tж@TзuTзЩTH*Ьд^Ќ~,‹D$«1А‹V««««‰F‰V1ЙюЙцtF‹C
C‰ВБа)Рч- чТ!Р= р ~ё р чcBчcFБк‹F‰‰Ччкчщ‰F‰И+Fчпчщ‰FцtCїЂ ‹C)ш™1Р)Р)З‹CNБяѓи чпC™чТ!Р‹>9И‰К—sчпчщ‰ъ’‰F‰VцРч.чщ‰Fцta‹K1ТKЌB(~EцJ uёђwЪ чс1Тл1ё +CCPЫ$Ш
А ЩАЩьЬйЩЙЩрЩиЮБЩэЭЩШ
Д Ы$X»Ђ» чу‰Fчу‰F_^В iќ д1TдДTдзTдяTЌ‹ s
вот пример xm файла с мелодией переведенной в hex
Код:
const
xm : array[1..905] of Byte = (
$45,$78,$74,$65,$6E,$64,$65,$64,$20,$4D,$6F,$64,$75,$6C,$65,$3A,
$20,$73,$6F,$66,$74,$20,$6D,$61,$6E,$69,$61,$63,$2D,$6D,$69,$6E,
$69,$6D,$61,$6C,$00,$1A,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$04,$01,$34,$00,$00,$00,
$20,$00,$00,$00,$02,$00,$0D,$00,$01,$00,$01,$00,$0A,$00,$91,$00,
$00,$01,$02,$03,$04,$05,$06,$07,$00,$01,$02,$03,$04,$05,$06,$07,
$08,$09,$0A,$0B,$08,$09,$0C,$0B,$08,$09,$0A,$0B,$08,$09,$0C,$0B,
$09,$00,$00,$00,$00,$04,$00,$01,$00,$83,$16,$01,$80,$80,$2E,$01,
$00,$0E,$60,$80,$3A,$01,$00,$0E,$62,$81,$61,$83,$35,$01,$09,$00,
$00,$00,$00,$04,$00,$01,$00,$83,$16,$01,$80,$80,$2E,$01,$00,$0E,
$60,$80,$35,$01,$00,$0E,$62,$81,$61,$83,$38,$01,$09,$00,$00,$00,
$00,$04,$00,$01,$00,$83,$16,$01,$80,$80,$2E,$01,$00,$0E,$60,$80,
$38,$01,$00,$0E,$62,$80,$83,$33,$01,$09,$00,$00,$00,$00,$06,$00,
$01,$00,$83,$16,$01,$80,$80,$2E,$01,$00,$0E,$60,$80,$33,$01,$00,
$0E,$61,$81,$61,$83,$35,$01,$83,$0D,$01,$83,$36,$01,$80,$83,$36,
$01,$09,$00,$00,$00,$00,$04,$00,$01,$00,$83,$0F,$01,$80,$80,$2E,
$01,$00,$0E,$60,$80,$36,$01,$00,$0E,$62,$81,$61,$83,$33,$01,$09,
$00,$00,$00,$00,$06,$00,$01,$00,$83,$0F,$01,$80,$80,$2E,$01,$00,
$0E,$60,$80,$33,$01,$00,$0E,$61,$81,$61,$83,$2E,$01,$83,$12,$01,
$83,$33,$01,$80,$83,$35,$01,$09,$00,$00,$00,$00,$06,$00,$01,$00,
$83,$16,$01,$80,$80,$2E,$01,$00,$0E,$60,$80,$35,$01,$00,$0E,$61,
$81,$61,$83,$2E,$01,$83,$0D,$01,$83,$31,$01,$80,$83,$2E,$01,$09,
$00,$00,$00,$00,$08,$00,$01,$00,$83,$12,$01,$98,$0A,$01,$83,$19,
$01,$88,$0A,$83,$1E,$01,$81,$61,$83,$12,$01,$80,$83,$14,$01,$80,
$83,$1B,$01,$80,$83,$20,$01,$80,$83,$14,$01,$80,$09,$00,$00,$00,
$00,$08,$00,$01,$00,$83,$12,$01,$81,$61,$83,$19,$01,$80,$83,$1E,
$01,$80,$83,$12,$01,$80,$83,$19,$01,$83,$31,$01,$83,$1E,$01,$80,
$83,$12,$01,$83,$31,$01,$83,$19,$01,$80,$09,$00,$00,$00,$00,$08,
$00,$01,$00,$83,$14,$01,$83,$33,$01,$83,$1B,$01,$80,$83,$20,$01,
$83,$31,$01,$83,$14,$01,$80,$83,$1B,$01,$83,$30,$01,$83,$20,$01,
$80,$83,$14,$01,$83,$31,$01,$83,$1B,$01,$80,$09,$00,$00,$00,$00,
$08,$00,$01,$00,$83,$16,$01,$83,$30,$01,$83,$1D,$01,$83,$31,$01,
$83,$22,$01,$83,$35,$01,$83,$16,$01,$98,$0A,$01,$83,$1D,$01,$88,
$0A,$83,$22,$01,$81,$61,$83,$16,$01,$80,$83,$1D,$01,$80,$09,$00,
$00,$00,$00,$08,$00,$01,$00,$83,$16,$01,$80,$83,$1D,$01,$80,$83,
$22,$01,$80,$83,$16,$01,$80,$83,$18,$01,$80,$83,$1D,$01,$80,$83,
$11,$01,$80,$83,$18,$01,$80,$09,$00,$00,$00,$00,$08,$00,$01,$00,
$83,$16,$01,$83,$30,$01,$83,$1D,$01,$83,$31,$01,$83,$19,$01,$83,
$2E,$01,$83,$16,$01,$98,$0A,$01,$83,$1D,$01,$88,$0A,$83,$19,$01,
$81,$61,$83,$16,$01,$80,$83,$1D,$01,$80,$F1,$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
$00,$00,$00,$00,$27,$01,$00,$12,$00,$00,$00,$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$40,$00,$08,
$00,$2C,$00,$0E,$00,$08,$00,$18,$00,$16,$00,$20,$00,$08,$00,$2D,
$00,$0D,$00,$32,$00,$04,$00,$3C,$00,$07,$00,$44,$00,$04,$00,$5A,
$00,$00,$00,$64,$00,$00,$00,$6E,$00,$00,$00,$00,$00,$20,$00,$0A,
$00,$28,$00,$1E,$00,$18,$00,$32,$00,$20,$00,$3C,$00,$20,$00,$46,
$00,$20,$00,$50,$00,$20,$00,$5A,$00,$20,$00,$64,$00,$20,$00,$6E,
$00,$20,$00,$78,$00,$20,$00,$82,$00,$20,$00,$09,$06,$01,$02,$04,
$02,$03,$05,$01,$00,$00,$00,$00,$00,$80,$00,$0C,$00,$00,$00,$00,
$00,$00,$00,$0C,$00,$00,$00,$40,$00,$01,$80,$F9,$00,$BF,$00,$C3,
$00,$0A,$00,$57,$00,$6E,$00,$23,$00
);
теперь вот таким вот не хитрым путем мы вгоняем её на форму...
Код:
procedure TForm2.FormCreate(Sender: TObject);
begin
if uFMOD_PlaySong(@xm,Length(xm),XM_MEMORY) <> nil then
begin
{ Wait for user input. }
form2.show;
end;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
uFMOD_StopSong;
end;
p.s. принято считать что мелодия должна проигрываться при выводе формы about, но решать вам
by demien. © 2009.
www.execryptor.ru
www.execryptor.ru