[ stameni @ 01.02.2025. 14:03 ] @
Napravio sam dve sličice i smestio ih u RC. Taj RC sam kompajlirao u RES. U source sam stavio
Code:
{$R fajl.res}
Potom sam u OnClick stavio sledeće:

Code:

begin
  Image1.Picture.Bitmap.LoadFromResourceName(Hinstance, 'ID_BITMAP1');
  Application.ProcessMessages;
  Sleep(1000);
  Image1.Picture.Bitmap.LoadFromResourceName(Hinstance, 'ID_BITMAP2');
  Application.ProcessMessages;
  Sleep(1000);
end;


Kompajliranje prođe kako treba, ali u izvršavanju izbacuje exception na prvom LoadFromResourceName (tipa da ne može da nađe resurs).

Program je veoma jednostavan, i trebalo bi da izbacuje dve sličice preko Image komponente. Projekat ide uz poruku (bez EXE-a).

Nikako da ukapiram šta mu fali.
[ milnen @ 01.02.2025. 18:57 ] @
Primetio sam jedan problem, ali i kada se on ispravi, opet neće da radi kod mene.
Naime, u rc fajlu piše da su imena bitmapa IDB_BITMAP1 i 2, a u programu ID_BITMAP1 i 2.
U novijim Delphijima postoji neki resource manager, u koji se ubace resursi, dodele se imena i tako radi kod mene.

Inače, kod mene hoće da radi tvoj program ako se resursi pozivaju po ID-u, a ne po imenu. Tačnije, radi sa:
Code:
Image1.Picture.Bitmap.LoadFromResourceID(Hinstance, 1);
Image1.Picture.Bitmap.LoadFromResourceID(Hinstance, 2);
[ stameni @ 02.02.2025. 13:01 ] @
Citat:
milnen: Primetio sam jedan problem, ali i kada se on ispravi, opet neće da radi kod mene.
Naime, u rc fajlu piše da su imena bitmapa IDB_BITMAP1 i 2, a u programu ID_BITMAP1 i 2.


Eksperimentisao sam sa promenjenim IDB_BITMAP1 u ID_BITMAP1, i obrnuto, ali ista priča: iskompajlira se i pukne u run-timeu.

Citat:
U novijim Delphijima postoji neki resource manager, u koji se ubace resursi, dodele se imena i tako radi kod mene.


Probao sam i tako, ali jednako puca.

Najpre sam radio sa resource editorom iz Borland C++, da bih napravio RC i da bih taj RC kompajlirao u RES. Potom sam koristio Image Editor iz Delphija 7, koji ne ume da napravi RC, ali zato odmah generiše RES (a, koliko sam primetio, može i da učita taj RES), tako da se preskače jedan korak u celoj priči, ali ne radi.

Citat:
Inače, kod mene hoće da radi tvoj program ako se resursi pozivaju po ID-u, a ne po imenu. Tačnije, radi sa:
Code:
Image1.Picture.Bitmap.LoadFromResourceID(Hinstance, 1);
Image1.Picture.Bitmap.LoadFromResourceID(Hinstance, 2);


E, ovo već neće ni da se kompajlira Naime, drugi argument mora da bude String; a ako mu ubaciš IntToStr(1) i IntToStr(2), ponovo zavitlava kao na početku priče.
[ stameni @ 02.02.2025. 13:06 ] @
P. S. Ispravka, radi (i to vrlo lepo): prevideo sam da si stavio funkciju LoadFromResourceID umesto LoadFromResourceName.

Muči me ovaj problem duže vreme, i svašta sam pokušavao da ga rešim. Čini mi se i da sam probao sa LoadFromResourceID, pa da nije radilo. Ipak, na ovaj način radi.

Hvala mnogo
[ savkic @ 03.02.2025. 00:49 ] @
> Najpre sam radio sa resource editorom iz Borland C++, da bih napravio RC i da bih taj RC kompajlirao u RES.
> Potom sam koristio Image Editor iz Delphija 7, koji ne ume da napravi RC, ali zato odmah generiše RES (a, koliko sam primetio,

Meni je najlakse bilo to preko bat fajla i komande linije npr.

Fajl Data.rc

FILE1 RCDATA "..\Uputstvo\ReadMe.txt"
imgs32 RCDATA "imgs32.png"
imgsMain RCDATA "imgsMain.png"

Fajl ResCompile.bat (koji pozoves jednom kad se slike ili fajl promeni)
brcc32.exe -l409 Data.rc