Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Версия 2.84 [Delphi, KOL/MCK, Windows]


Страницы:   1 2

Vladimir Kladov ©   (2007-10-28 17:54:00) 

            Новости от 28 октября 2007 (KOL & MCK v2.84)

[+] Важно: благодаря D[u]fa, MCK теперь работает и на BDS2005-BDS2007,
а  так  же  на  Turbo  Delphi.  Генерируемый код несколько отличается,
поэтому предусмотрена автоматическая конверсия при переходе от прежних
версий  Delphi  к  новым  и  наоборот,  при  загрузке  проекта  в IDE.
Изменения  начинают  работать начиная с Delphi6 и Delphi7 (хотя в этих
версиях  MCK работает и без нового кода). Для восстановления генерации
прежнего кода MCK следует пересобрать с опцией NO_NEWIF.

[*] TLIST_FAST:

-  добавлено  свойство  UseBlocks  в  секцию  public, чтобы легче было
изменять  его  при  создании  списков,  для  которых  эта  возможность
индивидуально не используется, даже при наличии TLIST_FAST в опциях;

- для ряда функций (методов), асм-версия которых не работает корректно
с TLIST_FAST, асм-код отключён;

-  для  многих  функций  и методов в Паскаль-версии обращение к fItems
заменено либо на Items безусловно, либо по условию TLIST_FAST.

[+] Добавлена возможность работать с потоками и файлами размером более
4Гбайт.  Для  этого  следует  в опции проекта включить символ условной
компиляции  STREAM_LARGE64.  В  любом случае объявления многих функций
потоков  несколько  изменились  и  это может вызвать несовместимость с
какими-либо  старыми  компонентами,  поэтому предусмотрена возможность
устранения  такой  несовместимости,  включив  символ STREAM_COMPAT. На
данный   момент  совместимость  обеспечена  для  пакета  KOLZlib,  при
необходимости  будут  выполнены  изменения  и  в  других  зависимых от
потоков пакетах.

Так же, изменена функция FileSeek и удалена функция FileFarSeek.

[+]   Добавлена   возможность   конкатенации   двух  потоков  (функция
NewConcatStream)  произвольной  природы и размера в один объект, делее
рассматриваемый программой как обычный поток данных.

[+]  Добавлен  метод  TIcon.SetHandleEx, позволяющий присвоить объекту
пиктограммы  дескриптор  иконки  без  извлечения  из неё битмапов и их
анализа  для  установки  размера  (размер  должен  быть предварительно
установлен  вашим  программным  кодом  тем  не  менее). Данный вариант
быстрее,  и  всегда  работает  в Windows9x (где извлечение битмапов по
дескриптору иконки может не работать).

[-] Для UNICODE_CTRLS:
- Str2DateTimeShort:Тип параметра изменён (String->KOLString);
- и исправлен порядок вычисления формата (строки).

[*]  Внутреннее  изменение:  во  избежание путаницы список подчинённых
элементов меню теперь называется FMenuItems вместо прежнего FItems.

[-]  В  обработчик  сообщений комбо-бокса добавлена проверка видимости
контрола  перед  обработкой  WM_COMMAND  (иначе  система  обеспечивала
выпадание  списка  для  невидимого  в  настоящий момент комбо-бокса по
кнопке  F4,  если  до  сокрытия  родительской панели комбо-бокс был (и
остался) в фокусе ввода.

[-]  В  обработчике  WndProcTransparent выполнены изменения (by homm),
которые  исправляют  прозрачность  для соседних контролов (учитывая не
только прозрачных родителей, но и DoubleBuffered).

[-]  MCK:  Для TKOLScrollox свойство OverrideScrollbars добавлено, для
TKOLScrollbar удалено.


Будете собирать общий пакет, обратите внимание: mckToolbarEditor.inc больше не нужен.

Эх, под Delphi2/3 не адаптировал. Но ничего, до следующего раза доживёт а там поправлю.


Vladimir Kladov   (2007-10-28 20:36:00) [21]

11931 (б вместо ',' набил)


Vladimir Kladov   (2007-10-28 20:32:00) [22]


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


Всё проще. Строка в mirror.pas 11931б раскомментарить в фигурных скобках чтобы стало:
     if (Trim( Source[ i ] ) = '{$IFDEF KOL_MCK}') and
        ((Source[ I ][1] = ' ')) then


Если руками испралять везде долго, то:
1. Открываем пакадж, ставим опцию NO_NEWIF, Build.
2. Закрывае пакадж, открываем проект, пробегаем по формам (всё вертается на IFDEF/ENDIF
3. Закрываем проект, открываем пакадж, убираем опцию NO_NEWIF, Build.
4. Закрывает пакадж, открываем проект, пробегаем по юнитам с формами, (теперь IF где надо, где не надо - IFDEF), Build. Теперь всё как надо. Сейчас в D6 проверил - всё тоже работает. Это я какой-то глюк словил и с испугу закомментарил :)


Vladimir Kladov   (2007-10-28 20:19:00) [23]

А в Delphi6-7 наоборот глюк получается. С IF Defined событие назначал на кнопку для теста, работало.

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


D[u]fa   (2007-10-28 18:46:00) [24]

Владимир, небольшая поправочка:

здесь нужно оставить по старому:
{$IFDef KOL_MCK}///<-
uses Windows, Messages, KOL {$IF Defined(KOL_MCK)}{$ELSE}, mirror, Classes,
mckObjs, Controls, mckCtrls, SysUtils {$IFEND (place your units here->)};
{$ELSE}
{$I uses.inc}
 Windows, Messages, Classes, Controls, Forms, mirror;
{$ENDif}//<---

а на данный момент МСК конвертит в:

{$IF Defined(KOL_MCK)}<<<
uses Windows, Messages, KOL {$IF Defined(KOL_MCK)}{$ELSE}, mirror, Classes,
mckObjs, Controls, mckCtrls, SysUtils {$IFEND (place your units here->)};
{$ELSE}
{$I uses.inc}
 Windows, Messages, Classes, Controls, Forms, mirror;
{$ifend}<<<

иначе в 2007 наблюдается глюк, код генерится форму вроде видно, но назначить события нельзя...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо