![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| AlexLogos |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 23.4.2009 Репутация: нет Всего: 1 |
Уважаемые форумчане, есто у меня вопрос теоретический и не очень критический, но Бог его знает, где может аукнуться.
Так вот пишу некую програмулину для работы с базой данных. Ну и как заведено в таких случаях програмулина эта позволяет ввод данных в базу. И че-то мне захотелось чтоб она подстраивалась под количество полей таблицы с которой работает, а таблиц много... Ввод буду производить последствием запроса Insert к базе (не надо мне в форум по базам, это предисловие). Так как в таблицах есть поля которые будет заполнять математика программы то нужно выводить на форму только те Edit'и которые будет заполнять пользователь. И вот я подумал что не плохо было бы записать те поля которые требуют ввода в ini-файл и соответственно читать и создавать их оттуда. Так вот, я создал рекорд и масив этих рекордов типа:
И вот я пишу процеруру которая собственно малюет Лейблы и Едиты там где мне надо:
Все отлично работает - выводит на экран (где суть вопроса?! (летят тапки...)) Пришел момент освободить форму ввода для одной таблицы и намалевать ее для другой, и я пишу процедуру
Собственно ничего особенного не происходит - форма очищается. Ни ошибок ни вылетаний, все окай. НО! Смотрю я в диспетчер задач и что я вижу: нажимаю я на создания формы - прога забирает память, нажимаю на кнопку очистки - отдает. Все казалось бы неплохо, но каждый раз при создании формы прога забирает на 8-16 больше (в зависимости от сеанса), и меньше отдает, короче растет мое дите))) Я как бы этого не планировал. Ладно она сейчас забирает 5-7Мб (тоже не ясно почему такой разброс), но потом когда проект вырастет где взять памяти на его апетиты(купить не предлагать)? Что я не так сделал, куда девается память, какие принципы ее выделения? Я уже прошу извенения, знаю что тема по памяти очень обширна, поэтому хотелось бы получить краткую консультацию по вопросу правильного убиения созданных мною обьектов. Заранее спасибо. |
||||||
|
|||||||
| RomanEEP |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 18.5.2006 Где: Коломна Репутация: 5 Всего: 8 |
Тема памяти для прикладных программ сводится только к двум процедурам ДатьПамять() и УдалитьПамять()
И их количество вызовов по завершению программы должно быть одинаково. Для автоматизации проверки этого условия для Delphi есть отличный менеджер памяти FastMM кот к тому же свободен от проблем фрагментации памяти. Еще не понял такого финта ушами
почему нельзя
а еще гораздо лучше RTableField сделать классом, кот сам уничтожает объекты метка и едит. А вместо массива рекордов использовать TObjectList И немного философский вопрос - зачем создавать столько компонентов, когда можно использовать StringGrid? |
||||
|
|||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| AlexLogos |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 23.4.2009 Репутация: нет Всего: 1 |
Спасибо, товарищи.
Если б делал прогу для себя - мне все-равно как будет выглядеть форма ввода данных. Но вот сказали - нада по красоте чтоб было. Хотя этот вариант пока не обговаривался, может и StringGrid пойдет. Хотя для меня было б интересно разобраться в поставленном вопросе - мало ли когда пригодиться. Классная статья, Эксперт. Это сообщение отредактировал(а) AlexLogos - 17.3.2010, 10:25 |
|||
|
||||
| AlexLogos |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 23.4.2009 Репутация: нет Всего: 1 |
Всем спасибо. Тема закрыта.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |