![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Версия 2.23+Collapse [Delphi, Windows]
Vladimir Kladov © (2005-12-19 20:42:00)Новости от 19 декабря 2005 г.
Новости KOL и MCK (v2.23):
[+]KOLadd: добавлен объект TOpenDirDialogEx (альтернатива объекту TOpenDirDialog, не использует SHBrowseForFolder, работает намного быстрее). MCK: добавлено свойство TKOLOpenDirDialog.AltDialog, позволяет переключиться на использование альтернативного диалога установкой значения в true.
[*]KOL: событие TControl.OnTVExpanding должно теперь возвращать TRUE (для обоих asm- и pas- версии) для того, чтобы предотвратить распахивание, и FALSE для того, чтобы позволить (ранее это различалось для asm- и pas- версии).
[+]KOL: добавлен метод TControl.RE_WSearchText.
[+]KOL: добавлена функция DirIconSysIndexOffline.
[+]KOL: добавлено свойство TMenu.ItemHelpContext.
[-]KOL: доступ к свойству TThread.PriorityBoost изменен на использование динамической линковки (исправление для Win9x).
[-]KOL: исправлено создание и разрушение объекта TImageList.
[*]KOL: изменен метод TBitmap.Convert2Mask.
[*]KOL: изменена работа метода TControl.AutoSize несколько (MinWidth и MinHeight берутся во внимание при автоматическом изменении размеров).
[*]MCK: генерация П-кода обеспечена для всех зеркал всех контролов и объектов всего стандартного множества объектов KOL. С этой версии KOL/MCK 2.23, выходит в жизнь система Collapse , которая позволяет компилировать П-код в байт-код и добавляет эмулятор этого байт-кода в приложение. См. Collapse в секции Инструменты.
homm (2006-01-06 11:09:00) [41]Удалено модератором
Примечание: Оффтопик
homm (2006-01-06 10:37:00) [42]2 Владимир Кладов
AddLongTextField( SL, 'LoadAnsiStr ', fCaption, ' #0', ' DB ');
Что это? В p-code генерится асембленрная инструкция, распознаваемая компиляторам как процедура.
Эта строка взята из MCK. Встречается во многих P_SetupFirst. Еще раз - легче сделать разбиение в компиляторе!
OldNaum (2006-01-06 09:12:00) [43]взлом однозначно будет затруднен ) щас самыми реальными протекторами как раз являются протекторы которые по мимо всего используют VM с различной степенью виртуализации (EXECryptor, for example). ну еще раз скажу что я далек от KOL, потому не до конца понимаю где именно и как используется ваша виртуальная машина, так что все-таки с выводами спешить не стоит ) полез перечитывать старую ветку ) ладно, сорри что влез к вам в KOL-огород.
з.ы. опера маст дай.
-=Mike=- (2006-01-06 06:23:00) [44]Преогромно извиняюсь! Опера прокешировала страницу, вот и не увидел обновления :)))
homm (2006-01-05 22:46:00) [45]Я писал в [24], я писал в [47] посмотреть в [24], теперь здесь пишу:
{ $C0 } DD TControl.SetCtlColor --> { $C0 } DD TControl_.SetCtlColor
{ $C7 } DD TControl_.SetEraseBackground --> Нет такого метода вовсе
Сие означает что нужно добавить подчеркивание для метода SetCtlColor, т.к. он приватный, а метод SetEraseBackground заменить чем-либо или дописать.
Еще мне интересно чем задача "обеспечить разбиение длинных строковых констант для каждого свойства" легче "обеспечить разбиение констант а компиляторе и забыть об этом", или я в чем-то не прав?
ЗЫ проблему длинных свойств я решил, причем не в ущерб последних. Просто название Фейка сделал в пять символов вместо прежних тринадцати.
Vladimir Kladov (2006-01-05 20:56:00) [46]Новости от 5 января 2006 г.
Новости KOL и MCK (v2.29):
[-]KOL: Исправлена отрисовка графических контролов.
[-]MCK: исправлена генерация П-кода для TControl.MaxProgress и TOpenDirDialogEx.Title (требуется для Collapse).
Прочие новости:
[+]обновлен пакет Collapse (PCompiler работает еще быстрее, файлы CollapseProcTableX.inc создаются в том числе для пустых таблиц процедур, так как в любом случае они требуются для компиляции).
MTsv DN (2006-01-05 14:40:00) [47]KOLnMCK 2.28 (04.01.2006) + KOLadd (19.12.2005) + fakeVariant.pas, по адресу: http://www.uus4u.com/download/modules/KOLnMCK/KOLnMCK.rar
А также? для тех кто собирается использовать gRush Controls НЕ ТОЛЬКО в Windows XP:
KOLnMCK 2.28 with Convert2Mask v.2.21 (04.01.2006) + KOLadd (19.12.2005) + fakeVariant.pas, по адресу: http://www.uus4u.com/download/modules/KOLnMCK/KOLnMCK_oldC2M.rar
Рекомендуется использовать gRush 0.30.1
Не забудьте сделать ReBuild KOLnMCK и ВСЕХ ПАКЕТОВ
С Уважением MTsv DN
homm (2006-01-05 09:48:00) [48]
> [-]MCK: исправлена генерация П-кода для TControl.MaxProgress.
Ну... осталась самая малость:
L(180000000) L(-2079980537) C1TControl_.SetMaxProgress<3> --> L(180000000) L(-2079980537) C2TControl_.SetMaxProgress<3>
Vladimir Kladov (2006-01-05 08:38:00) [49]Названия обработчиков должен уменьшать программист (програмирующий проект). А я что ли виноват в том, что БАСМ только 32 символа воспринимает? Да дело не только в обработчиках. Если в проекте просто не задумываясь о последствиях компонентам давать длиннющие имена, формам, то потом и получается хвостатое. Адаптация проекта к П-коду (если она нужна программисту) потребует переименований на более короткие, в любом случае. По-моему, это небольшая жертва.
Кракеры разберутся. Тем более что кракеры ломают не код, им вообще все едино, как код работает. Они ломают данные (пароли, сернумы). Война с краком меня и Collapse не касается. И все равно ломаться будет все: против лома нет приема. Единственное средство и единственный возможный выход для шароварщиков: обеспечивайте поддержку. Пусть покупатель платит не за копирование софта, а за поддержку со стороны разработчика. (А то что не требует поддержки в принципе, вообще должно быть бесплатно).
Downloads | Updates, как обычно.
-=Mike=- (2006-01-05 04:53:00) [50]Господа!
А где скачать версию 2.28???
На офсайте ( http://bonanzas.rinet.ru/r_downloads.htm) нет ее.
homm (2006-01-04 23:27:00) [51]
> Насчет не-создания inc-файла CollapseProcTableX.inc, это
> я поправлю в П-компиляторе, конечно.
Неплохо бы еще и
{$IFDEF PCode}в uses *.dpr файла добавить (в MCK).
Collapse,
{$ENDIF}
Еще см в [24]
homm (2006-01-04 21:57:00) [52]
> Работа невелика: в проекте пройтись по слишком длинным
> названиям обработчиков событий и укоротить их по возможности
А потом меня MTsv DN (на пару с другими пользователями моих любимых контролов) с говном съедять. И правильно сделают! Т.к. мне тоже кажется что нефиг что-то переделовать, если люди пользуются. Все-же возможно вопрос с переименовыванием свойств будет решатся более глобально, без совместимости с предидущими версиями.
> В Caption метки режется, потму что мне такое попалось.
А разве этим MCK должен заниматся? ИМХО - оди раз реализовать в компиляторе и подобных вопросов больше не будет никогда!
> Collapse ведь не только уменьшает существенно размер проекта.
> Он ведь и затрудняет взлом ) по сути, как я понимаю мы
> имеем аналог VM? :)
МалаЦА! Это ведь и впрямь отлитчная защита от взлома. Редкий кракер проссыт про двухстековую машину, да и дебагеры на запрещенную инструкцию обязательно свой обработчик прикрутят.
Vladimir Kladov (2006-01-04 21:27:00) [53]в инструкции я написал, что делать с длинными идентификаторами: сокращать до 30 символов. Потому что встроенный ассемблер все равно их режет до 32, плюс небольшой префикс 'n_' я решил добавлять вначале. Работа невелика: в проекте пройтись по слишком длинным названиям обработчиков событий и укоротить их по возможности.
Длинную строку я если бы знал где, обрезал бы в MCK. В Caption метки режется, потму что мне такое попалось. А еще где? На крайний случай можно присвоение длинной строки сделать в OnFormCreate, а в дизайнере вычистить (вы же знаете, о какой троке речь).
Насчет не-создания inc-файла CollapseProcTableX.inc, это я поправлю в П-компиляторе, конечно. Но можно создать и вручную пока.
2OldNaum: мало уменьшает. Да и VCL тут не при чем. Если только вы не собираетесь П-код руками писать. Для инициализации форм в VCL вообще не годится, там они грузятся из ресурсов, и кода для этого в программу вставлятся (цензоред) очень много в общем.
OldNaum (2006-01-04 18:41:00) [54]сорри, я далек от проекта KOL/MCK, но в свое время оочень заинтересовался веткой Владимира по поводу его Collapse :) я с нетерпением ждал релиза, так сказать ) и тут вот вижу релиз. хотел спросить народ, насколько реально технология Collapse позволяет ужимать KOL проекты. насколько я понимаю Collapse не возможно использовать в привычных VCL проектах?
Collapse ведь не только уменьшает существенно размер проекта. Он ведь и затрудняет взлом ) по сути, как я понимаю мы имеем аналог VM? :)
homm (2006-01-04 18:11:00) [55]
> Дело в том, что не всегда создается CollapseProcTable1.inc
Не всегда создается потому что не всегда есть функции для размещения в нем, а значит в этих случаях он должен быть пустой. Создайте его сами.
homm (2006-01-04 18:07:00) [56]Владимир, а что вот с ЭТИМ вот делать?
CollapseProcConst.inc:
************
n_TGRushControl__SetAll_Antialia = $12A0;
n_TGRushControl__SetAll_BorderRo = $13A0;
n_TGRushControl__SetAll_BorderRo = $14A0;
n_TGRushControl__SetAll_BorderWi = $15A0;
n_TGRushControl__SetAll_ColorOut = $16A0;
n_TGRushControl__SetAll_ColorTex = $17A0;
n_TGRushControl__SetAll_DrawFocu = $18A0;
n_TGRushControl__SetAll_DrawProg = $19A0;
n_TGRushControl__SetAll_DrawProg = $1AA0;
n_TGRushControl__SetAll_GlyphIte = $1BA0;
n_TGRushControl__SetAll_Gradient = $1CA0;
n_TGRushControl__SetAll_ShadowOf = $1DA0;
n_TGRushControl__SetDef_BorderCo = $1EA0;
n_TGRushControl__SetDef_BorderRo = $1FA0;
n_TGRushControl__SetDef_BorderRo = $20A0;
n_TGRushControl__SetDef_BorderWi = $21A0;
n_TGRushControl__SetDef_ColorFro = $22A0;
n_TGRushControl__SetDef_ColorOut = $23A0;
*************
[Error] CollapseProcConst.inc(59): Identifier redeclared: 'n_TGRushControl__SetAll_BorderRo'
[Error] CollapseProcConst.inc(65): Identifier redeclared: 'n_TGRushControl__SetAll_DrawProg'
[Error] CollapseProcConst.inc(71): Identifier redeclared: 'n_TGRushControl__SetDef_BorderRo'
А так же вот с этим?
[Error] Unit1_1.inc(890): String constant too long
(см [36])
Vedun (2006-01-04 17:35:00) [57]Для чего создаются файлы CollapseProcTable*.inc? Дело в том, что не всегда создается CollapseProcTable1.inc, без которого отказывается компилироваться весь проект. Поэтому хотелось бы знать, что это за файлы.
homm (2006-01-04 17:29:00) [58]
> [*]KOL: свойства TControl.DoubleBuffered, TControl.Transparent
> полностью заменены новым, полностью переработанным кодом
> от homm.
От себя добавлю, что новая прозрачность нисщадно тестировалась Владимиром около недели. В ходе тестирования было выловлено большое количество глюков (в том числе и в КОЛ, в том числе и не всегда даже относящихся к прозрачности непосдедственно), поправлены некоторые фундоментальные (я бы даже сказал догматические) функции KOL (причем чаще в сторону удаления более не нужного кода), счетчик версий самой функции равен примерно десяти.
Собственно что дает новая функция?
1) Контролы НЕ моргают своей неклиентской частью.
2) Количество перерисовок значительно сокращено.
3) Она значительно легче предидущей прозрачности (1472 байта против 3172 в версии 2.27).
4) Новую прозрачность можно не только ставить, но и УБИРАТЬ! Этим до сих пор грешат многие КОЛовские свойства. Новая прозрачность и буферизация же может быть назначена и убрана в любом порядке и не влияет на производительность после отключения (чего не скажеш о предидущем решении).
ЗЫ Знаю, что хвастать не хорошо, прочто это мой первый ЗНАЧИТЕЛЬНЫЙ, вклад в КОЛ (надеюсь не посленний) :)
Vladimir Kladov (2006-01-04 15:06:00) [59]Новости от 4 января 2006 г.
Новости KOL и MCK (v2.28):
[*]KOL: добавлен символ условной компиляции USE_PROP: если он есть в свойствах проекта, то работает прежний метод GetProp/SetProp для ассоции объекта TControl со своим окном, иначе (теперь по умолчанию) используются GetWindowLong / SetWindowLong и ассоциация сохраняется в поле GWL_USERDATA (чуть быстрее, чуть меньше размер кода, но поле GWL_USERDATA в этом случае не может использоваться для других целей).
[*]KOL: свойства TControl.DoubleBuffered, TControl.Transparent полностью заменены новым, полностью переработанным кодом от homm.
[-]KOL/MCK: восстановлена совместимость с Delphi2/Delphi3 (символ NOT_USE_KOLCTRLWRAPPER включается для этих старых версий Delphi для полного предотвращения использования KOL-контролов (wrappers) на этапе разработки).
[*]KOL: небольшие изменения в реализации графических контролов (градиентная панель теперь может быть родителем графических контролов не утрачивая свою градиентную заливку).
[-]KOL: исправление в функции NewDibBitmap: память для изображения DIB выделяется с небольшим запасом (16 байт) для предотвращения записи мимо выделенной памяти в методе TBitmap.Convert2Mask.
[-]MCK: исправлена генерация П-кода для TControl.MaxProgress.
Прочие новости:
[+]обновлен пакет Collapse (переписан PCompiler, и работает теперь за меньшее число проходов, некоторые другие изменения).
Vedun (2006-01-03 17:22:00) [60]Решил попробовать Коллапс. Сделал проект с большим кол-вом контролов. После компиляции П-кода и проекта вцелом (с Pcode) размер exe уменьшился. Но в работающей программе все EditBox и некоторые Group залиты черным цветом. При компиляции с noPcode все работает нормально.
Тогда создал новый проект с одним EditBox на форме. Откомпилировал с Pcode - все нормально, ЭдитБокс белый, а не черный.
Сегодня буду разбираться, когда появляется чернота.