-
-
Спасибо! Очень любопытная тулзовина! Жаль, что мой проект не переварила... За инфу про ModelMaker тоже спасибо!
-
> Не скажу что у меня прямтаки удобное, я его просто банально > не довел до конца, т.к. нет времени, а по моим прикидкам > чтобы довести это дело до ума нужно месяца три. > Для работы использовали эту утилитку несколько раз чтоб > понять откуда ноги растут у того или иного модуля, нам в > принципе для небольшого рефакторинга хватило. > Воть: 1.4Мб > http://rouse.drkb.ru/other/unitweb.zip
У меня почему-то не работает :(. "List index out of bounds (-1)" после открытия любого dpr'а, в частности самого простого с одной формой, специально созданного для этого в Delphi 7. И никаких графиков и списков как на скриншоте не появляется. С какой стороны подкрутить, чтобы заработало? ^^
-
А она умеет только от 2006-ой дельфи и выше проекты кушать :)
-
Если кому нужно будет - то в могу чуть подправить и выложить полностью с исходниками. Дома в принципе семерка стоит, под нее можно будет допилить...
-
> [44] Rouse_ © (11.03.09 14:55) > Если кому нужно будет - то в могу чуть подправить и выложить полностью с исходниками.
"Надо, Саша, надо" (с) Почти дословная :) Очень надо. Пару дней назад прижало и сама начала писать что-то типа dpr - "парсилки". А тут такая удача. Так что давай "подправляй и выкладывай полностью с исходниками". :)
-
Надо, значит допилю :)
-
> [45] Riply © (11.03.09 15:22)
Сейчас у меня даже получение списка файлов проекта до конца не реализовано. Споткнулась на конструкциях типа:
{$IFDEF SOME_CONDITION} {$INCLUDE ..\..\..\MySuperPuper.pas} {$ENDIF}
т.к. еще не научилась определять "продефайнено" ли здесь(в данном месте данного юнита) SOME_CONDITION или нет.
-
Я тебе краткое направление дам - сначала определи все дефайны проекта, включая глобальные, потом определи места откуда до кода дефайн включен, потом вычисти все комментарии в тексте, при этом важно отличать дефайн от комментария типа {}, потом удали весь текст в выключеных дефайнах и после этого получишь чистый текстовик который можно элементарно парсить.. У меня все это чиститься за исключением вот таких конструкций: bla..bla
bla..bla
bla..bla
-
> [48] Rouse_ © (11.03.09 15:44) > Я тебе краткое направление дам
Спасибо :) Но я пока повременю в бой бросатmся - подожду твоих исходников :)
-
Стукни в аську, в профиле - так проще будет, вдвоем быстрее доведем, а то я в одиночку неделю телепаться буду, если не больше :)
-
Jedi Code Formatter с исходниками - рулез фарева. Там готовый парсер
-
Удалено модератором Примечание: больше не буду
-
> Rouse_ (11.03.2009 16:09:50) [50]
Налицо сговор, один пилит, а вторая допиливает :0)
-
Как всё таки насчет того, что бы колл-стэк посмотреть? С включенными дебажными либами?
-
Кол-стек в какой точке? На какой вопрос Вы ищете ответ? Я со своим вроде разобрался.. см. IGray (11.03.09 13:16) [37] Если нужно - поясню подробнее.
-
>Думаю это уже слишком, т.к. инициализация модулей БЕЗ циркулярных референсов выполняется совершенно спокойно и однозначно...
Увидел.
-
> Считал, что секция инициализации по определению вызывается > первой ВСЕГДА!
Естественно всегда!
Но если в проекте несколько модулей, в каждом есть секция инициализации, то все эти секции выполняются в порядке указания модулей в USES. Соответственно, если в секции инициализации одного модуля вызывается некая процедура(из этого модуля или из другого - неважно), то эта процедура выполнится до того, как начнётся выполняться инициализация следующих по порядку модулей.
Вроде бы здесь всё логично и вопросо не должно возникать?
-
Если в функцию (функции) вставить условие if not RoutineInitialized then
InitializeRoutine; то можно избавиться вообще от секции инициализации и не париться про порядок вызова оных при старте. Если не охота плодить условия в функциях, то можно эти 2 строки вынести во внутреннюю функцию и вызывать уже ее. Лишняя строка читабельность кода не повредит.
|