![]() |
| ||
|
|
Новости |
Поиск |
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 в секции Инструменты.
Vedun (2006-01-10 23:16:00) [21]2 Vladimir Kladov
> а насчет той константы в Delphi7. До конца я все-таки не
> понял. Просто заменил IntToStr на IntToHex, та же самая
> константа FF000005 работает совершенно верно, если вставлена
> как шестнадцатиричная, а не десятичная. И 80000005 тоже
> работает.
$FF000005 не работает. Зато работает $80000005. И обратите внимание на [76].
Vedun (2006-01-10 22:42:00) [22]
> В новой версии нет ведь минусов, там 16-ричные числа используются.
> Может надо просто добиться чтобы MCK перегенрировал код
> (сдвинуть форму хотя бы).
А в байт-коде остались все те же отрицательные константы
DD (-16777211)
Кажется, это в PCompiler-е надо исправить.
SPeller (2006-01-09 15:49:00) [23]иосиф (09.01.06 11:04) [74]
Можно будет VCL в п-код перегнать для уменьшения размера :))
иосиф (2006-01-09 11:04:00) [24]Владимир, а что именно даст компилятор Паскаль->П-код?
Vladimir Kladov (2006-01-09 10:41:00) [25]я нашел первую версию такого компилятора, но она не подойдет. Надо не для масм, а для басм, с выборочной компиляцией отдельно указанных паскаль-процедур, компиляция нужна на месте, а не в отдельный выходного файл своего формата. В общем я приступил, может и получится. В самом Collapse придется поправочку сделать: EBP использовать как указатель стека на момент вызова П-процедуры, и адресовать через него локальные переменные и параметры, а SELF хранить в кадре возврата П-стека (интересно, что на код это вообще не влияет, П-компилятор переделывать не надо, генерацию П-кода в МСК тоже).
френк (2006-01-09 08:52:00) [26]Vladimir Kladov (07.01.06 17:54) [66]
или уже сразу приступать к компилятору Паскаль->П-код
имхо, енто было бы круто ) ждемс ;)
Vladimir Kladov (2006-01-09 08:00:00) [27]В новой версии нет ведь минусов, там 16-ричные числа используются. Может надо просто добиться чтобы MCK перегенрировал код (сдвинуть форму хотя бы).
SPeller (2006-01-09 04:11:00) [28]Vedun (08.01.06 22:33) [69]
почему цвет должен задаваться отрицательными константами
Отрицательное число, т.е. число с 1 в 32 бите говорит о том, что использоваться должен системный цвет.
Vedun (2006-01-08 22:33:00) [29]
> Вызов SetCtlColor исправлен в Delphi7 (возможные проблемы
> с отрицательными числами во встроенном ассемблере).
Не знаю, может у меня битый компилятор, но он упорно не хочет понимать отрицательные числа. Ни один системный цвет (clWindow, clBtnFace и т.д.) не работает. Положение исправляет удаление минуса.
Может мне кто-нибудь объяснит, почему цвет должен задаваться отрицательными константами?
SPeller (2006-01-07 23:09:00) [30]Vladimir Kladov (07.01.06 17:54) [66]
или уже сразу приступать к компилятору Паскаль->П-код
Это, я думаю, людям будет очень полезно. Учитывая, что вы уже как-то делали такой компилятор, но чем всё закончилось - неизвестно.
Vladimir Kladov (2006-01-07 17:57:00) [31]а насчет той константы в Delphi7. До конца я все-таки не понял. Просто заменил IntToStr на IntToHex, та же самая константа FF000005 работает совершенно верно, если вставлена как шестнадцатиричная, а не десятичная. И 80000005 тоже работает.
Vladimir Kladov (2006-01-07 17:54:00) [32]Новости от 7 января 2006 г.
Новости KOL и MCK (v2.31):
[-]KOL: исправлена прозрачная отрисовка графических контролов и отрисовка обычных контролов (панели) в качестве родителя графических контролов.
[-]MCK: Исправлена генерация П-кода для TKOLRichEdit.Font , TKOLBitBtn , TKOLToolbar.generateVariables (так же исправлена генерация обычного кода для этого случая), TKOLFrame. Вызов SetCtlColor исправлен в Delphi7 (возможные проблемы с отрицательными числами во встроенном ассемблере).
Прочие новости:
[*]пакет Collapse обновлен (добавлена опция /A для Pcompiler для полной перекомпиляции всех модулей, содержащих П-код).
уменьшил на 100К свой проект. Теперь вот думаю, руками переписывать участки кода, которые не генерит MCK (в OnFormCreate, в OnShow, у меня там километры), или уже сразу приступать к компилятору Паскаль->П-код...
homm86 (2006-01-07 14:39:00) [33]
> яяя (07.01.06 11:26) [63]
А инмтрукцию читать пробывал?
Vedun (2006-01-07 12:08:00) [34]
> Как я понял, строчке
>
>
> 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;
Вот из-за отличия этих констант и получается глюк.
яяя (2006-01-07 11:26:00) [35]Всем привет. у меня проблемы с коллапсом. поставил кол и мск 2.30 и последний коллапс. Перекомпилил пдебаг и пкомпилер как написан в риадми. Пробую компилить демо 1 или демо 2 и нечиге не пашет, что делать?
SPeller (2006-01-07 10:29:00) [36]Видимо, где-то Color2RGB не выполняется.
Vedun (2006-01-06 18:50:00) [37]Как я понял, строчке
Result.EditBox1.Color := clWindow;
соответствует конструкция
L(-16777211)
C1 TControl_.SetCtlColor<2>
Так вот, константа -16777211 неправильно понимается (не знаю правда кем) и вместо белого фона компонента имеем черный. Удаление минуса исправляет положение.
homm (2006-01-06 13:09:00) [38]Сори... Еще не видел Vladimir Kladov (06.01.06 12:50) [58] когда писал.
homm (2006-01-06 13:07:00) [39]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...., а не следуюший за строкой код.
Сделайте разбиение в компиляторе! Плиз. Ну ведь проблем реально меньше будет ИМХО.
Vladimir Kladov (2006-01-06 12:50:00) [40]Новости от 6 января 2006 г.
Новости KOL и MCK (v2.30):
[ ]KOL: не изменился.
[-]MCK: исправлена генерация П-кода для TKOLEdit.Text , TRichEdit.Text , TControl.SetCtlColor, TKOLCustomControl.EraseBkgnd. Решена проблема слишком длинных (truncated) строк.
Прочие новости:
[+]обновлен пакет Collapse (PCompiler: проблема слишком длинных строк в asm-коде).