![]() |
| ||
|
|
Новости |
Поиск |
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 в секции Инструменты.
MTsv DN (2005-12-26 11:49:00) [81]Привет...
Не тестил еще... Не было времени...
С Уважением MTsv DN
homm86 (2005-12-26 11:34:00) [82]2MTsvdn
дак в 0.30.1 же поправлена 9х
MTsv DN (2005-12-26 08:40:00) [83]Всем привет...
2 Vladimir Kladov
Владимир, Вы слегка "накосячили" с линками на родном сайте (.../kolmck225to225.zip -> .../kolmck225to226.zip) и с самим апдейтом kolmck220to225.zip (вторая версия - это 2.26, и внутреннее имя в upd-файле правил в HEX-редакторе) . Причем, прогрейженный kolmck220to226 KOL (не KOL.PAS, другие PAS'ы), отличается от грейженного kolmck225to226.....
2 ALL
Обновил сборку: KOLnMCK 2.26 (26.12.2005) + KOLadd (19.12.2005) + fakeVariant.pas , по адресу: http://www.uus4u.com/download/modules/KOLnMCK/KOLnMCK.rar
а также? для тех кто собирается использовать gRush Controls НЕ ТОЛЬКОв Windows XP:
KOLnMCK 2.26 with Convert2Mask v.2.21 (26.12.2005) + KOLadd (19.12.2005) + fakeVariant.pas , по адресу: http://www.uus4u.com/download/modules/KOLnMCK/KOLnMCK_oldC2M.rar
gRush Controls 0.29 (01.11.2005), по адресу: http://www.uus4u.com/download/modules/KOLnMCK/grush029.rar
Не забудьте сделать ReBuild KOLnMCK и ВСЕХ ПАКЕТОВ
P.S. Такая связка KOL и gRush работает корректно, быстро и без глюков под все Windows (не тестировал под Windows 95 и Vista...и 3.1 :о) )...
P.S.S. Да простит меня homm за перепаковку архива :о)
ПОЗДРАВЛЯЮ ВСЕХ С НАСТУПАЮЩИМ НОВЫМ ГОДОМ И РОЖДЕСТВОМ !!! ЖЕЛАЮ ВСЕМ СЧАСТЬЯ И УСПЕХОВ !!!
С Уважением MTsv DN
Vladimir Kladov (2005-12-25 20:47:00) [84]версия 2.26:
Новости от 25 декабря 2005 г.
Новости KOL и MCK (v2.26):
[-]MCK: изменено правило сравнения новой (сгенерированной) версии кода с предыдущей версией в inc-файле: теперь не учитывается код, полученный в результате работы П-компилятора (меньше изменений inc-файлов на дисек, более быстрая работа Delphi)
[-]MCK: испрвлена генерация П-кода для оставшихс объектов (надеюсь, теперь действительно большинство из них готово к работе с Collapse).
[*]KOL: небольшие изменения в WndProcPaint (удалено клипование по fUpdRgn).
Я про эту строку не понял. Сначала шлете письмо, в котором говорите, что она мешает. Потом еще кучу писем, и никакого упоминания. Я так решаю, что уже не мешает. А теперь опять про нее вспоминаете. Аккуратнее письма надо писать, и оформлять изменения аккуратно. Уж во всяком случае, должно быть понятно, что, куда, вместо чего и почему. На всестороннее исследование присланного мне кода у меня нет ресурсов. Или мне трудно поверить, что у меня есть свои планы, и что, если появляется свободное время, я в первую очередь буду делать то, что мне кажется важнее, чем разбор почты. Сейчас для меня важнее закончить collapse, уменьшить свой большой проект, чтобы иметь возможность дальше с ним работать. Мои планы на новогодние каникулы - полностью заняться коллапсом. Так что доделывайте прозрачность и буферизацию до логического финала, шлите конечный код, вставим ВМЕСТО старого - с превеликим удовольствием. Я же верю что оно лучше прежнего, какие претензии к моей любви к прежнему коду. Просто надо будет тестить на совметимость старых приложений, а не только GrushControls (которых у меня кстати и нет вовсе). С Наступающим!
homm (2005-12-25 12:18:00) [85]
> Давно бы уже нашлибагу самии выслаличто исправить
Нашли: OnPaint делает нерабочим Transparent и DoubleBuffered
Сами: Убрать if fUpdRgn <> 0 then SelectClipRgn( fPaintDC, fUpdRgn );
Выслали: См [9] и давнишнее письмо.
Думаете стандартные контролы при реакции на WM_PAINT делают что-то подобное? Зачем же при переопредилении прорисовки это добавлять?
ЗЫ Абсолютно согласен с SPeller, в том что Вы никому ничего не должны, даже обяснять причины по которым у вас нет времени, просто сами же просите - присылать исправления, и не реагируете никак.
Vladimir Kladov (2005-12-25 11:37:00) [86]Впрочем еще не все. Только что поправил меню и попап-меню, но еще что-то не так с обработкой нажатий кнопок на тулбаре, причем в ситуации, когда на форме 2 и более тулбаров, причем в одном случае все ок, а в другом какие-то неприятности. Еще вылезла проблема с длинными строками, тоже вылечил. Может сегодня еще обновление будет. Вот таблица сравнения размеров на 4 формах, с которыми я успел плотно поработать и коллапсировать:
новый старый
размер размер
form1 11156 26036
form2 5900 14220
formOpen 2292 5540
formWait 264 556
всего 1922048 1948672 -26624
-26К может и немного, но у меня 40 форм с лишком, и некоторые еще больше.
Vladimir Kladov (2005-12-24 22:54:00) [87]Выкладываю версию 2.25.
Новости от 24 декабря 2005 г.
Новости KOL и MCK (v2.25):
[-]MCK: устранено создание лишних файлов xxxx.pas_1.inc вместо xxxx_1.inc.
[-]MCK: исправлена генерация П-кода для большинства контролов и объектов.
[-]Collapse: некоторые исправления в PCompiler, Collapse.pas, документации, дистрибутиве. Теперь он в основном функционален.
[*]KOL: небольшие изменения в исходном коде (в основном удаление устаревшего и закомментированного кода, чтобы уменьшить файл до 64K строк и отладчик Delphi опять смог работать).
Collapse уже вполне рабочий. На 3х (очень больших по числу контролов и по размерам меню) формах код уменьшился на 10К, после общего сжатия upx-ом - на 3К (т.е. байт-код жмется также примерно втрое).
SPeller (2005-12-24 06:59:00) [88]homm © (23.12.05 23:42) [9]
Эта фраза у меня кроме улыбки сегодня ничего не вызывает
Зря ты так. У человека работа, семья и личные дела, и он никому ничего не должен. Поэтому лучше воспользуйся советом самостоятельно найти баг. А насчет обновок - надо всё писать лично письмами, а не на форуме.
homm (2005-12-23 23:42:00) [89]
> Давно бы уже нашли багу в асм-коде сами и выслали что исправить
Эта фраза у меня кроме улыбки сегодня ничего не вызывает. СЕГОДНЯ ровно мэсаЦ ......
Вот только та версия прозрачности, что Вы включили устарела. Конечно и мой промах тоже, что не соощил об изменениях, но согласитесь не всегда охото и приятно общатся с человеком в одностороннем порядке. Последняя версия на www.homm86.narod.ru. Кроме того я неоднократно говорил, а Вам в особености, что прозрачность (и ваша в том числе) не работает правильно без правки WndProcPaint. Нужно либо убрать строки
if fUpdRgn <> 0 then
SelectClipRgn( fPaintDC, fUpdRgn );
либо, если Вы так хотите сохранить В КОРНЕ НЕ ПРАВИЛЬНУЮ РЕАКЦИЮ НА свою прозрачность для контролов, использующих переопределение OnPaint, нужно изменить хотябы так:
if (fUpdRgn <> 0) and not (Self_.homm_fSelfRequirePaint or
Self_.homm_fParnetRequirePaint) then
SelectClipRgn( fPaintDC, fUpdRgn );
Хотя я например не понимаю зачем теперь нужна старая прозрачность. Я бы предпочел, чтобы Вы заменили прозрачность полностью, а на случай проблем ввели бы какой нибудь символ (версии на четыре - пять), включающий старую прозрачность вместо новой. Но так бы предпочел я, а как будет на самом деле решать конечно же Вам.
Vladimir Kladov (2005-12-23 21:06:00) [90]Я обновил версию до 2.24.
2homm: я бываю оченьзанят, и не только программированием. Есть еще и семья, и работа. Давно бы уже нашли багу в асм-коде сами и выслали что исправить. Или вы думаете что это так легко: сидеть в асм-командах разбираться, баги отлавливать.
LazyC0DEr (2005-12-23 18:10:00) [91]2 ECM
По поводу 4) , мне кажется, что надо в baselib.pas добавить
{$IFDEF Pcode}
procedure AddWord_StoreByte;
{$IFDEF Psource}
AddWord_StoreByte PROC SMART //--by PCompiler:line#947
Baselib.ParamWord + Baselib.StoreB
EXIT
ENDP
{$ENDIF Psource}
{$ELSE OldCode}
procedure AddWord_StoreByte;
asm
//
end;
{$ENDIF Pcode}
На счет 6) у меня помогло добавление подчеркивания после TControl в mirror.pas
Так же в baselib.pas пришлось добавить
procedure xNOT;
asm
not dword ptr [esp+4]
end;
procedure xyAnd;
asm
pop ebx
pop eax
and [esp], eax
jmp ebx
end;
{$IFDEF Psource}
& PROC INLINE
Baselib.xyAND
ENDP
{$ENDIF Psource}
{$IFDEF Psource}
~ PROC INLINE
Baselib.xNOT
ENDP
{$ENDIF Psource}
MTsv DN (2005-12-23 13:07:00) [92]2 homm
Ну неужели у меня у одного Convert2Mask всегда глючит?
Нет... Не только у тебя... Я вообще использую KOL 2.23, а Convert2Mask из 2.21. И gRush 0.29... Просто в такой связке, под Windows от 98 и выше, все работает корректно, быстро и без глюков...
С Уважением MTsv DN
homm (2005-12-23 08:42:00) [93]
> homm © (22.12.05 21:33) [3]
> По поводу второго - При компиляции Collapse
Поправочка: это насечет пятого, а не насечет второго.
GRushControls работают как и с предидущими версиями. Т.Е. В XP ВСЕ отлично, контролы могут быть прозрачными, рисуются в миг, не вылетают нигде.
В 9X: Ну неужели у меня у одного Convert2Mask всегда глючит? Мне уже чесно говоря порядком надоело слать Владимиру одни и теже демы с разными проблемами от версии к версии. Мне чесно говоря уже глубоко **** на проблемы производительности этой функции, лиш бы она работала. Но в очередной раз ВЕРХНЯЯ СТРОКА рисуется с какойто псевдо случайной прозрачностью пикселей. Это касается ASM версии. PAS я как запустил, так сразу и похерил прямо в Kol.pas у себя. Она вообще DDB никак не выводит (ни одного opaque пикселя). Владимир, ведь можно же хотябы DemoProject55 и 66 прогнать из архива mail.zip из письма от 29 Oct 2005 21:57:00 +0600. Вот выложу его еще сюда с откомпилеными из под v2.23 экзехами. Кстати они до сих пор выглядят по разному. (поясняю для всех остальных: Они отличаются только способом загрузки битмапа - 66 грузит из файла, и отображается коректнее чем 55, который грузит из ресурсов).
http://www.homm86.narod.ru/files/mail.zip
ЗЫ Завтра ровно месяц, как Владимир обещался посмотреть мою реализацию прозрачности контолов. Осталось два года и одиннадцать месяцев. Тем кто пользуется уже сейчас, не забудте WndProcPaint подправить, с ней Владимир тоже хотел что-то сделать, не сделал пока...
ЗЗЫ Может я слишком резко выразил свои мысли, просто действительно накипело.
Vedun (2005-12-22 22:23:00) [94]2 homm
А твои компоненты GRushControls с Версия 2.23+Collapse работают?
homm (2005-12-22 21:33:00) [95]Delphi5:
Присутствуют ошибки (см ECM © (21.12.05 19:48) [2]):
1), 2), 5)
По поводу второго - При компиляции Collapse во время одной из стадий вылетает сообщение что какой-то файл не найден - разглядеть нереально, а где посмотреть незнаю.
Кроме того возникло много вопросов по файлу PCompiler.cfg:
Он для ручной или афтаматичецкой сборки? Неужели его создание нельзя как либо оптимизировать? Нужны ли кавычки в путях?
ECM (2005-12-21 19:48:00) [96]Решил тут вот по свободе начать разбираться с Collapse...:)
- Распаковал KOL+MCK 2.20, сделал update до 2.23
- Скачал последний архив Collapse, почитал описалово...
- Решил создать простой MCK-проект c одной пустой формой
- Выполнил все рекомендации из UsingCollapseInMCK_ru.htm
При попытках собрать заметил следующее:
1) UsingCollapseInMCK_ru.htm: скопировать в директорию проекта файл Pcompiler.cfg из папки COLLAPSE\Units и настроить - Нет такой папки в архиве - ну и ладно, этот файл нашелся в Collapse\TestCollapseX\ ... :))
2) Компилятор ругается на отсутствие InstallCollapse - в доке не описано,а МСК автоматом не добавляет uses Collapse - ерунда - пропишем руками...
3) Ошибка компилятора в Collapse.pas, line 262 - Operand size mismatch (У меня Delphi6)
OR AL,$FFFFFFF0 исправил на OR AL,$F0 - так понимает нормально :))
идем дальше....
4) Компилятор начинает ругаться на отсутствие функции AddWord_StoreByte... в BaseLib.pas такой функции нет :( - но есть AddWord_Store. Решил что это рудимент в МСК - заменил генерацию этой функции в mirror.pas (строки 8631,14681,14954) на AddWord_Store - не знаю только корректно ли это?
5) Нет файла CollapseProcTable1.inc - остальные есть(CollapseProcTableX.inc) а этот никак... - создал пустой файл руками
6) Undeclared identifier в CollapseProcTable2.inc:
{ $C0 } DD TControl.SetBorder
{ $C1 } DD NewForm
{ $C2 } DD TObj.Create
{ $C3 } DD TControl.SetCtl3D <= Undeclared identifier
{ $C4 } DD TControl.Add2AutoFree
{ $C5 } DD TControl.SetHasBorder <= Undeclared identifier
{ $C6 } DD TControl_.SetCanResize
Закоментировал пока эти строки...
Собралось!!!
Буду ковыряться дальше
RA (2005-12-21 09:37:00) [97]Кто-нибудь на Д5 колапс пробовал?
Что-то он у меня постоянно ругается на строку
CMP byte ptr[EAX], $E4
Говорит, мол инструкция по адрессу ...
Да, пытаюсь компильнуть просто пустой поект. Сегодня попробую взять проект из демки.