Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Delphi. Проблема с распределение и освобождением памяти

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
skaa



Зарегистрирован: 22.12.2002
Сообщения: 10
Откуда: Skokie, IL

СообщениеДобавлено: Ср Авг 14 2002 17:42    Заголовок сообщения: Delphi. Проблема с распределение и освобождением памяти Ответить с цитатой

Программа на Delphi 5 состоит из формы с единственной кнопкой, при нажатии которой вызывается функция:

procedure TForm1.Button1Click(Sender: TObject);
var
qcsf:Integer;
pRes:PChar;
hMem:HGLOBAL;
begin
qcsf:=4000000;
hMem:=GlobalAlloc(GPTR,qcsf+1);
pRes:=PChar(GlobalLock(hMem));
pRes[qcsf]:=#0;
GlobalUnlock(hMem);
GlobalFree(hMem);
end;

. Если достаточно часто нажимать кнопку, программа начинает усиленно потреблять память и не востанавливает её размер. Я распределяю и освобождаю память, как написано в Windows API Help, но наверное не всё или не так как надо. Кто-нибудь сталкивался с этой проблемой?
Спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Борис
Гость





СообщениеДобавлено: Пт Авг 16 2002 08:54    Заголовок сообщения: Запрети нажимать эту кнопку до окончания процедуры Click Ответить с цитатой

Запрети нажимать эту кнопку до окончания процедуры Click, то есть первым оператором после begin поставь this.enabled:=false, а последним перед end this.enabled:=true. Вместо this запиши то, что в Delphi используется для указания объекта на самого себя.
Ты правильно делаешь, что выполняешь то, что написано в Windows API Help, но неправильно делаешь то, принимаешь все за чистую монету. Это UNIX'ы и им подобные подтирают за програмистом все, что он оставляет после себя при неправильном программировании (незакрытые файлы, захваченная память, мусор на экране), а Билли Гад сам гадит в программы, даже правильно написанные. Наверное, он считает, что персональный компьютер -- это некомпьютер, а нужник. Часто это так и есть, но это не его нужник, какого черта он им пользуется как своим? Я вообще стал думать, что объектное программирование прдумали для борьбы идиотизмом виндов.
Спасибо за внимание.
Вернуться к началу
skaa



Зарегистрирован: 22.12.2002
Сообщения: 10
Откуда: Skokie, IL

СообщениеДобавлено: Пт Авг 16 2002 15:46    Заголовок сообщения: Re: Delphi. Проблема с распределение и освобождением памяти Ответить с цитатой

Спасибо!
А про Windows я такого же мнения.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
???
Гость





СообщениеДобавлено: Пт Сен 20 2002 16:15    Заголовок сообщения: Re: Delphi. Проблема с распределение и освобождением памяти Ответить с цитатой

Мда. Интересно, зачем делать кнопку неактивной на время действия ее обработчика?
Это же все выполняется в одном потоке. Так что код не вызовется второй раз, пока не отработает предыдущий.
А насчет того кто куда гадит, так если кривыми ручками, то нмкакой UNIX не спасет
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...