Конференция "KOL" » delphi7 + rip sysdcu, variants?
 
  • Евгений (08.12.08 16:45) [0]
    появилась нужда доработать старый проект изначально писаный на d5 и
    был использован урезаный system, вобщем в итоге после upx
    исполнимый файл весил 88кб (это было больше года назад)

    так вот, сейчас поставил нулёвый d7, на него повесил kol 2.88,
    заменил в юнитах своего проекта кучу $ENDIF на $IFEND и заребилдил.
    хотел было уже обрадоваться тому какой я молодец, как заметил,
    что exe-файл стал весить уже 111кб. стал разбираться и подумалось
    мне, что замену sysDCU не делал, а когда попытался в моих условиях
    (использование variants.pas) сделать это, то крепко обломился.
    есть ли решение горя моего или вернуться на любимый d5?

    и ещё, дельфя часто падает (появляется окно эксепшена и схлопывается)
    заметил что это бывает когда открываешь формы своего проекта (Shift+F12),
    чувствую связано с процессами отрисовки зеркальных компонент?
    ибо когда работаешь чисто с текстами (Ctrl+F12) такого не происходит.
    сдаётся мне d5 вёл себя стабильнее с kol, хотя тоже бывало зависал,
    особенно когда стоит автосохранение проекта и при выходе забываешь
    закрыть формы (надо оставлять открытыми только тексты) - при входе
    в дельфи происходило зацикливание с 100% CPU.
    или я один такой клоун?
  • Дмитрий (08.12.08 19:11) [1]
    у меня наоборот, падает при выходе с бесчисленными эксепшнами... но это от эксперта какого-то.

    Думаю, тебе нужны FakeVariants...

    "Put this fake unit into directory of your MCK project to prevent adding about 70K of unnecessary code into the application made with new versions of Delphi (6 and higher). Use this unit only in case if Delphi variant type actually is not necessary for your application."
  • Vladimir Kladov © (08.12.08 20:53) [2]
    Fake годится, если не нужен Variants. Но Евгений пишет, что он ему зачем-то нужен. Тогда лучше вернуться к Д5 на этом проекте. А вообще в плане стабильности я предпочитаю Д6 против Д7, и пользую Д6 только из-за ассемблера (BASM в D6 понимает mmx-инструкции), а так и Д5 ничем не хуже (еще и ворочается быстрее). Кстати, на Д7 должно быть установлено 2 обновления если не ошибаюсь, да и на Д6 тоже - без обновлений глючат однозначно.
  • Дмитрий (08.12.08 23:40) [3]
    Ну да, ну да... пропустил... я думал, это он от них избавиться хочет. Кстати, да, на Д7 нужно обновление, без него у меня иноггда жутко глючило при отладке...
  • Евгений (09.12.08 15:49) [4]
    блин засада... дети уничтожили мою старую коллекцию компакт дисков,
    теперь дельфи5 найти не могу, в инете нашёл только триал...
    пойду по друзьям искать

    да, а variants я использую для VarArrayCreate и VarArrayOf, для передачи
    параметров в отчёты создаваемые в экселе...
    если кто отсоветует - буду признателен
  • mdw © (09.12.08 17:39) [5]

    > блин засада... дети уничтожили мою старую коллекцию компакт
    > дисков,теперь дельфи5 найти не могу, в инете нашёл только
    > триал...пойду по друзьям искать

    У меня осталось, вроде. Если есть возможность скачать, могу выложить.

    Насчет Вариант, ситуевина такая. В Д5 все что нужно лежало в System.pas, и подтягивалось по мере надобходимости или в Variants, но он Sysutils не тянул. В Д7 при обращении к типу Variant, делфи цепляет модуль Variants автоматом, даже если в uses он и не указан. И отсюда увеличение размера ехе. + проблемы с использованием Exception, т.к цепляется Sysutils, и другое .... Поэтому: или отказаться от Вариант, или использовать Д5, или есть еще замена Variants для КОЛ, но что то я так и не смог его запользовать, может тупой просто?
  • Евгений (16.12.08 10:54) [6]
    достал с трудом Д5, поставил, воткнул даже на него апдейт.

    а теперь вопрос на засыпку - в последней версии MCK (у меня в mirror.pas
    стоит 2.87) даже после установки кондишина NO_NEWIF, при переоткрытии
    проекта в открываемых юнитах заменяется ENDIF в этом месте
    (и вообще после редактирования)

       
     Form: PControl;
     {$ELSE not_KOL_MCK}
     TForm1 = class(TForm)
     {$IFEND KOL_MCK}
      ^^^^^



    а так же в DPR-файле проекта целиком оплётка
    {$IF Defined(KOL_MCK)} {$I XXXX_0.inc} {$ELSE}
    {$IFEND}

  • Евгений © (16.12.08 11:30) [7]
    чую Dufa там порылся :))
  • D[u]fa (16.12.08 19:17) [8]
    хы.. нет мой код исправляли поэтому не ко мне =)
  • Евгений © (22.12.08 16:12) [9]
    ну блин, мне штоле обуздывать свою лень? :)
    глянь там, исправь халтуру, мне чужая слава не нужна :))
  • D[u]fa (22.12.08 18:09) [10]
    =)) на данный момент нет времени на это.. как появится я конечно погляжу
  • Freeman © (15.01.09 04:01) [11]
    По-моему, проще всего будет скопировать нужный код из Variants.pas и создать одноимённую собственную lite-версию. ИМХО, там куча лишнего кода с классами из-за TCustomVariantType, который в обычном проекте на фиг не нужен. Достаточно ведь установить рабочий VariantManager, чтобы всё запахало?

    P.S. Меня тоже достали бесконечные глюки Delphi 7, пользуюсь 6-й версией.
 
Конференция "KOL" » delphi7 + rip sysdcu, variants?
Есть новые Нет новых   [134431   +15][b:0][p:0.001]