Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2010, 19:30   #1
finder_sl
 
Регистрация: 02.03.2010
Сообщений: 9
По умолчанию Недостаточно памяти для обработки команды TBitMap

Доброго времени суток.
Такая проблема: в программе создается TBitMap размером 7000х5000. Программа вылетает с ошибкой "Недостаточно памяти для обработки команды"
При этом, ошибка появляется через раз, то есть иногда Все срабатывает корректно...
В чем может быть дело?
finder_sl вне форума Ответить с цитированием
Старый 02.03.2010, 20:05   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

А старую копию удаляете, прежде чем создать новую?

Сделал такую программу:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  b: TBitMap;
begin
  b:=TBitMap.Create;
  b.Width:=7000;
  b.Height:=5000;
  b.Canvas.Ellipse(100,100,300,200);
  Form1.Canvas.Draw(0,0,b);
//  b.Free;
end;
Если не использовать b.Free, вылетает с третьего раза с такой же ошибкой.
_Dmitry вне форума Ответить с цитированием
Старый 02.03.2010, 20:10   #3
finder_sl
 
Регистрация: 02.03.2010
Сообщений: 9
По умолчанию

Да, удаляю... Но при этом, она вылетает вообще при новом запуске. То есть, запускаю программу она отрабатывает нормально, закрываю ее, снова запускаю - и она выводит ошибку. При этом не обязательно после одного запуска...
finder_sl вне форума Ответить с цитированием
Старый 02.03.2010, 20:22   #4
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Тогда, код в студию.
_Dmitry вне форума Ответить с цитированием
Старый 02.03.2010, 20:30   #5
finder_sl
 
Регистрация: 02.03.2010
Сообщений: 9
По умолчанию

Код:
TMain = class
   private
    FCan: TBitmap;
   public
    property Can: TBitmap read FCan write FCan;
    constructor Create;
    {.....Список методов}

  end;

constructor TMain.Create;
begin
 Can:=TBitmap.Create;
 Can.Width:=4724;
 Can.Height:=7087;
end;

procedure TForm2.BitBtn1Click(Sender: TObject);
var c: TMain;
begin
 try
  c:=TMain.Create;
 {.....Вызов других методов}
 finally
 c.Can.Free;
end;

end;
finder_sl вне форума Ответить с цитированием
Старый 02.03.2010, 20:41   #6
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

А сам Main очищаете?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 02.03.2010, 20:46   #7
finder_sl
 
Регистрация: 02.03.2010
Сообщений: 9
По умолчанию

Да, если деструктор TObject подходит для этой цели. В TMain больше нет никаких полей, только методы.
finder_sl вне форума Ответить с цитированием
Старый 02.03.2010, 20:47   #8
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Напрямую вызываете деструктор? Попробуйте free для Main по OnDestroy формы.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 02.03.2010, 20:53   #9
finder_sl
 
Регистрация: 02.03.2010
Сообщений: 9
По умолчанию

Не помогает. И ошибка возникает еще в BitBtn1Click.
finder_sl вне форума Ответить с цитированием
Старый 02.03.2010, 20:56   #10
finder_sl
 
Регистрация: 02.03.2010
Сообщений: 9
По умолчанию

И я только что проверил приведенный Вами пример - он тоже не работает. С той же самой ошибкой вылетает при первом клике.
finder_sl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
недостаточно памяти kaizer131 Microsoft Office Access 12 04.03.2010 05:14
Массив TBitmap, "Недостаточно памяти для обработки команды" Роман Радер Мультимедиа в Delphi 5 05.04.2009 18:14
недостаточно оперативной памяти для отображения информации VVlad69 Microsoft Office Access 0 02.04.2009 14:51
Thread creation error - Недостаточно памяти RealSwift Общие вопросы Delphi 1 06.07.2008 12:27
Команды обработки строк! Proskurin Помощь студентам 11 06.05.2008 16:11