Текущий архив: 2005.11.06;
Скачать: CL | DM;
Внизверсия 2.06 Найти похожие ветки
← →
Владимир Кладов (2005-03-06 17:24) [0]Новости от 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) и теперь с исходниками в дистрибутиве. См. в Инструментах.
← →
Boguslaw Brandys (2005-03-06 18:22) [1]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
← →
Boguslaw Brandys (2005-03-06 18:24) [2]Soory. I didn"t write what an error occur:
"Invalid combination of opcode and operands"
← →
Владимир Кладов (2005-03-06 19:16) [3]forget to test it for earlier Delphi.
push dword ptr [edi]
must be there for these.
← →
Владимир Кладов (2005-03-06 19:24) [4]там еще глючок: KEY_PREVIEW и ESC_CLOSE_DIALOGS "must be" для pas-версии, иначе неприятности: begin с end"ом не в паре оказываются. Сейчас еще глюков накопаем, обновление выйдет в ближайшие дни.
← →
BelchonokH (2005-03-06 20:51) [5]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);
Большая просьба Владимиру Кладову, поправьте плиз!!! А то столько обновлений и наворотов вышло, а этот глюк исправлять постоянно не хочется, вот и сижу на старой версии...
← →
Vladimyr © (2005-03-07 03:04) [6]Присоединяюсь!
Владимир, исправьте, пожалуйста, также глюкиForm.Caption
иComboBox.OnChar
!
http://delphimaster.net/view/11-1109622535/
http://delphimaster.net/view/11-1109622535/
← →
Владимир Кладов (2005-03-07 08:38) [7]про комбобокс возражений нет, этот кусок компилится только при включенном USE_DROPDOWNCOUNT
для сообщений мыши анализируйте Shift, wParam там содержит комбинацию флажков нажатых кнопок, приведение к типу TMouseButton не имеет смысла и неверно. А mbNone - просто дает более короткий код.
← →
ECM © (2005-03-07 09:37) [8]2Владимир Кладов (07.03.05 08:38) [7]
А глюк с Form.Caption и Form.Cursor в MCK?
По-моему это "опечатка" - и ее бы надо исправить...
Или тут есть более глубокие завязки? :)
← →
ECM © (2005-03-07 09:44) [9]2Владимир Кладов (06.03.05 19:24) [4]
>Сейчас еще глюков накопаем, обновление выйдет в ближайшие дни.
Я тут обнаружил, что большая часть почты с предложениями об исправлениях, "тихо умерла" в анти-спамовой заглушке моего
провайдера. Прошу дождаться моего письма плз.
← →
Владимир Кладов (2005-03-07 09:53) [10]c not в MCK - я исправил, в обновлении будет. Хотя у меня и так работало. Почему-то.
← →
ECM © (2005-03-07 14:04) [11]>Владимир Кладов (07.03.05 08:38) [7]
>про комбобокс возражений нет, этот кусок компилится только при >включенном USE_DROPDOWNCOUNT
Непонятно утверждение о USE_DROPDOWNCOUNT. О каком исправлении
речь?
Это про исправление в WndProcCombo для фильтрации в OnChar?
Или я что-то пропустил?
Вроде бы в пределах кода ограниченного USE_DROPDOWNCOUNT сообщений об ошибках небыло
← →
SPeller © (2005-03-07 15:18) [12]Вообще, USE_DROPDOWNCOUNT делал я для того чтобы исправить баги с количеством итемов в выпадающем списке комбобоксов при включенных темах.
← →
ECM © (2005-03-07 16:10) [13][kol.pas]
По-моему в ASM-версию TControl.SetParent вкралась опечатка,
блок условной компиляции подключается неверно:
{$IFDEF INPACKAGE} - необходимо поменять знак условия ->{$IFNDEF INPACKAGE}
... в PAS-версии все в порядке...
← →
Paha (2005-03-07 19:09) [14]Дайте прямую ссылку на версию 2.06 а то в Инструментах не найти.
← →
Владимир Кладов (2005-03-07 19:45) [15]Новости 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 (вычисление контрольной суммы иногда
выполнялось неверно). См. новую версию в Инструментах.
← →
ECM © (2005-03-07 19:59) [16]>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 20:34) [17]по поводу граф. контролов: не стоит их класть на других родителей кроме самой формы, панели, паинт-бокса (когда он сам windowed) и групбокса (и то для групбокса с дочерними граф. контролами пришлось его полностью рисовать своим кодом). А так вообще результат очень хороший если на форме штук 50 контролов "заменить" их графическими аналогами, особенно заметно на чуть более слабых машинах. Заменить в кавычках потому что вся замена сводится к установке windowed в false в инспекторе объектов.
Если есть желающие довести до графической аналогии еще пару-тройку контролов, я за. Первоочередные кандидаты: bitbtn, combobox, imageshow. Еще предложения?
← →
Paha (2005-03-07 20:36) [18]>>ECM
Дап мне не нужны апдейты. Мне надо готовую полную версию KOL+MSK 2.07.
← →
Paha (2005-03-07 20:36) [19]>>ECM
Да мне не нужны апдейты. Мне надо готовую полную версию KOL+MSK 2.07.
← →
SPeller © (2005-03-07 21:19) [20]Paha (07.03.05 20:36) [19]
Да мне не нужны апдейты. Мне надо готовую полную версию KOL+MSK 2.07
А нету такой! Обновляй 2.0 до нужной.
← →
ECM © (2005-03-07 21:20) [21]>Мне надо готовую полную версию KOL+MSK 2.07.
Такой версии нет, и очевидно на сайте у Кладова не будет.
Так что, качай KOL v2.00 + MCK v2.00 + KOLAdd + Updater + update 2.00 to 2.07.
А никто и не обещал, что будет легко :)
← →
gent (2005-03-07 22:49) [22]В версии 2.06 ошибка в TBitmap.SetHandle (см. http://delphimaster.net/view/11-1109622535/ ) исправлена, но...
Дана программа:
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 и т.п. не помогают...
← →
gent (2005-03-07 22:50) [23]Предлагается добавить следующее свойство для 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 и/или обратно.
← →
thaddy (2005-03-07 23:17) [24]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.
← →
Paha (2005-03-07 23:32) [25]>> 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? Только вот где его искать?
← →
gent (2005-03-08 00:44) [26]> 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.
← →
gent (2005-03-08 00:48) [27]>Paha
>Можт нужен Updater? Только вот где его искать?
http://bonanzas.rinet.ru/r_tools.htm
← →
dimaxx © (2005-03-08 23:09) [28]Версия KOLadd - 2.04. А где обновление до 2.07? Ведь уже давно вижу в описаниях нововведений строчки о переносе из KOL в KOLadd. А когда можно увидеть эти переносы в KOLadd?
← →
fellix (2005-03-09 00:15) [29]> dimaxx
> Версия KOLadd - 2.04 ...
Это на bonanzas так написано, а реально качается последняя версия.
← →
Ал (2005-03-09 08:25) [30]Ребята, вы все, конечно, правильно тут рассуждаете. Только почему такая тишина по поводу того, что начиная с 1.92 KOL не идет на Pentium 200 и более ранних. Я об этом уже не раз писал. К сожалению, моей квалификации на поиск и исправление не хватит. Но авторы-то знают, где копать. Или от этого тихо отказались? Зря! Таких настольных систем и нотебуков еще немало. Особенно, как ни странно - там, у них! К тому же однозначно прослеживается тенденция - чем новее KOL, тем пухлее exe. А в начале говорили - не-е-е!
Очень хочется KOL 2, чтобы работал на старых Pentium!
С уважением.
← →
MTsv DN (2005-03-09 08:31) [31]В версии 2.06 и 2.07 не работает компонент BAPFileBrowser.
Ошибка: Unknown identifier PDirChange.
Что делать?
С Уважением MTsv DN
← →
ECM © (2005-03-09 09:03) [32]MTsv DN (09.03.05 08:31) [31]
В версии 2.06 и 2.07 не работает компонент BAPFileBrowser.
Ошибка: Unknown identifier PDirChange.
Что делать?
unit KOLBAPFileBrowser;
...
interface
uses Windows, Messages, KOL, KOLAdd;
← →
miek © (2005-03-09 09:49) [33]aL>начиная с 1.92 KOL не идет на Pentium 200 и более ранних
Идет, я недавно запускал на P-133 MMX. Было только несколько не работающих на старых процах версий около номера 1.98...
← →
Ал (2005-03-09 09:58) [34]Для miek
Если быть точным, то 1.93 уже не идет на P200, Win95.
Да и к чему такая точность! Хочется, чтобы 2.XX работала!
← →
ECM © (2005-03-09 11:04) [35]2Ал
Версия 1.93 в этом плане отличается от 1.92 (и это обсуждалось
в данной конференции) использованием новых команд процессора CMOVx. Естественно эти команды должны вызывать "жуткий" вылет
на процессорах ее не понимающих (типа P200).
Посмотри следующее:
1) Не задается ли где-нибудь по тексту $DEFINE USE_CMOV?
2) Включи отладочную информацию в опциях компилятора, затем
открой модуль kol.pas и поищи все строки где встречается
CMOV. Если код их использующий попадает в исполняемый
модуль, слева (на сером фоне) должна появляться синяя
точка, показывающая, что в данном месте можно ставить
breakpoint.
В твоем случае код с CMOV НЕ должен подключаться в исполняемый модуль!
← →
ECM © (2005-03-09 11:11) [36]З.Ы. 2Ал
Опция USE_CMOV появилась начиная с версии 1.97.
Поэтому версии 1.93-1.96 будут иметь этот эффект.
Правда только при условии, что используется Delphi6
или выше.
← →
azsd © (2005-03-09 12:05) [37]is it possible port the MCK to delphi 2005?
pure kol seems working fine in d2005.
← →
uuzh © (2005-03-09 18:29) [38]Интересный эффект для версии 2.07
Если назначить для editbox, label или PainBox windowed:=false
После чего во время выполнения поменять Caption/Text/Color - эффект "0", ничего не меняется.
← →
dimaxx © (2005-03-09 19:29) [39]2 fellix: Это в файле написано, а не на сайте. На сайте Владимир мог и забыть поменять.
← →
BelchonokH (2005-03-09 20:26) [40]Скачал себе версию 2.07, всё бы ничего, только появилась туча вопросов!
1) Скачал KOLadd, собрал MCK, открыл проект с ActonList, пытаюсь собрать, выдает: Undeclared identifier TKOLActionList и показывает на строку
TKOLActionList = PActionList;
TKOLAction = PAction;
в MCKFakeClasses.inc ну и конечно не собирается :( Как это поправить?
2) Не происходит событий OnMouseEnter/OnMouseLeave для Panel, как их можно вызвать? (GRAPCTL_HOTTRACK не помогает)
2 Владимир Кладов: с Shift и wParam для событий мыши СПАСИБО, глаза открыли!!!
Страницы: 1 2 вся ветка
Текущий архив: 2005.11.06;
Скачать: CL | DM;
Память: 0.64 MB
Время: 0.04 c