W magazynie brak miejsca na wykonanie tego polecenia

0

Witam,

Podczas rysowanie bitmap po jakims czasie dostaje komunikat "W magazynie brak miejsca na wykonanie tego polecenia"
Bitmapa jest przerysowywana co 100 milisecund ale za kazdym razem jest tworzona i zwlaniana za pomocą

FreeAndNil()

mimo to po jakims czasie "magazyn" sie zapełnia.
Jak można zwlaniać ten "magazyn" ??

Prosze o pomoc

0

Spotkałem się z tym błędem pracując pod Windows Server 2003, jest on dosyć mylący /a przynajmniej w moim wypadku był/ - u mnie oznaczał brak wolnej pamięci /RAM/. Masz po prostu gdzieś wyciek... i to spory.

0

ale jak podejrze ten porogramik w procesach to zajmowana pamiec jest ok wszystko sie ladnie zwlania. no chyba ze polecisz mi jakis programik to "pozadnego" sprawdzenia wyciekow

0
Fotel napisał(a)

Bitmapa jest przerysowywana co 100 milisecund ale za kazdym razem jest tworzona i zwlaniana
a niby dlaczego??

0
Misiekd napisał(a)

a niby dlaczego??

NIby dlaczego co ?? Jest odswiezana czy zwalniana

0

Stwórz raz, a potem tylko czysc.

0
Fotel napisał(a)
Misiekd napisał(a)

a niby dlaczego??

NIby dlaczego co ?? Jest odswiezana czy zwalniana
no przecież Ci wytłuściłem
ale za kazdym razem jest tworzona i zwlaniana

0

jak utworze tylko raz jest to samo
po kazdym przerysowaniu robie

Bitmap.Free

a mimo to dostepna pamiec maleje. moze jest jakis inny sposob czyszczenia :-(

0
Fotel napisał(a)

moze jest jakis inny sposob czyszczenia :-(
Najszybciej to samemu wypełnić bity z pomocą ScanLine'a. Jakim kolorem chcesz czyścić bitmapę i jaki jest PixelFormat ?

Aha, jeszcze jedno, bitmapa nie ma palety nie ?

0
Fotel napisał(a)

jak utworze tylko raz jest to samo
po kazdym przerysowaniu robie

Bitmap.Free

a mimo to dostepna pamiec maleje. moze jest jakis inny sposob czyszczenia :-(

oczywiscie nie tak tylko tak:

Bitmap.FreeImage
0
adf88 napisał(a)
Fotel napisał(a)

moze jest jakis inny sposob czyszczenia :-(
Najszybciej to samemu wypełnić bity z pomocą ScanLine'a. Jakim kolorem chcesz czyścić bitmapę i jaki jest PixelFormat ?

Aha, jeszcze jedno, bitmapa nie ma palety nie ?

Ale to nie chodzi o czyszczenie samej bitmapy tylko pamieci

0

No właśnie o to chodzi żeby nie czyścić pamięci tylko bitmapę. Po co ją chcesz wywalać z pamięci, jak za chwile znowu ją alokujesz. Napisałbyś coś więcej, co rysujesz i gdzie rysujesz, jak rysujesz. Kawałek kodu by się przydał.

0

Dzieje się to przez to ze uruchamiane to jest w osobnym watku. teraz tylko dowiedziec sie dlaczego :-D

0
Fotel napisał(a)

Dzieje się to przez to ze uruchamiane to jest w osobnym watku. teraz tylko dowiedziec sie dlaczego :-D

Obstawiam brak Synchronize :)

0
Fotel napisał(a)

teraz tylko dowiedziec sie dlaczego :-D
uhhh, osłabiłeś mnie.

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