Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »
Страницы: 1 2 3 4 5 6

KOL 3.23 [Delphi, Windows]


Vladimir Kladov ©   (21.02.15 10:24

[-] Исправления в KOL: WStrRScan - код скопирован из StrRScan. Исходная версия WStrRScan работала некорректно в случае отсутствия искомого образца.
[-] Исправления в обработчике WM_NCDESTROY для корректного уничтожения меню (не мог быть разрушен после разрушения окна-владельца).
[*] Улучшена функция ClipboardHasText - удален ненужный код.
[+] Метод TBitmap.CopyToClipboard переименован в CopyToClipboardAsDIB, добавлена другая версия CopyToClipboard, использующая формат CF_BITMAP (существенно более короткий код).


QAZ   (21.02.15 14:00[1]


> для корректного уничтожения меню

и какие такие дефины в проекте должны стоять, чтоб до этого исправления дошёл код вообще????

при закрытии в тестовом приложении как были утечки меню из под дельфи, так и остались, а в крупном проекте еще и ошибки памяти вылезли, попытка модификации после освобождения


QAZ   (21.02.15 14:05[2]

какая связь между этими адресами?
http://sourceforge.net/projects/kolmck/
http://sourceforge.net/projects/keyobjectslibrary/


Vladimir Kladov ©   (21.02.15 19:29[3]


> чтоб до этого исправления дошё

Да, я забыл про kol_asm.inc. Перевыложил, заодно и в kol.pas пару исправлений внес. В частности, добавил, что по заклинанию LET_MENU_LEAK все будет как раньше. Еще раз проверил в MemProof 0.9.4.8 и с FastMM3. Все чисто.


> какая связь между этими адресами?http://sourceforge.net/projects/kolmck/http:
> //sourceforge.net/projects/keyobjectslibrary/

Один из них не мой.


QAZ   (21.02.15 19:59[4]


> Один из них не мой.

не ну я так-то догадался, просто они тож чето там улучшают
вы типа не скооперированы вообще?


QAZ   (21.02.15 20:08[5]


> Да, я забыл про kol_asm.inc. Перевыложил, заодно и в kol.
> pas пару исправлений внес. В частности, добавил, что по
> заклинанию LET_MENU_LEAK все будет как раньше. Еще раз проверил
> в MemProof 0.9.4.8 и с FastMM3. Все чисто.

не, не работает
вот проверь тут полный комплект https://yadi.sk/d/1JxuHV9kedCXf запускай из под среды


QAZ   (21.02.15 20:22[6]

если это - это, то это копец, такая куча дефинов что до Final вообще недоходит

   WM_NCDESTROY:
                      {$IFnDEF SMALLER_CODE}
                      if  fHandle = Msg.hwnd then
                      {$ENDIF}
                      begin
                          {$IFNDEF LET_MENU_LEAK}
                          if  IsForm then
                          begin
                              {$IFNDEF SMALLER_CODE}
                              Hide;  // VK: to destroy form visually faster, 18.02.2015
                              {$ENDIF}
                              {$IFNDEF SMALLEST_CODE}
                              Final; // VK: to provide correct menu destroying, 18.02.2015
                              {$ENDIF}
                          end;
                          {$ENDIF}
                          {$IFnDEF SMALLER_CODE}
                              {$IFDEF USE_PROP}
                              RemoveProp( fHandle, ID_SELF ); //********* Added By M.Gerasimov
                              {$ELSE}
                              SetWindowLong( fHandle, GWL_USERDATA, 0 ); // VK + Alexey Kirov, 23.02.2012
                              {$ENDIF}
                          {$ENDIF} //-------------------------------------------
                          Default;
                          Exit;
                      end;


с PAS_VERSION вообще ниодна строчка в function TControl.WndProc( var Msg: TMsg ): Integer; неактивна в KOL.Pas


Vladimir Kladov ©   (22.02.15 10:52[7]

Вообще-то, все доходит. Это у Вас что-то неправильно. Например, не та версия исходников компилируется.

Мои исправления вообще не касались утечек памяти. FastMM3 их не показывал. Я решал проблему утечки ресурса меню. Пытался решить. Сейчас выкладываю новое исправление. На этот раз удалось лучше. И заодно проблемы с FastMM4 устраняются. Но исправление слишком радикальное, меняется порядок уничтожения окон. Может вылезти что угодно. Поэтому все можно будет вернуть по заклинанию LET_MENU_LEAK.

Уже выложил.


QAZ   (22.02.15 11:18[8]

ну во первых в комплекте отсутствует koladd.pas хотя требуется для установки


QAZ   (22.02.15 11:30[9]

во вторых чую придется снимать кино....


QAZ   (22.02.15 12:40[10]

в третьих вот видео (15Мб) https://yadi.sk/d/NLj7kB7NeppV9
а вот фастмм из видео https://yadi.sk/d/zqkEhLZbeppNk
условия съемки - чистая ХРшка + нулевая 5ка
что я там делаю не так?


Vladimir Kladov ©   (22.02.15 13:12[11]

Сразу: FastMM я скачал сам, версия 4.991, ваша 4.97. Вряд ли много отличий, но лучше, если Вы обновитесь. Дальше: я использовал Delphi7 под XP SP3 (виртуалка) со всеми обновлениями. delphi5 я давно не использую, но даже если с ней работать, для нее есть обновления. Слово нулевая нехорошо звучит.

Далее, для проверки с FastMM он должен быть первым в проекте. Рекомендую проверять это перед каждым билдом. MCK любит ссылку на KOL ставить на первое место.

Кроме того, для лучшей диагностики надо править опции проекта, убирать оптимизацию, добавлять в линкере символы TD32, тогда диагностика показывает красивше. Если до нее доходит дело, конечно.


QAZ   (22.02.15 14:03[12]


> нулевая нехорошо звучит

это звучит как "с обновой, без экспертов, без компонентов, с дефолтными настройками"
XP SP3 (виртуалка) со всеми обновлениями  - тоже самое
рабочий Delphi7 + полуживая Win7x64 - тот же результат
кудаб не писал FastMM, даже в сам кол.пас - никакой разницы
хоть с какими настройками отладки
версию FastMM попробую канешн обновить, но веть логично, что если  например в 2.79 такого не происходит, то проблема не в FastMM?


Vladimir Kladov ©   (22.02.15 14:25[13]

Да, не в нем. Потому что я уже попробовал и с вашей версией FastMM, и с Delphi5 уже (и даже без обновлений). И у меня все чисто. Еще подумал, может, FastMM молча падает. Нет, останавливается на строке кода FinalizeMemoryManager, по F8, выполняет и хочет работать дальше. Ни сообщений, ни логов. Добавляю опцию LET_MENU_LEAK, сообщения про утечки есть.

Проверьте, что с сайта KOL скачалась именно версия 3.23 (в начале kol.pas  VERSION 3.23+). MCK я не менял с июня.

Если не компилятор (версия Delphi), остается только железо и ОС, а это очень странно.


QAZ   (22.02.15 14:31[14]

вобщем с "новым" фастмм и всеми дебугами без оптимизаций
без LET_MENU_LEAK без среде в винде также ошибка
с LET_MENU_LEAK в винде без ошибки, а в среде вот такой вот файл с номерами строк, все по ГОСТу
https://yadi.sk/i/znRAQNpxepuP4


Vladimir Kladov ©   (22.02.15 17:42[15]

Обновил только что, 3.23++. Удалось получить сообщения под win7. Не знаю, виртуалка виновата, или еще что, но под XP оно как-то не детектило.


QAZ   (22.02.15 17:52[16]

если DEP включен для всех прог и делфи с проектным файлом не внесено в исключения, тогда может проглатывать


QAZ   (22.02.15 19:22[17]

так так так...
с меню вроде норм стало, по крайней мере, тестовый примитив и прога средней сложности молчит
однако в навороченной есть косяк. но уже не с меню, а похоже на Tlist, тоже из под делфи


QAZ   (22.02.15 19:42[18]

чет не пойму толи он врет с номерами строк толи с названием функций, причем через раз
глянь лог может поймешь https://yadi.sk/i/0Qq_PaHaeqA7T


QAZ   (22.02.15 20:11[19]

о еще косяк в другой поделке
если я впихиваю формы-фрэймы в таб контрол вот так (может это через Ж..)

NewForm2(Form2,TabControl1.Pages[2]);
NewForm3(Form3,TabControl1.Pages[1]);

то из под делфи опятьже утечка по этим 2м вкладкам или фрэмам, когда табконтроле были панели такого не было
https://yadi.sk/i/2iRkCf-NeqC5P
с какой версии эти глюки не скажу, ибо они прятались среди громадья глюков меню


Страницы: 1 2 3 4 5 6 версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо