![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Версия 2.84 [Delphi, KOL/MCK, Windows]
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 не адаптировал. Но ничего, до следующего раза доживёт а там поправлю.
D[u]fa (2007-10-30 18:53:00) [1]а я выкладывал же, у меня с ним работает. хотя от 7ой подойдет тоже
Vladimir Kladov (2007-10-30 17:02:00) [2]Пакет лучше не конвертить, а новый сделать. Добавить mirror.pas, mckObjs.pas и mckCtrls.pas, и символ условной компиляции INPACKAGE. И сохранить, затем собрать и установить.
Vladimir Kladov (2007-10-30 16:41:00) [3]Я уже сделал, чтобы конверсия шла не сборкой пакета, а перез свойство в TKOLProject. Махом меняет, в любой Delphi.
У меня кстати в одном модуле конвертер не справился с конверсией IFDEF'ов которые внутри uses. Уж больно много там было еще и моих IFDEF'ов. А тут еще сам Delphi решил вмешаться, что-то продублировал, что-то куда-то перенёс, после у него совсем крыша съехала, и он стал проект загружать. Пришлось в блокноте открывать и всё руками исправлять. Так что с автоматикой поосторожнее надо.
Vladimir Kladov (2007-10-30 16:36:00) [4]Thank you, I'll fix it.
D[u]fa (2007-10-30 11:09:00) [5]угу именно я ж писал выше, что надо менять. и после этого закрыть проект и заново открыть и в мирор.пас, как писал Владимир, надо сделать изменение что б мск генерил пральный код
SergeR (2007-10-30 10:00:00) [6]{IF Define(KOL_MCK)}///<-
uses Windows,.....надо поменять на
{$IFDef KOL_MCK}, а то не работает.
homm (2007-10-30 09:02:00) [7]> [17] D[u]fa © (30.10.07 08:44)
> а тут так?
{IF Define(KOL_MCK)}
В самом файле проекта не сменились, остались {$IFDef}, поменял в ручную, эффект тот-же.
D[u]fa (2007-10-30 08:44:00) [8]homm
а тут так?
{$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}//<---
homm (2007-10-30 07:42:00) [9]> [15] homm © (30.10.07 07:36)
> Т.е. что-бы конвернуть старый проект, нужно открыть его
> на новом коле в дельфи 6 или 7 ?
Так и сделал, ИФДЕФЫ сменились, но 2007 все равно не считает проект VCL-ным.
homm (2007-10-30 07:36:00) [10]> [0] Vladimir Kladov © (28.10.07 17:54)
> Генерируемый код несколько отличается,
> поэтому предусмотрена автоматическая конверсия при переходе
> от прежних
> версий Delphi к новым и наоборот, при загрузке проекта
> в IDE.
> Изменения начинают работать начиная с Delphi6 и Delphi7
> (хотя в этих
> версиях MCK работает и без нового кода).
Вот тут поподробнее. Т.е. что-бы конвернуть старый проект, нужно открыть его на новом коле в дельфи 6 или 7 ?
Я открыл старый проект сразу в 2007, она его не распознает как VCL, считает его Вин32 проектом.
homm (2007-10-30 07:21:00) [11]> [5] mdw © (29.10.07 11:36)
> Доступно на http://www.kolnmck.ru/files1.shtml
Не плохо было бы включить туда пакеты для старших версий…
Сделал пакет для КОЛ, добавил файлы, поставилось.
Сделал пакет для Грашей, добавил файлов, он автоматически в requires добавил MirrorKOLPackageD2007, но при установке выдает:
[DCC Error] GRushControls_D2007.dpk(30): E1026 File not found: 'MirrorKOLPackageD2007.drf'
Название пакета верное… Файла такого действительно нигде на жестком нет…
Jon (2007-10-30 03:52:00) [12]I have a fix for the stream size bug:
function FileSeek
Line 20780
Result := SetFilePointer(Handle, DWORD( MoveTo ), nil, Ord( MoveMethod ) )
Change to:
Result := SetFilePointer(Handle, I64(MoveTo).Lo, @I64(MoveTo).Hi, Ord( MoveMethod ) )
Also may need this:
procedure SetSizeFileStream
Line 25020
P: DWORD;
Change to:
P: TStrmSize;
Hope that it helps.
Jon (2007-10-29 19:59:00) [13]
> A capability added to work easy with streams and files larger
> then 4Gbytes. To do so, a symbol STREAM_LARGE64 must be
> included to the project options.
Bu report: The size cannot be set greater than MaxInt.
begin
with NewWriteFileStream('test')^ do
try
Size := Int64(MaxInt) + 1;
finally
Free;
end;
end.
A file of 0 bytes is created :-(
The following VCL code works correctly:
begin
with TFileStream.Create('test', fmCreate) do
try
Size := Int64(MaxInt) +1;
finally
Free;
end;
end;
Conditional STREAM_LARGE64 is defined.
D[u]fa (2007-10-29 19:29:00) [14]насчет свойства NewIf поддерживаю. 2007 по лучше 2006 буит, хоть и не сильно. А вот к фаст тип я тоже привык, надо какой то порт под 2007, хотя эту версию еще не пробовал туда вставить
Vladimir Kladov (2007-10-29 18:22:00) [15]Да, старая, это ниде 6-й. Если надо обратный конверт, я уже писал: пока что символом NO_NEWIF в пакете. В принципе, наверное, стоит добавить в TKOLProject типа дезайнтайм свойство NewIf, чтобы попроще конвертить.
Мне не понравилось что в BDS сразу изменения не отображаются, а если переключиться куда-нибудь в чужое окно и обратно, только тогда он спохватывается, и спрашивает, что раз файл загруженный в IDE изменился извне, то не перезагрузить ли его.
Вообще в нем code insight глючит не по детски. Хочет тултип всплыть, но только дрожит пустое белое окно. При ребилде пакета, он его сносит, и приходится еще раз Install делать.
Мне вообще не по нутру пришлась идея нового дизайнера содранная из MS VC + .NET. Почему на гигантском экране в 22" я не могу одновременно писать код и видеть форму. Я так привык и мне так удобней - как было раньше. Не, не буду переходить. К тому же под bds тянуть fast type не получится (кажется). А я уже привык по-своему текст набирать :)
D[u]fa (2007-10-29 16:32:00) [16]>А вот тут чего то не работает у меня, всё остается по старому.
старая иде это ниже 6ой =)
D[u]fa (2007-10-29 16:10:00) [17]Vladimir Kladov, криво в каком смысле?
кстати насчет автоконверта) не много не продумали, если запустить проект сделанный в 7ке на 2007 то автоконверт не сработает =) потому к форме доступа нету и мск не может генерить код =) зато запустив в 7ой срабатывает конверт и после этого мона на 2007 запускать.
падений у меня лично не наблюдалось. мб не из-за мск падает 2006 ?
SergeR (2007-10-29 15:56:00) [18]Огромный респек
> Генерируемый код несколько отличается,
> поэтому предусмотрена автоматическая конверсия при переходе
> от прежних
> версий Delphi к новым и наоборот, при загрузке проекта
> в IDE.
т D[u]fa и Владимиру.
Поставил на BDS2006. Работает
> Генерируемый код несколько отличается,
> поэтому предусмотрена автоматическая конверсия при переходе
> от прежних версий Delphi к новым и наоборот, при загрузке проекта
> в IDE.
А вот тут чего то не работает у меня, всё остается по старому.
Vladimir Kladov (2007-10-29 15:50:00) [19]Я сегодня смотрел на bds2006, вроде работает. Но как там всё криво, однако. И на закрытии оболочки падает.
mdw (2007-10-29 11:36:00) [20]Доступно на http://www.kolnmck.ru/files1.shtml
KOL v.2.84 (28.10.2007)
KOL&MCK v.2.84 (28.10.2007)
KOLnMCK-CE v.2.80-Rev.219 (23.10.2007)