Delphi - Ako dostať užívateľské dáta do *.RES?
Ako dostať do resources akýkoľvek objekt (obrázok, zvuk, dáta a podobne)? Ide mi o uloženie obrázkov a zvukov, aby som nemal zbytočné súbory na disku a program bol samostatný. Mám tu aj nejaký text o tom ako prehrať zvuk z resources, ale nie je tam vysvetlené, ako to tam vložiť a podobne. Potrebujem niečo univerzálne, čiže nie závislé od obsahu súboru.
Bud si to udelas pomoci ResourceHackeru, nebo pomoci textoveho souboru neco.RC, kde napises co a odkud budes cerpat a staci jej pridat do projektu. O kompilaci do RES se postaraji Delphi, popr. si to zkompiluj rucne pomoci BRC32.exe (adresar Delphi\BIN)
To je na mňa trochu veľa. Dá sa zapísať aj nejaký príklad na *.RC (uloženie a otvorenie)?
Ak si dobre spomínam, tak nejako takto sa robilo prostredie WinXP v DElphi 6 cez súbor *.manifest. Pokúsim sa to vyhľadať, možno mi to pomôže.
Edit: Tak som našiel, ale zrejme je to niečo iné:
www.pcsvet.cz/art/article.php?id=2383&search=manife st
Edit 2: Vlastne to pridávanie do súboru *.RC to asi vyvetľuje, ale ako k tomu pristupovať, to nie. No teraz mi nie je celkom jasné, ako priradť obázok do TImage, ak mám len smerník na obrázok v pamäti. Z *.RES ako som už pred tým zistil dostanem len smerník na objekt a nič viac.
Pokud chces data z Resource cist, obvykle ma kazdy typ dat svou API funkci na cteni, napr. LoadIcon(), LoadImage(), LoadString(), LoadCursor(), ...
Napr. nacteni bitmapy:
Ešte otázka: Čo je pre obrázok?
zvuk -> WAVE
program -> EXEFILE
obrázok -> ???
iné -> ???
Zkousel jsi se divat do helpu na funkce, ktere jsem ti napsal ?
Tam ty datove typy v resource mas uvedeny:
BITMAP
CURSOR
ICON
Jinak obecne je to DATA
Ja somár som v helpe hľadal priamo: exefile, wave atď. a nič mi nenašlo, potom som to hľadanie vzdal. Totiž, bol som zvyknutý z dôb TP, že v helpe boli aj konštanty a nie len procedúry a funkcie, prípadne typy.
Skúsil som len tak pokusne BITMAP, ale zahlásilo mi toto:
A toto bol vstupný súbor:
Teraz som ho upravil takto:
A dostal som toto:
Stahni si resource hacker a vyrob si primo RES soubor. Budes to mit mnohem rychleji a bez problemu
Za prve necisluj to priamo cislami ale urob si header so symbolmi, ktore budes pouzivat aj v programe.
Najlepsie je pouzivat nejaky resource editor (to Borland neobsahuje resource editor?? ) pretoze rucne to pisat je na zblbnutie, hlavne ak clovek potrebuje zlozitejsi dialog (musel by si rucne vypisovat vsetky suradnice), alebo menu, apod.
O .rc suboroch najdes kopu informacii cez google (je to univerzalnejsie, pre Win32, nie je to definovane borlandom), napr. zacat mozes tu
http://msdn.microsoft.com/library/default.asp?url=/ library/en-us/tools/tools/about_resource_files.asp
hlavne teda ta asi bude zaujimat toto
http://msdn.microsoft.com/library/default.asp?url=/ library/en-us/tools/tools/resource_definition_state ments.asp
meno bitmapy je bud plna cesta alebo relativna mozno musi zacinat bodkou lomitkom apod. a mala by byt v uvodzovkach. Ak chces cislovat tak skus nezacat od nuly.
Najlepsie urobis ak si pozries priamo help k tomu tvojmu resource compileru ktory pouzivas, aby si vedel ako presne to ma vyzerat.
P.S. tie subory mas v
c:\Program Files\Borland\Delphi7\Bin\Sources\_blabla_.bmp ???
Musis mu dat spravnu cestu na tie subory uz pri kompilacii toho .rc suboru, vtedy sa tie subory nacitaju a spoja do resources.
A co keby si pouzil miesto "BITMAP" slovicko "RCDATA"... pri BMP, JPG... pri hocijakych obrazkoch pouzivam RCDATA... pre mna osobne je to najlepsi typ... pomocou toho si prehravam aj MP3... vies v ktorom programe...
Alebo:
*.rc
Skompilovat ho... a potom v delphi nacitat:
edit: samozrejme, ze tie subory musia byt v adresari "/bin" kde je delphi... alebo si vytvor v tom adresari dalsi, kde si naukladas vsetky obrazky a potom zmen aj subor *.rc, kde pridas ten adresar, ktrory si v tom "/bin" vytvoril...
Mne to nejde skompilovať.
Takže problém s kompiláciou bol kvôli číslam na začiatku názvov súborov. Vyriešené. Ďakujem zúčastnením za pomoc.