Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Вниз

Версия 2.23+Collapse   Найти похожие ветки 

 
homm ©   (2006-01-04 17:29) [40]


> [*]KOL: свойства TControl.DoubleBuffered, TControl.Transparent
> полностью заменены новым, полностью переработанным кодом
> от homm.
От себя добавлю, что новая прозрачность нисщадно тестировалась Владимиром около недели. В ходе тестирования было выловлено большое количество глюков (в том числе и в КОЛ, в том числе и не всегда даже относящихся к прозрачности непосдедственно), поправлены некоторые фундоментальные (я бы даже сказал догматические) функции KOL (причем чаще в сторону удаления более не нужного кода), счетчик версий самой функции равен примерно десяти.

Собственно что дает новая функция?
1) Контролы НЕ моргают своей неклиентской частью.
2) Количество перерисовок значительно сокращено.
3) Она значительно легче предидущей прозрачности (1472 байта против 3172 в версии 2.27).
4) Новую прозрачность можно не только ставить, но и УБИРАТЬ! Этим до сих пор грешат многие КОЛовские свойства. Новая прозрачность и буферизация же может быть назначена и убрана в любом порядке и не влияет на производительность после отключения (чего не скажеш о предидущем решении).

ЗЫ Знаю, что хвастать не хорошо, прочто это мой первый ЗНАЧИТЕЛЬНЫЙ, вклад в КОЛ (надеюсь не посленний) :)


 
Vedun   (2006-01-04 17:35) [41]

Для чего создаются файлы CollapseProcTable*.inc? Дело в том, что не всегда создается CollapseProcTable1.inc, без которого отказывается компилироваться весь проект. Поэтому хотелось бы знать, что это за файлы.


 
homm ©   (2006-01-04 18:07) [42]

Владимир, а что вот с ЭТИМ вот делать?

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])


 
homm ©   (2006-01-04 18:11) [43]


>  Дело в том, что не всегда создается CollapseProcTable1.inc
Не всегда создается потому что не всегда есть функции для размещения в нем, а значит в этих случаях он должен быть пустой. Создайте его сами.


 
OldNaum ©   (2006-01-04 18:41) [44]

сорри, я далек от проекта KOL/MCK, но в свое время оочень заинтересовался веткой Владимира по поводу его Collapse :) я с нетерпением ждал релиза, так сказать ) и тут вот вижу релиз. хотел спросить народ, насколько реально технология Collapse позволяет ужимать KOL проекты. насколько я понимаю Collapse не возможно использовать в привычных VCL проектах?

Collapse ведь не только уменьшает существенно размер проекта. Он ведь и затрудняет взлом ) по сути, как я понимаю мы имеем аналог VM? :)


 
Vladimir Kladov   (2006-01-04 21:27) [45]

в инструкции я написал, что делать с длинными идентификаторами: сокращать до 30 символов. Потому что встроенный ассемблер все равно их режет до 32, плюс небольшой префикс "n_" я решил добавлять вначале. Работа невелика: в проекте пройтись по слишком длинным названиям обработчиков событий и укоротить их по возможности.

Длинную строку я если бы знал где, обрезал бы в MCK. В Caption метки режется, потму что мне такое попалось. А еще где? На крайний случай можно присвоение длинной строки сделать в OnFormCreate, а в дизайнере вычистить (вы же знаете, о какой троке речь).

Насчет не-создания inc-файла CollapseProcTableX.inc, это я поправлю в П-компиляторе, конечно. Но можно создать и вручную пока.

2OldNaum: мало уменьшает. Да и VCL тут не при чем. Если только вы не собираетесь П-код руками писать. Для инициализации форм в VCL вообще не годится, там они грузятся из ресурсов, и кода для этого в программу вставлятся (цензоред) очень много в общем.


 
homm ©   (2006-01-04 21:57) [46]


>  Работа невелика: в проекте пройтись по слишком длинным
> названиям обработчиков событий и укоротить их по возможности
А потом меня MTsv DN (на пару с другими пользователями моих любимых контролов) с говном съедять. И правильно сделают! Т.к. мне тоже кажется что нефиг что-то переделовать, если люди пользуются. Все-же возможно вопрос с переименовыванием свойств будет решатся более глобально, без совместимости с предидущими версиями.


>  В Caption метки режется, потму что мне такое попалось.
А разве этим MCK должен заниматся? ИМХО - оди раз реализовать в компиляторе и подобных вопросов больше не будет никогда!


> Collapse ведь не только уменьшает существенно размер проекта.
>  Он ведь и затрудняет взлом ) по сути, как я понимаю мы
> имеем аналог VM? :)
МалаЦА! Это ведь и впрямь отлитчная защита от взлома. Редкий кракер проссыт про двухстековую машину, да и дебагеры на запрещенную инструкцию обязательно свой обработчик прикрутят.


 
homm ©   (2006-01-04 23:27) [47]


> Насчет не-создания inc-файла CollapseProcTableX.inc, это
> я поправлю в П-компиляторе, конечно.
Неплохо бы еще и
 {$IFDEF PCode}
 Collapse,
 {$ENDIF}
в uses *.dpr файла добавить (в MCK).

Еще см в [24]


 
-=Mike=-   (2006-01-05 04:53) [48]

Господа!
А где скачать версию 2.28???
На офсайте (http://bonanzas.rinet.ru/r_downloads.htm) нет ее.


 
Vladimir Kladov   (2006-01-05 08:38) [49]

Названия обработчиков должен уменьшать программист (програмирующий проект). А я что ли виноват в том, что БАСМ только 32 символа воспринимает? Да дело не только в обработчиках. Если в проекте просто не задумываясь о последствиях компонентам давать длиннющие имена, формам, то потом и получается хвостатое. Адаптация проекта к П-коду (если она нужна программисту) потребует переименований на более короткие, в любом случае. По-моему, это небольшая жертва.

Кракеры разберутся. Тем более что кракеры ломают не код, им вообще все едино, как код работает. Они ломают данные (пароли, сернумы). Война с краком меня и Collapse не касается. И все равно ломаться будет все: против лома нет приема. Единственное средство и единственный возможный выход для шароварщиков: обеспечивайте поддержку. Пусть покупатель платит не за копирование софта, а за поддержку со стороны разработчика. (А то что не требует поддержки в принципе, вообще должно быть бесплатно).

Downloads | Updates, как обычно.


 
homm ©   (2006-01-05 09:48) [50]


> [-]MCK: исправлена генерация П-кода для TControl.MaxProgress.
Ну... осталась самая малость:
L(180000000) L(-2079980537) C1 TControl_.SetMaxProgress<3>  -->  L(180000000) L(-2079980537) C2 TControl_.SetMaxProgress<3>


 
MTsv DN ©   (2006-01-05 14:40) [51]

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


 
Vladimir Kladov   (2006-01-05 20:56) [52]

Новости от 5 января 2006 г.

Новости KOL и MCK (v2.29):
[-]KOL: Исправлена отрисовка графических контролов.
[-]MCK: исправлена генерация П-кода для TControl.MaxProgress и TOpenDirDialogEx.Title (требуется для Collapse).
Прочие новости:
[+]обновлен пакет Collapse (PCompiler работает еще быстрее, файлы CollapseProcTableX.inc создаются в том числе для пустых таблиц процедур, так как в любом случае они требуются для компиляции).


 
homm ©   (2006-01-05 22:46) [53]

Я писал в [24], я писал в [47] посмотреть в [24], теперь здесь пишу:
{ $C0 } DD TControl.SetCtlColor --> { $C0 } DD TControl_.SetCtlColor
{ $C7 } DD TControl_.SetEraseBackground --> Нет такого метода вовсе

Сие означает что нужно добавить подчеркивание для метода SetCtlColor, т.к. он приватный, а метод SetEraseBackground заменить чем-либо или дописать.

Еще мне интересно чем задача "обеспечить разбиение длинных строковых констант для каждого свойства" легче "обеспечить разбиение констант а компиляторе и забыть об этом", или я в чем-то не прав?

ЗЫ проблему длинных свойств я решил, причем не в ущерб последних. Просто название Фейка сделал в пять символов вместо прежних тринадцати.


 
-=Mike=-   (2006-01-06 06:23) [54]

Преогромно извиняюсь! Опера прокешировала страницу, вот и не увидел обновления :)))


 
OldNaum ©   (2006-01-06 09:12) [55]

взлом однозначно будет затруднен ) щас самыми реальными протекторами как раз являются протекторы которые по мимо всего используют VM с различной степенью виртуализации (EXECryptor, for example). ну еще раз скажу что я далек от KOL, потому не до конца понимаю где именно и как используется ваша виртуальная машина, так что все-таки с выводами спешить не стоит ) полез перечитывать старую ветку ) ладно, сорри что влез к вам в KOL-огород.

з.ы. опера маст дай.


 
homm ©   (2006-01-06 10:37) [56]

2 Владимир Кладов
AddLongTextField( SL, "LoadAnsiStr ", fCaption, " #0", " DB " );
Что это? В p-code генерится асембленрная инструкция, распознаваемая компиляторам как процедура.

Эта строка взята из MCK. Встречается во многих P_SetupFirst. Еще раз - легче сделать разбиение в компиляторе!


 
homm ©   (2006-01-06 11:09) [57]

Удалено модератором
Примечание: Оффтопик


 
Vladimir Kladov   (2006-01-06 12:50) [58]

Новости от 6 января 2006 г.

Новости KOL и MCK (v2.30):
[ ]KOL: не изменился.
[-]MCK: исправлена генерация П-кода для TKOLEdit.Text , TRichEdit.Text , TControl.SetCtlColor, TKOLCustomControl.EraseBkgnd. Решена проблема слишком длинных (truncated) строк.
Прочие новости:
[+]обновлен пакет Collapse (PCompiler: проблема слишком длинных строк в asm-коде).


 
homm ©   (2006-01-06 13:07) [59]

2 Владимир Кладов
Опять же AddLongTextField( SL, "LoadAnsiStr ", fCaption, " #0", "" ); выдает вот такой вот результат:
LoadAnsiStr ""
"Wake up. Grab a brush and put a little make-up. Hide the sca"
"rs to fade away the shakeup. Why""d you leave the keys upon t"
"he table? Here you go, create another fable."
#0

А BASM похоже "" воспринимает как байт ноль. В результате исполняется буквально "Wake up...., а не следуюший за строкой код.

Сделайте разбиение в компиляторе! Плиз. Ну ведь проблем реально меньше будет ИМХО.


 
homm ©   (2006-01-06 13:09) [60]

Сори... Еще не видел Vladimir Kladov (06.01.06 12:50) [58] когда писал.


 
Vedun   (2006-01-06 18:50) [61]

Как я понял, строчке


Result.EditBox1.Color := clWindow;


соответствует конструкция


L(-16777211)
C1 TControl_.SetCtlColor<2>


Так вот, константа -16777211 неправильно понимается (не знаю правда кем) и вместо белого фона компонента имеем черный. Удаление минуса исправляет положение.


 
SPeller ©   (2006-01-07 10:29) [62]

Видимо, где-то Color2RGB не выполняется.


 
яяя   (2006-01-07 11:26) [63]

Всем привет. у меня проблемы с коллапсом. поставил кол и мск 2.30 и последний коллапс. Перекомпилил пдебаг и пкомпилер как написан в риадми. Пробую компилить демо 1 или демо 2 и нечиге не пашет, что делать?


 
Vedun   (2006-01-07 12:08) [64]


> Как я понял, строчке
>
>
> Result.EditBox1.Color := clWindow;
>
>
> соответствует конструкция
>
>
> L(-16777211)
> C1 TControl_.SetCtlColor<2>
>
>
> Так вот, константа -16777211 неправильно понимается (не
> знаю правда кем) и вместо белого фона компонента имеем черный.
>  Удаление минуса исправляет положение.

Во время выполнения константа clWindow имеет значение -2147483643. Заменяю в откомпилированном П-коде все -16777211 на -2147483643 и все нормально работает.
Смотрю в KOL. Там:

clWindow = TColor(COLOR_WINDOW or $80000000);

Смотрю в System.pas моего Д7:

clWindow = TColor(clSystemColor or COLOR_WINDOW);

где

clSystemColor = $FF000000;

Вот из-за отличия этих констант и получается глюк.


 
homm86   (2006-01-07 14:39) [65]


> яяя   (07.01.06 11:26) [63]
А инмтрукцию читать пробывал?


 
Vladimir Kladov   (2006-01-07 17:54) [66]

Новости от 7 января 2006 г.

Новости KOL и MCK (v2.31):
[-]KOL: исправлена прозрачная отрисовка графических контролов и отрисовка обычных контролов (панели) в качестве родителя графических контролов.
[-]MCK: Исправлена генерация П-кода для TKOLRichEdit.Font , TKOLBitBtn , TKOLToolbar.generateVariables (так же исправлена генерация обычного кода для этого случая), TKOLFrame. Вызов SetCtlColor исправлен в Delphi7 (возможные проблемы с отрицательными числами во встроенном ассемблере).
Прочие новости:
[*]пакет Collapse обновлен (добавлена опция /A для Pcompiler для полной перекомпиляции всех модулей, содержащих П-код).

уменьшил на 100К свой проект. Теперь вот думаю, руками переписывать участки кода, которые не генерит MCK (в OnFormCreate, в OnShow, у меня там километры), или уже сразу приступать к компилятору Паскаль->П-код...


 
Vladimir Kladov   (2006-01-07 17:57) [67]

а насчет той константы в Delphi7. До конца я все-таки не понял. Просто заменил IntToStr на IntToHex, та же самая константа FF000005 работает совершенно верно, если вставлена как шестнадцатиричная, а не десятичная. И 80000005 тоже работает.


 
SPeller ©   (2006-01-07 23:09) [68]

Vladimir Kladov   (07.01.06 17:54) [66]
или уже сразу приступать к компилятору Паскаль->П-код

Это, я думаю, людям будет очень полезно. Учитывая, что вы уже как-то делали такой компилятор, но чем всё закончилось - неизвестно.


 
Vedun   (2006-01-08 22:33) [69]


>  Вызов SetCtlColor исправлен в Delphi7 (возможные проблемы
> с отрицательными числами во встроенном ассемблере).

Не знаю, может у меня битый компилятор, но он упорно не хочет понимать отрицательные числа. Ни один системный цвет (clWindow, clBtnFace и т.д.) не работает. Положение исправляет удаление минуса.

Может мне кто-нибудь объяснит, почему цвет должен задаваться отрицательными константами?


 
SPeller ©   (2006-01-09 04:11) [70]

Vedun   (08.01.06 22:33) [69]
почему цвет должен задаваться отрицательными константами

Отрицательное число, т.е. число с 1 в 32 бите говорит о том, что использоваться должен системный цвет.


 
Vladimir Kladov   (2006-01-09 08:00) [71]

В новой версии нет ведь минусов, там 16-ричные числа используются. Может надо просто добиться чтобы MCK перегенрировал код (сдвинуть форму хотя бы).


 
френк   (2006-01-09 08:52) [72]

Vladimir Kladov   (07.01.06 17:54) [66]
или уже сразу приступать к компилятору Паскаль->П-код

имхо, енто было бы круто ) ждемс ;)


 
Vladimir Kladov   (2006-01-09 10:41) [73]

я нашел первую версию такого компилятора, но она не подойдет. Надо не для масм, а для басм, с выборочной компиляцией отдельно указанных паскаль-процедур, компиляция нужна на месте, а не в отдельный выходного файл своего формата. В общем я приступил, может и получится. В самом Collapse придется поправочку сделать: EBP использовать как указатель стека на момент вызова П-процедуры, и адресовать через него локальные переменные и параметры, а SELF хранить в кадре возврата П-стека (интересно, что на код это вообще не влияет, П-компилятор переделывать не надо, генерацию П-кода в МСК тоже).


 
иосиф   (2006-01-09 11:04) [74]

Владимир, а что именно даст компилятор Паскаль->П-код?


 
SPeller ©   (2006-01-09 15:49) [75]

иосиф   (09.01.06 11:04) [74]
Можно будет VCL в п-код перегнать для уменьшения размера :))


 
Vedun   (2006-01-10 22:42) [76]


> В новой версии нет ведь минусов, там 16-ричные числа используются.
>  Может надо просто добиться чтобы MCK перегенрировал код
> (сдвинуть форму хотя бы).

А в байт-коде остались все те же отрицательные константы

DD (-16777211)

Кажется, это в PCompiler-е надо исправить.


 
Vedun   (2006-01-10 23:16) [77]

2 Vladimir Kladov

> а насчет той константы в Delphi7. До конца я все-таки не
> понял. Просто заменил IntToStr на IntToHex, та же самая
> константа FF000005 работает совершенно верно, если вставлена
> как шестнадцатиричная, а не десятичная. И 80000005 тоже
> работает.


$FF000005 не работает. Зато работает $80000005. И обратите внимание на [76].


 
MTsv DN ©   (2006-01-11 13:05) [78]

KOLnMCK 2.31+ (07.01.2006) + KOLadd (19.12.2005) + fakeVariant.pas, по адресу: http://www.uus4u.com/download/modules/KOLnMCK/KOLnMCK.rar

Версия KOL и MCK (v2.31+):
[+] Введена директива условной компиляции OLD_CONVERT2MASK - подключает Convert2Mask версии 2.21.
2 Vladimir Kladov
Добавьте, пожалуйста, эту директиву в следующую версию... Т.к. в Windows 9x при большом числе "прозрачных" элементов (не только gRush Controls), прорисовка нечинает притормаживать...

Не забудьте сделать ReBuild KOLnMCK и ВСЕХ ПАКЕТОВ

С Уважением MTsv DN


 
MTsv DN ©   (2006-01-11 14:16) [79]

Привет...
Занялся Collapse... Все настроил, но только один вопрос...
Где взять "CollapseProcConst.inc"?..

С Уважением MTsv DN


 
Vladimir Kladov   (2006-01-11 16:47) [80]

Он сам должен сделаться, его П-компилятор делает.



Страницы: 1 2 3 вся ветка

Форум: "KOL";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.64 MB
Время: 0.426 c
6-1167768922
Moonglow
2007-01-02 23:15
2007.08.12
CrtSock


1-1180699210
DevilDevil
2007-06-01 16:00
2007.08.12
Frame.OldCreateOrder,PixelsPerInch,TextHeight. Откуда?


15-1184400782
iZEN
2007-07-14 12:13
2007.08.12
В чём философский смысл побелки бордюров?


15-1184238631
Zagaevskiy
2007-07-12 15:10
2007.08.12
SMS


2-1184177481
Kolan
2007-07-11 22:11
2007.08.12
Как динамически создать Separator в MainMenu?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский