![]() |
| ||
|
|
Новости |
Поиск |
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) и теперь с исходниками в дистрибутиве. См. в Инструментах.
Paha (2005-03-07 20:36:00) [41]>>ECM
Да мне не нужны апдейты. Мне надо готовую полную версию KOL+MSK 2.07.
Paha (2005-03-07 20:36:00) [42]>>ECM
Дап мне не нужны апдейты. Мне надо готовую полную версию KOL+MSK 2.07.
Владимир Кладов (2005-03-07 20:34:00) [43]по поводу граф. контролов: не стоит их класть на других родителей кроме самой формы, панели, паинт-бокса (когда он сам windowed) и групбокса (и то для групбокса с дочерними граф. контролами пришлось его полностью рисовать своим кодом). А так вообще результат очень хороший если на форме штук 50 контролов "заменить" их графическими аналогами, особенно заметно на чуть более слабых машинах. Заменить в кавычках потому что вся замена сводится к установке windowed в false в инспекторе объектов.
Если есть желающие довести до графической аналогии еще пару-тройку контролов, я за. Первоочередные кандидаты: bitbtn, combobox, imageshow. Еще предложения?
ECM (2005-03-07 19:59:00) [44]>Paha (07.03.05 19:09) [14]
>Дайте прямую ссылку на версию 2.06 а то в Инструментах не найти.
А причем здесь Инструменты? :) Надо искать в Обновлениях
http://bonanzas.rinet.ru/upd/kolmck205to206.zip
http://bonanzas.rinet.ru/upd/kolmck200to206.zip
http://bonanzas.rinet.ru/upd/kolmck206to207.zip
http://bonanzas.rinet.ru/upd/kolmck200to207.zip
Владимир Кладов (2005-03-07 19:45:00) [45]Новости KOL & MCK
от 7 марта 2005 года
Новости от 7 марта 2005 года
Новости KOL и MCK (v2.07):
[-]KOL/MCK: некоторые исправления для того, чтобы новая версия KOL/MCK
устанавливалась для старых версий Delphi и для Free Pascal.
[-]MCK: исправлена установка Caption и Cursor для Form из Object
Inspector-а, исправил ECM.
[-]KOL: исправлена фунгкция WndFuncCombo, исправил ECM.
[-]KOL: исправлена функция GetFileListStr, исправил Сергей Шишминцев.
[+]KOL: добавлен символ условной компиляции PROVIDE_EXITCODE, с
которым PostQuitMessage( value ) присваивает переданное параметром
значение глобальной переменной ExitCode, по предложению Сергея
Шишминцева.
[+]KOL: добавлен символ условной компиляции INITFORMSIZE_FIXMENU, с
которым начальный размер формы при ее создании во время выполнения в
точности соответствует заданному во время разработки (MCK), в том
числе для форм с главным меню.
[+]KOL: добавлено свойство TControl.Check3 для чекбоксов со стилем
BS_AUTO3STATE, код предложил Сергей Шишминцев.
[+]KOL: добавлено свойство TControl.LVFocusItem.
[+]KOL: добавлены новые стили odEditBox и odNewDialogStyle для
TOpenDirDialog, автор Сергей Шишминцев.
[*]KOL: функция StrLoadFromFile может теперь читать из специального
"файла" 'CON' (перенаправление консольного в/в), код предложил Сергей
Шишминцев.
[+]MCK: добавлено свойство TKOLComboBox.CBItemHeight, автор ECM.
[+]KOL/MCK: если установлен флаг TPM_RETURNCMD (MCK: опция
tpmReturnCmd) при вызове TMenu.PopUp (MCK: в TKOLPopupMenu.Options),
функция PopUp возвращает ID выбранного пункта меню, автор ECM.
Прочие новости:
[-]исправлен UpdateMaker (вычисление контрольной суммы иногда
выполнялось неверно). См. новую версию в Инструментах.
Paha (2005-03-07 19:09:00) [46]Дайте прямую ссылку на версию 2.06 а то в Инструментах не найти.
ECM (2005-03-07 16:10:00) [47][kol.pas]
По-моему в ASM-версию TControl.SetParent вкралась опечатка,
блок условной компиляции подключается неверно:
{$IFDEF INPACKAGE} - необходимо поменять знак условия ->{$IFNDEF INPACKAGE}
... в PAS-версии все в порядке...
SPeller (2005-03-07 15:18:00) [48]Вообще, USE_DROPDOWNCOUNT делал я для того чтобы исправить баги с количеством итемов в выпадающем списке комбобоксов при включенных темах.
ECM (2005-03-07 14:04:00) [49]>Владимир Кладов (07.03.05 08:38) [7]
>про комбобокс возражений нет, этот кусок компилится только при >включенном USE_DROPDOWNCOUNT
Непонятно утверждение о USE_DROPDOWNCOUNT. О каком исправлении
речь?
Это про исправление в WndProcCombo для фильтрации в OnChar?
Или я что-то пропустил?
Вроде бы в пределах кода ограниченного USE_DROPDOWNCOUNT сообщений об ошибках небыло
Владимир Кладов (2005-03-07 09:53:00) [50]c not в MCK - я исправил, в обновлении будет. Хотя у меня и так работало. Почему-то.
ECM (2005-03-07 09:44:00) [51]2Владимир Кладов (06.03.05 19:24) [4]
>Сейчас еще глюков накопаем, обновление выйдет в ближайшие дни.
Я тут обнаружил, что большая часть почты с предложениями об исправлениях, "тихо умерла" в анти-спамовой заглушке моего
провайдера. Прошу дождаться моего письма плз.
ECM (2005-03-07 09:37:00) [52]2Владимир Кладов (07.03.05 08:38) [7]
А глюк с Form.Caption и Form.Cursor в MCK?
По-моему это "опечатка" - и ее бы надо исправить...
Или тут есть более глубокие завязки? :)
Владимир Кладов (2005-03-07 08:38:00) [53]про комбобокс возражений нет, этот кусок компилится только при включенном USE_DROPDOWNCOUNT
для сообщений мыши анализируйте Shift, wParam там содержит комбинацию флажков нажатых кнопок, приведение к типу TMouseButton не имеет смысла и неверно. А mbNone - просто дает более короткий код.
Vladimyr (2005-03-07 03:04:00) [54]Присоединяюсь!
Владимир, исправьте, пожалуйста, также глюкиForm.CaptionиComboBox.OnChar!
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1109622535&n=10
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1109735577&n=10
BelchonokH (2005-03-06 20:51:00) [55]C версии 1.97 не обновляюсь, только из-за одного бага, который я у себя поправил, я писал и раньше на счёт этого (прошу прощения если это уже исправлено). А дело вот в чём, сейчас в kol.pas:
function WndProcMouse(Self_: PControl; var Msg: TMsg; var Rslt: Integer): Boolean;
var MouseData: TMouseEventData;
begin
Result := False;
...
X := LoWord( Msg.lParam );
Y := HiWord( Msg.lParam );
Button := mbNone;
А должно быть (чтобы при MouseMove возвращалась правильно нажатая клавиша):
...
X := LoWord( Msg.lParam );
Y := HiWord( Msg.lParam );
Button := TMouseButton(Msg.wParam);
Большая просьба Владимиру Кладову, поправьте плиз!!! А то столько обновлений и наворотов вышло, а этот глюк исправлять постоянно не хочется, вот и сижу на старой версии...
Владимир Кладов (2005-03-06 19:24:00) [56]там еще глючок: KEY_PREVIEW и ESC_CLOSE_DIALOGS "must be" для pas-версии, иначе неприятности: begin с end'ом не в паре оказываются. Сейчас еще глюков накопаем, обновление выйдет в ближайшие дни.
Владимир Кладов (2005-03-06 19:16:00) [57]forget to test it for earlier Delphi.
push dword ptr [edi]
must be there for these.
Boguslaw Brandys (2005-03-06 18:24:00) [58]Soory. I didn't write what an error occur:
"Invalid combination of opcode and operands"
Boguslaw Brandys (2005-03-06 18:22:00) [59]Bug in 2.06 (after update from 2.00 but it no matter I think)
I cannot install MCK 2.06 into Delphi 5.0 Standart
{$IFDEF ASM_VERSION}
//[function TControl.GetCaption]
function TControl.GetCaption: String;
line 36761 KOL.pas
push [edi] ???
Maybe should be :
push edi
Could You fix this ?
Regards
Boguslaw Brandys