Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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 не спасет |
|
Вернуться к началу |
|
|
|