Potrzebny kod do ładowania jpg z zasobów dll lub innego pliku nie wczytujęcego się na stałe do exe
Muszisz stworzyć zasoby w DLL i wyeksportować je z biblioteki do swojego programu za pomocą Funkcji lub procedury. Pisałem już coś takiego ale mam to w domu a teraz jestem w pracy.
Biernacki Arkadiusz Szczecin (ABJ) abo@interia.pl
:D Coś znalazłem w pracy to o czym myślałem oto treść :
library ResJpgfile;
uses
Windows,
SysUtils,
Classes;
{$R ABJ.RES} //Tu musisz miec swoje zasoby pod RCDATA
var
Res : TResourceStream;
procedure zgrajplik(resfile,fullfile,temp:string);stdcall;
begin
Res := TResourceStream.Create(hInstance, resfile, RT_RCDATA);
Res.SaveToFile(temp+fullfile);
Res.Free;
end;
exports
zgrajplik;
begin
end.
Ta procedura wyciąga z DLL czyli z zasobów np. Twoje obrazki i zapisuje na dysku a gdzie to będzie zależało od Ciebie
Tworzenie zasobu przykład plik o nazwie ABJ.RC:
abandoned_hope RCDATA "abandoned_hope.xm"
amazonas RCDATA "amazonas.s3m"
android RCDATA "android.xm"
ARYX RCDATA "ARYX.s3m"
dream_about_driving RCDATA "dream_about_driving.xm"
falco RCDATA "falco.xm"
galaxy_2 RCDATA "galaxy_2.mod"
Hypn RCDATA "Hypn.mod"
Illumin RCDATA "Illumin.mod"
intro RCDATA "intro.mod"
lotus_3_cd2 RCDATA "lotus_3_cd2.mod"
lotus_3_cd6 RCDATA "lotus_3_cd6.mod"
Odysseyp RCDATA "Odysseyp.mod"
Patrol RCDATA "Patrol.mod"
ride RCDATA "ride.mod"
winter_techno RCDATA "winter_techno.mod"
a kmpilujesz tak : BRCC32.EXE abj
W swoim programie Deklarujesz procedure
procedure zgrajplik(resfile,fullfile,temp:string); stdcall; external 'ResJpgfile.dll' ;
a odczytujesz tak :
zgrajplik(nazwa,full,kosz);
gdzie :
nazwa : nazwa z zasobu (np. : abandoned_hope)
Full: ścieżka gdzie ma być zgrane
Kosz: Nazwa pliku (jaka ma być)
a następnie np.
image1.Picture.LoadFromFile(kosz+full);
jak już sobie odczytacz to potem skasuj ten plik funkcją
deletefile(kosz+full);
i sprawa załatwiona
a do jpga musisz zdeklarować bibliotekę czyli :
uses
jpeg;
Powodzenia
Biernacki Arkadiusz (ABJ) abo@interia.pl
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.