brak miejsca w magazynie?

0

hej! mam problem natury technicznej i nijak nie umiem sobie z tym poradzic. napisalem program ktory wymaga zapisu plikow na dysk i wszystko sie super kompiluje, tyle ze po wykonaniu dokladnie 52 operacji zapisu pliku na dysk wyskakuje mi error ze brak miejsca w magazynie na wykonanie tej operacji... wyskakuje to przy linijce

posteppracy.SaveToFile(sciezka+ '.jpg');

gdzie postep pracy to obiekt typu...

posteppracy:=tjpegimage.create;

laczna waga plikow to okolo 2,5 MB wiec nie wiem w czym tkwi problem. dziekiz a pomoc! pozdrawiam

0

A zwalniasz wcześniej tworzone jpeg'i ?

0

Czesc! zwalniam... na forum byl tez taki problem poruszany i sprawa sie tyczy uchwytow najprawdopodoniej... niemniej jednak jakies jednej konkretnej odpowiedzi niewystosowano... moze ktos jednak od czasow tamtych postow "wyczarowal"

0

Spróbuj zamiast zwykłego Free, FreeAndNil(); z unitu SysUtils.

0

Hej! uporalem sie z tym na okolo troszke innym sposobem, ale co najwazniejsze dziala, nie wiem w czym tkwil blad ale dla potomnych zostawiam kod :) w usues trzeba dodac jeszcze conieco, a sam kod wyglada tak:

var
RysunekJPEG : TJPEGImage;
RysunekBMP : TBitmap;
DCDesk: HDC;
bmp: TBitmap;
begin

bmp := TBitmap.Create;
bmp.Height := Screen.Height;
bmp.Width := Screen.Width;
DCDesk := GetWindowDC(GetDesktopWindow);
BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
DCDesk, 0, 0, SRCCOPY);
bmp.SaveToFile('d:\ScreenShot.bmp');
ReleaseDC(GetDesktopWindow, DCDesk);
bmp.Free;

RysunekBMP:=TBitmap.Create;
RysunekBMP.LoadFromFile('d:\ScreenShot.bmp');

RysunekJPEG:=TJPEGImage.Create;
RysunekJPEG.Assign(RysunekBMP);
RysunekJPEG.SaveToFile(sciezkaJPG+'.jpg');

RysunekJPEG.Free;
RysunekBMP.Free;

Jest to zapewne metoda "na okolo" zatem prosze o niekrytykowanie amatorskiego podejscia do sprawy ;) niemniej jednak dziala :) pozdrawiam i zycze owocnej pracy
Tomasz Hadrowski

1 użytkowników online, w tym zalogowanych: 0, gości: 1