Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Delphi или C


Blacki ©   (2002-05-20 17:30:00) 

вот такой вопрос: у меня приложение скинуется, плюс много функций выполняется. Если смотреть за размером программы, то он всё вермя увеличивается(щас я уже вроде все битмапы удаляю на каждом шагу, так что она медленне увеличивается). Так вот через некоторое время работы программы, она выдаёт ошибку и выходит. Так вот у меня в связи с этим возникло несколько вопросов:
1. Как позволить моему приложению брать больше памяти(т.е. например delphi.exe занимает 27 мега).
2. Может из-за корявости vcl комопнентов я так мало видел серьёзных программ написанных на Delphi. И в связи с этим более серьёзный вопрос(для меня). Может перейти программировать на VC, потому что уж кажется там нет таких проблем. Или всё таки просто я где то не удалил переменные, а делфи нормально следит за памятью?


Кулюкин Олег   (2002-05-21 08:19:00) [1]

2 Лёша © (20.05.02 21:13)
> ИМХО, ActiveX, как идеология, в Делфи глючно работает
Сильно сказано :))
Хорошо что "ИМХО" в начале

2 Blacki © (20.05.02 17:30)
> Так вот через некоторое время работы программы, она выдаёт ошибку и выходит.
А какую ошибку?
Скорее всего, не убиваются динамически создаваемые объекты...
Впрочем, об этом уже сказали


ETeRNaL   (2002-05-21 05:09:00) [2]

TWebBrowser в делфи ничего не жрет . Во всяком случае под XP .

А что касается VC, я на нем пишу проги . Но часто бывает так, что вылетает ошибка :) а уж я думаю все наслышаны про локализацию ошибок в VC . А на делфях все ОК: вылетела ошибка - посмотрел где - исправил .


Лёша   (2002-05-21 05:02:00) [3]

2 Anatoly Podgoretsky © (20.05.02 21:39)

Вероятно, тема ветки настроила вас на шутовство. Согласен, под такой шапкой никогда не было ничего умного (я имею ввиду заголовком). Тем не менее, если вы имеете суждения о моей компетентности, и думаете, что они интересны, пожалуйста, высказывайтесь. Я всегда приветствую критику. Только впредь прошу вас воздерживаться от подобного тона.

При всём при том, я ни имел сказать ничего, кроме того, что сказал.
И использование ActiveX компонентов, даже таких заюзаных как TWebBrowser, может хранить сюрпризы. Это как вариант использования чего-то стандартного.
И почему с Indy не может происходить что-либо подобное. А уж тем более с левыми компонентами в т.ч. и с ActiveX.

2 cyborg © (20.05.02 21:50)

Вы наверное, как и предыдущий посланец подумали о том, что я из неумения освободить память в TWebBrowser сделал умозаключение о невозможности это сделать.
Я, может, непопулярно нарисовал проблему. Уверяю вас, дело не в кешах и не в клирах. Это баги признанные MS:
Q254637
Q259365
Q273942
Не знаю, как в IE6, но до IE5.5 они присутствуют.


cyborg   (2002-05-20 21:50:00) [4]

Blacki ©
27 метров исполняемый файл :-), да это у тебя рекорд просто, не помню ни одной программы, что бы столько весила (кроме архивных ЕХЕ файлов). Скорее всего рисунков у тебя там налеплено, да ещё и в BMP. Викидывай всё из компонент, и подгружай из файлов во время выполнения программы.
Лёша ©
>TWebBrowser в Делфи коряво работает. Как раз по теме - жрёт и
>жрёт. Попробуйте файл с картинками загрузить метров этак на 4 в
>совокупности с HTML.
Возможно просто дисковый кэш заполняется этими картинками, вот и жрёт, это уже к Дельфи не относится.

Попробуй везде clear-ы делать.


Anatoly Podgoretsky   (2002-05-20 21:39:00) [5]

У танцоров есть некоторые вредные предметы


Лёша   (2002-05-20 21:13:00) [6]

TWebBrowser в Делфи коряво работает. Как раз по теме - жрёт и жрёт. Попробуйте файл с картинками загрузить метров этак на 4 в совокупности с HTML.
Так они все в память загрузятся и очистятся только после завершения приложения. Даже динамическое убивание компонента не помогает.
А в VB проблем нет. Работает прекрасно без утечки. Так почему считается, что это веббраузера глюк а не Делфи?

ИМХО, ActiveX, как идеология, в Делфи глючно работает. Пичём не только юзанье, но и написание. Не из-за корявости левых ActiveX, а из-за возможностей Делфи. Конечно раз на раз не приходится.

Я это к тому, что не всему, что Делфи предлагает доверять можно.


Дремучий   (2002-05-20 21:08:00) [7]

2 Blacki ©
у меня в детстве , когда токо на делфийские ноги вставал, подобная трабла была...

создавал динамически модальные окна, а удалять(динамически) забывал...
причем с немодальными окнами работал нормально. Отак-то.

подобные проблемы лечатся методом Free либо проверкой на существование (например через Assigned) объекта перед его созданием и отменой повторного создания.


Blacki   (2002-05-20 20:00:00) [8]

ок народ убедили, остаюсь на Delphi :)
>чистые API юзать.
а ты их не юзаешь? а что не ужели можно без них обойтись? ну если только калькулятор писать :)


cypher   (2002-05-20 19:46:00) [9]

Начсет "так мало серьезных программ на Дельфи видел" - бред полный, программы не критичные к скорости и размеру в 90% случаях пишутся на Дельфи


Johnny Smith   (2002-05-20 18:45:00) [10]

2Anatoly Podgoretsky © (20.05.02 18:37)
Главное еще как насчет результата, будет ли по данной проблеме
Вполне может быть. Лет эдак через...


Anatoly Podgoretsky   (2002-05-20 18:37:00) [11]

Главное еще как насчет результата, будет ли по данной проблеме


Johnny Smith   (2002-05-20 18:29:00) [12]

2Blacki ©
Может перейти программировать на VC
Давай! Потом расскажешь, как оно... В MFCях корячиться и чистые API юзать.


Anatoly Podgoretsky   (2002-05-20 18:23:00) [13]

На мой взгляд ты не там ищешь врага.


Толик   (2002-05-20 18:06:00) [14]

То, что VCL корректно следит за выделением / удалением памяти - это факт. Корявость VCL - компонентов? Ну, не без багов, так кто же их не допускает? Исходя из моего опыта проблема скорее всего в беспорядочной обработке событий и отсутствии стиля написания кода.


NailS   (2002-05-20 17:39:00) [15]

Как показывает мой скромный опыт, вероятность падения программы из-за "корявости" vcl-комопнентов весьма мала.

>Как позволить моему приложению брать больше памяти

Приложение и так берет столько памяти, сколько ему нужно.

Скорее всего ты просто таки где то не удалил переменные, а делфи нормально следит за памятью, а от этого даже VC не спасет, ИМХО.


Виктор Щербаков   (2002-05-20 17:38:00) [16]


> например delphi.exe занимает 27 мега

Господи, что там у тебя?
Неужто всё - код!


Игорь Шевченко   (2002-05-20 17:37:00) [17]

Второе вернее - без разницы, на чем программировать, если программировать плохо.
В VCL корявости нет - есть кривые руки у использующих эти компоненты.
Серьезный программ на Delphi хватает :-)


Наверх

Титульная страница Поиск, карта сайта Написать письмо