![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
версия 2.06 [Delphi, KOL/MCK, Windows]
Владимир Кладов © (2005-03-06 17:24:00)Новости от 6 марта 2005 года
Новости KOL и MCK (v2.06):
[*]KOL: функция Int2Ths несколько изменена и использует глобальную переменную ThsSeparator. По предложению Дмитрия Жарова a.k.a. Gandalf. Так же, asm-версия этой функции исправлена для случая отрицательного аргумента.
[-]MCK: исправлена опечатка в наименовании свойства GenerateSeparatorConstants (когда проект будет загружен в Delphi IDE после пересборки пакета, следует игнорировать все предупреждения).
[-]MCK: функция TKOLDataModule.Result_Form исправлена ECM (для случая USE_NAMES генерировался неверный код: nil.Name := ...).
[+]MCK: добавлено свойство TKOLListBox.LBItemHeight - автор ECM.
[-]KOL: исправлена функция TStream.WriteStrEx (теперь возвращает число записанных байтов).
[-]KOL: испрвлена функция NewGroupbox (asm-версия: начальный размер по умолчанию вычислялся неверно). Так же удалены ненужные стили окна (WS_GROUP, WS_TABSTOP) и устанавливается (новый) флажок fIsGroupBox (protected).
[*]KOL: для TabControl-а, изменение текущей закладки более не приводит к ее фокусирования (так как такое изменение могло быть выполнено программно из вашего кода, а не только по клику мыши).
[*]KOL: изменен метод TControl.SetRadioChecked для предотвращения фокусирования радиобокса, если этот метод вызывается из программы, а не в результате клика мыши.
[-]KOL: при наборе контролов, попадающих список для табулирования (Tabulate) контролы, имеющие дочерние табулируемые контролы, сами из списка теперь исключаются и более не фокусируются кнопкой табуляции.
[-]KOL: AutoSize изменен для WordWrap-контролов и для них автоматически меняет теперь только свойство Height.
[-]KOL: исправлен метод TBitmap.SetHandle.
[+]KOL: добавлены метод TList.AddItems и еще одна функция-конструктор: NewListInit.
[*]KOL: объекты TListEx, TWStrList, TWStrListEx, TMetafile, TDirChange, TCabFile, TAction, TActionList и сопутствующие функции, а так же функции WStrCopy, WStrCmp перемещены в модуль KOLadd.pas для сохранения размера модуля KOL.pas в пределах ограничения 65535 строк (иначе отладчик Delphi отказывается работать с модулем, вплоть до краха Delphi IDE).
[+]KOL: добавлен метод-функция TControl.MakeWordWrap.
[*]KOL: метод TControl.CreateWindow преобразован из процедуры в функцию (boolean) и может возвращать false - для безоконных контролов.
[+]KOL: добавлен набор графических контролов, с конструкторами-функциями: NewGraphLabel, NewWordWrapGraphLabel, NewGraphPaintBox, NewGraphCheckBox, NewGraphRadioBox, NewGraphButton, NewGraphEdit. MCK: добавлено свойство windowed для TKOLLabel, TKOLCheckBox, TKOLRadioBox, TKOLEditBox, TKOLPaintBox. Так же, свойство WordWrap доступно теперь для TKOLCheckBox, TKOLRadioBox, TKOLButton, хотя имеет эффект только для их безоконных версий (когда windowed = false). При добавлении в свойства проекта символа условной компиляции GRAPHCTL_XPSTYLES, графические контролы отрисовываются с использованием текущей темы под XP, и когда добавлен символ GRAPCTL_HOTTRACK, они еще и маркируются визуально при наведении мыши (если GRAPHCTL_XPSTYLES так же уже включен), и при этом втором символе для графических контролов работают события OnMouseEnter / OnMouseLeave.
Вид и поведение графических контролов такие же (или очень похожи) по сравнению с обычными оконными, хотя они не имеют дескриптора окна. Это может экономить так называемые "user resources" (несущественно для NT/2K/XP) и повышать быстродействие для форм, имеющих большое число таких дочерних элементов. Так же, графические контролы имеют дополнительные преимущества: события OnPrePaint / OnPaint / OnPostPaint, для большинства из них действует свойство WordWrap, а кнопка может содержать иконку вместе с тектом.
[*]KOL: изменение свойств TControl.Enabled, Parent, BoundsRect теперь вызывает Invalidate. Это необходимо для правильной работы графических контролов.
[*]KOL: процедура TerminateExecution объявлена в интерфейсной части KOL.pas. Это позволяет переопределить свою процедуру взамен Run слегка изменив ее код (например, увеличить приоритет обработки некоторых сообщений выбирая их из очереди сообщений первыми).
[+]KOL: для формы добавлено свойство KeyPreview (автор - truf), требуется включить так же символ условной компиляции KEY_PREVIEW в опции проекта. Нет специального свойства MCK, просто событие OnKeyDown срабатывает для формы до обработки WM_KEYDOWN в фокусном контроле.
Прочие новости:
[*]обновлено инструментальное приложение DiffLines (работает быстрее, исправлен вид для XP) и теперь с исходниками в дистрибутиве. См. в Инструментах.
dimaxx (2005-03-09 19:29:00) [21]2 fellix: Это в файле написано, а не на сайте. На сайте Владимир мог и забыть поменять.
uuzh (2005-03-09 18:29:00) [22]Интересный эффект для версии 2.07
Если назначить для editbox, label или PainBox windowed:=false
После чего во время выполнения поменять Caption/Text/Color - эффект "0", ничего не меняется.
azsd (2005-03-09 12:05:00) [23]is it possible port the MCK to delphi 2005?
pure kol seems working fine in d2005.
ECM (2005-03-09 11:11:00) [24]З.Ы. 2Ал
Опция USE_CMOV появилась начиная с версии 1.97.
Поэтому версии 1.93-1.96 будут иметь этот эффект.
Правда только при условии, что используется Delphi6
или выше.
ECM (2005-03-09 11:04:00) [25]2Ал
Версия 1.93 в этом плане отличается от 1.92 (и это обсуждалось
в данной конференции) использованием новых команд процессора CMOVx. Естественно эти команды должны вызывать "жуткий" вылет
на процессорах ее не понимающих (типа P200).
Посмотри следующее:
1) Не задается ли где-нибудь по тексту $DEFINE USE_CMOV?
2) Включи отладочную информацию в опциях компилятора, затем
открой модуль kol.pas и поищи все строки где встречается
CMOV. Если код их использующий попадает в исполняемый
модуль, слева (на сером фоне) должна появляться синяя
точка, показывающая, что в данном месте можно ставить
breakpoint.
В твоем случае код с CMOV НЕ долженподключаться в исполняемый модуль!
Ал (2005-03-09 09:58:00) [26]Для miek
Если быть точным, то 1.93 уже не идет на P200, Win95.
Да и к чему такая точность! Хочется, чтобы 2.XX работала!
miek (2005-03-09 09:49:00) [27]aL>начиная с 1.92 KOL не идет на Pentium 200 и более ранних
Идет, я недавно запускал на P-133 MMX. Было только несколько не работающих на старых процах версий около номера 1.98...
ECM (2005-03-09 09:03:00) [28]MTsv DN (09.03.05 08:31) [31]
В версии 2.06 и 2.07 не работает компонент BAPFileBrowser.
Ошибка: Unknown identifier PDirChange.
Что делать?
unit KOLBAPFileBrowser;
...
interface
uses Windows, Messages, KOL, KOLAdd;
MTsv DN (2005-03-09 08:31:00) [29]В версии 2.06 и 2.07 не работает компонент BAPFileBrowser.
Ошибка: Unknown identifier PDirChange.
Что делать?
С Уважением MTsv DN
Ал (2005-03-09 08:25:00) [30]Ребята, вы все, конечно, правильно тут рассуждаете. Только почему такая тишина по поводу того, что начиная с 1.92 KOL не идет на Pentium 200 и более ранних. Я об этом уже не раз писал. К сожалению, моей квалификации на поиск и исправление не хватит. Но авторы-то знают, где копать. Или от этого тихо отказались? Зря! Таких настольных систем и нотебуков еще немало. Особенно, как ни странно - там, у них! К тому же однозначно прослеживается тенденция - чем новее KOL, тем пухлее exe. А в начале говорили - не-е-е!
Очень хочется KOL 2, чтобы работал на старых Pentium!
С уважением.
fellix (2005-03-09 00:15:00) [31]> dimaxx
> Версия KOLadd - 2.04 ...
Это на bonanzasтак написано, а реально качается последняя версия.
dimaxx (2005-03-08 23:09:00) [32]Версия KOLadd - 2.04. А где обновление до 2.07? Ведь уже давно вижу в описаниях нововведений строчки о переносе из KOL в KOLadd. А когда можно увидеть эти переносы в KOLadd?
gent (2005-03-08 00:48:00) [33]>Paha
>Можт нужен Updater? Только вот где его искать?
http://bonanzas.rinet.ru/r_tools.htm
gent (2005-03-08 00:44:00) [34]> Thaddy.
Yes, of course, WinAPI. So what? If you look to code of KOLDateTimePicker, you see that you can get/set data only as TDateTime, although native format if _SYSTEMTIME. The property proposed is called to get/set original values avoiding unnecessary conversions to TDateTime and backward.
Paha (2005-03-07 23:32:00) [35]>> ECM
Так что, качай KOL v2.00 + MCK v2.00 + KOLAdd + Updater + update 2.00 to 2.07
KOL 2.00 + MCK 2.00 + KOLAdd + Update 2.00-->2.07 - скачал. А что делать с файлом kolmck200to207.upd?? Как обновить? Напишите подробнее...
Можт нужен Updater? Только вот где его искать?
thaddy (2005-03-07 23:17:00) [36]DateTimepicker is a Windows API! control and behaves like MS intended. It is good as it is, since it behaves the same as in every other application.
gent (2005-03-07 22:50:00) [37]Предлагается добавить следующее свойство для TKOLDateTimePicker.
protected
procedure SetSystemTime(Value: TSystemTime);
function GetSystemTime: TSystemTime;
public
property SystemTime: TSystemTime read GetSystemTime write SetSystemTime;
........................
procedure TControl.SetSystemTime(Value: TSystemTime);
begin Perform(DTM_SETSYSTEMTIME, GDT_VALID, Integer(@Value)); end;
function TControl.GetSystemTime: TSystemTime;
begin Perform(DTM_GETSYSTEMTIME, 0, Integer(@Result)); end;
_SYSTEMTIME - это естественный для данного "контрола" формат данных и, если нужно работать с элементами времени/даты, совершенно ни к чему таскать за собой преобразования в TDateTime и/или обратно.
gent (2005-03-07 22:49:00) [38]В версии 2.06 ошибка в TBitmap.SetHandle (см. http://delphimaster.ru/cgi-bin/forum.pl?id=1109718996&n=10) исправлена, но...
Дана программа:
var bmp: PBitmap;
procedure TForm1.KOLForm1FormCreate(Sender: PObj);
begin bmp := NewBitmap(0, 0);
bmp.LoadFromResourceName(hInstance, 'BMP');
end;
procedure TForm1.KOLForm1Paint(Sender: PControl; DC: HDC);
begin bmp.DrawTransparent(DC, 0, 0, clFuchsia); end;
Здесь 'BMP' - 16-цветный битмап.
Эта программа прекрасно работает (transparent!) под Windows 98 при трансляции через KOL 2.03 и выдает полную ерунду при KOL 2.06. Варианты с NewDIBBitmap, DrawMasked и т.п. не помогают...
ECM (2005-03-07 21:20:00) [39]>Мне надо готовую полную версию KOL+MSK 2.07.
Такой версии нет, и очевидно на сайте у Кладова не будет.
Так что, качай KOL v2.00 + MCK v2.00 + KOLAdd + Updater + update 2.00 to 2.07.
А никто и не обещал, что будет легко :)
SPeller (2005-03-07 21:19:00) [40]Paha (07.03.05 20:36) [19]
Да мне не нужны апдейты. Мне надо готовую полную версию KOL+MSK 2.07
А нету такой! Обновляй 2.0 до нужной.