W magazynie brak miejsca na wykonanie tego polecenia

W magazynie brak miejsca na wykonanie tego polecenia
  • Rejestracja: dni
  • Ostatnio: dni
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ą

Kopiuj
FreeAndNil()

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

Prosze o pomoc

deus
  • Rejestracja: dni
  • Ostatnio: dni
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.

  • Rejestracja: dni
  • Ostatnio: dni
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

Misiekd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7923
0
Fotel napisał(a)

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

  • Rejestracja: dni
  • Ostatnio: dni
0
Misiekd napisał(a)

a niby dlaczego??

NIby dlaczego co ?? Jest odswiezana czy zwalniana

DR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 683
0

Stwórz raz, a potem tylko czysc.

Misiekd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7923
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

  • Rejestracja: dni
  • Ostatnio: dni
0

jak utworze tylko raz jest to samo
po kazdym przerysowaniu robie

Kopiuj
Bitmap.Free

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

adf88
  • Rejestracja: dni
  • Ostatnio: dni
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 ?

  • Rejestracja: dni
  • Ostatnio: dni
0
Fotel napisał(a)

jak utworze tylko raz jest to samo
po kazdym przerysowaniu robie

Kopiuj
Bitmap.Free

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

oczywiscie nie tak tylko tak:

Kopiuj
Bitmap.FreeImage
  • Rejestracja: dni
  • Ostatnio: dni
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

adf88
  • Rejestracja: dni
  • Ostatnio: dni
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ł.

  • Rejestracja: dni
  • Ostatnio: dni
0

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

  • Rejestracja: dni
  • Ostatnio: dni
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 :)

adf88
  • Rejestracja: dni
  • Ostatnio: dni
0
Fotel napisał(a)

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

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.