![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Версия 2.38 [Delphi, KOL/MCK, Windows]
Vladimir Kladov © (2006-08-25 18:58:00)
Новости от 25 августа 2006 г.
Новости KOL и MCK (v2.38):
[*]MCK: оптимизирована генерация кода, работает теперь намного быстрее. Добавлены свойства TKOLProject.GeneratePCode и TKOLProject.ReportDetailed.
[*]KOL: изменения в файле KOLDEF.INC для лучшей работы Delphi 2005 и Delphi 2006 с KOL (хотя эти версии Delphi и не поддерживают MCK). Изменения от Thaddy de Koning, спасибо.
[+]KOL: добавлена функция SwapListItems для использования с SortData для сортировки списков (TList).
[-]KOL: изменения в коде функции iSqrt - для случая старых компиляторов (Delphi4 и старше) возвращен прежний, более совместимый, код (кажется, именно этот вариант кода работает и с Free Pascal 1.XX.XX). Для более современных компиляторов Delphi и Free Pascal новый код сохранен (должен быть более оптимален).
[*]KOL/MCK: вызов MessageBox в паскаль-версии метода TControl.CreateWindow для случая, когда дескриптор окна не создан успешно обращением к CreateWindowEx, перемещен в скобки {$IFDEF DEBUG_CREATEWINDOW}...{$ENDIF}. Это заодно исправляет работу в Delphi IDE с проектами MCK, содержащими графические (не оконные) контролы.
[*]KOL: небольшое изменение в методе TBitmap.GetCanvas: кисть (Brush) создается только в случае, когда свойство BkColor не равно черному цвету. В asm-версии, это добавляет к коду только одну 2х-байтную инструкцию, делая приложение при этом несколько эффективнее.
[-]KOL: исправлен метод TBitmap.Convert2Mask. Для изображений с шириной, кратной 32, прежний код работал некорректно, делая первые 8 пикселей каждой пиксельной линии полностью непрозрачными. Спасибо за баг-репорты.
[-]KOL: исправлен метод TControl.GraphicButtonMouse. Если клавиша мыши была нажата вне графического контрола, а отпущена на нем, это приводило к вызову RefDec без соответствующего парного вызова RefInc, и в результате контрол самоуничтожался, исчезая с формы. Спасибо за баг-репорт.
[*]MCK: стало возможно пересобрать MCK с опцией DISABLE_GRAPHIC_CONTROLS для единовременной конвертации всех графических контролов в обычные оконные без исправления для всех них значения свойства Windowed (свойство сохраняет свое значение, но MCK при наличии этой опции считает все контролы оконными, и генерирует код как для оконных).
AndreyRus (2006-08-28 13:49:00) [1]Ну и ладушки :)
Это не имеет отношения к KOL.
ANTPro (2006-08-28 12:15:00) [2]AndreyRus (27.08.06 18:26) [16]
Непонял???
homm (2006-08-27 20:32:00) [3]> ANTPro = Паровоз 2? :)
Не стоит вот так сразу ярлыки на людей вешать ;)
AndreyRus (2006-08-27 18:26:00) [4]ANTPro = Паровоз 2? :)
ANTPro (2006-08-27 14:59:00) [5]Vladimir Kladov (27.08.06 13:49) [14]
Да я знаю просто так нагляднее посмотреть, что используется программой из стандартных модулей. Что бы потом избавиться или заменить не нужное.
Vladimir Kladov (2006-08-27 13:49:00) [6]Build with RunTime packages - не имеет смысла и не нужен в проектах с KOL. Вы не сможете запустить приложение с этой галочкой на машине без этих пакетов.
ANTPro (2006-08-27 12:57:00) [7]На форуме увидел такую вещь:
"Вариант KOL для классов"
А чем конвертируется KOL?
ANTPro (2006-08-27 12:45:00) [8]Vladimir Kladov (27.08.06 12:17) [11]
Я не видел дискуссии по этому поводу на форуме.
Она собственно здесь ...
Я не заглядывал в ActiveX. Но если проделать все выше описанное, то некоторые модули будут браться из rtl 70.bpl (вот здесь то и всплывает ActiveX)
Vladimir Kladov (2006-08-27 12:17:00) [9]А в чем проблема заключатся? В тех версиях Delphi, что я использую (до 7), в ActiveX нет строк initialization/finalization. Или они появляются в BDS 2005-2006? Отключить commdlg (который задействует shlobj, из которого и идет обращение к ActiveX) несложно. В следующей версии будет. Я не видел дискуссии по этому поводу на форуме. Ссылку не могли бы дать?
ANTPro (2006-08-27 12:07:00) [10]AndreyRus (27.08.06 11:42) [9]
Я так и знал ...
AndreyRus (2006-08-27 11:42:00) [11]
> KOL содержит ссылку на модуль под названием ActiveX. А этот
> модуль содержит в себе секцию инициализации/финализации
> (кстати, как и Types). Компилятор сует это в любой EXE/DLL.
Ерунда. Посмотри исходники этих файлов на предмет строк - Initialization и Finalization.
> Component>Install Packages…> поставить галочку Build with
> Runtime packages давим кнопочку OK. Компилируем.
В программа созданных с помощью KOL использование "Build with Runtime packages" бесcмыслено :)
ANTPro (2006-08-26 23:58:00) [12]AndreyRus (26.08.06 22:31) [7]
А че собственно не понятно? Что KOL содержит ссылку на модуль под названием ActiveX. А этот модуль содержит в себе секцию инициализации/финализации (кстати, как и Types). Компилятор сует это в любой EXE/DLL.
Ладно открываем ЛЮБОЙ KOL проект (лучше пустой) далее Component>Install Packages…> поставить галочку Build with Runtime packages давим кнопочку OK
Компилируем. И смотрим в секцию Import'a и видим:
Function Activex::Finalization()
Function Activex::initialization()
ОЧЕНЬ сомневаюсь, что все выше написанное будет проделано …
KOL2.38.exe это SFX:
Лучшего патчера (а другого я и невидел пока) Binary Diff v 4.2.0 www.risp.ru
Что еще не понятно?
AndreyRus (2006-08-26 22:31:00) [13]Точно пьяный :)
Кому это надо, качать ваш EXE'ник, который неизвестно что делает и к тому же, возможно, содержит вирус.
Просто сообщите сюда суть проблемы!
ANTPro (2006-08-26 19:55:00) [14]Не пью ... а если че не понятно так могу обьяснить, хотя вот это думаю получше любых обяснений будет:
www.antprog.narod.ru/kol2.38.exe [27 кб]
Надо будет сделать Build All (*.upd не знаю чем делается)
AndreyRus (2006-08-26 19:24:00) [15]ANTPro, вы пьяны, что ли? Три раза перечитал ваши сообщения, ничего не понял! О чем речь?
ANTPro (2006-08-26 17:40:00) [16]Vladimir Kladov (26.08.06 17:25) [3]
Ну да Thaddy показал решение
А как насчет COMMDLG?
Vladimir Kladov (2006-08-26 17:25:00) [17]Что за мтрока, эта, столь?
if C <> #10 then Position := Position - 1;
Или про другую какую речь. По номерам не надо, номера меняются.
ANTPro (2006-08-26 14:33:00) [18]Жаль, что строка с №24355 осталась неисправленной (прога после компиляции благополучно повисла).
PS: Насчет ActiveX его отключение заняло добавление пяти {IFDEF USECOMMDLG} после чего размер EXE/DLL уменьшился на килобайт, но есть и минусы: не будут работать диалоги и GRush.
MTsv DN (2006-08-26 09:27:00) [19]Привет...
Также обновление доступно на http://www.kolnmck.ru
С Уважением MTsv DN