![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Версия 2.40 [Delphi, KOL/MCK, Windows]
Vladimir Kladov © (2006-10-14 12:25:00)Новости от 14 октября 2006 г.
Новости KOL и MCK (v2.40):
[*]KOL: добавлен символ NOT_USE_RICHEDIT, применим, если не
используются контролы rich edit. Отключает весь код, связанный с rich
edit, и ссылку в секции uses на модуль richedit, экономит около 60
байт кода.
[*]KOL: добавлен символ USE_GRAPHCTLS, следует использовать, если в
проекте используются графические контролы, иначе экономится более 100
байт в коде.
[*]KOL: теперь TControl.Caption представляется строкой (AnsiString в
обычном случае, WideString в случае UNICODE_CTRLS).
[*]KOL: в случае SMALLEST_CODE свойство Icon более не назначается
автоматически из ресурса MAINICON для формы/апплета при создании окна,
если не было назначено своим кодом. В противоположном случае (символ
SMALLEST_CODE не используется) теперь можно использовать символ
CUSTOM_APPICON, чтобы использовать собственное имя ресурса для главной
пиктограммы.
[*]KOL: комментарии к TTimer исправлены (давно уже используется не
окно Applet, а отдельное собственное окно).
[+]KOL: добавлена константа Infinity (бесконечное число, как 1/0, в
коде для Free Pascal появляться не будет).
[+]KOL: добавлена функция IsInfinity.
[-]KOL: исправление для версий Delphi 2, 3: удалена директива
{$EXTERNALSYM}, обеспечен вызов inherited для Init в TStrList,
TThread.
[*]KOL: в случае UNICODE_CTRLS функции MsgOK, MsgBox, ShowMsg так же
работают со строкой Unicode и используют соответствующие версии
API-функций.
[*]KOL: добавлен символ CRASH_DEBUG для интенсивного тестирования
обращения к неверной памяти: вся память объекта после деструктора
забивается байтами с шестнадцатеричным кодом $DD.
[+++]KOL: добавлен символ NOT_USE_AUTOFREE4CONTROL. Теперь большую
часть действий по уничтожению подчиненных объектов в деструкторе берет
на себя список fAutoFree, с этой опцией все возвращается к исходному
состоянию. Новый код короче на пару сотен байт.
[*]KOL: изменен метод TObj.Final: объекты, добавленные в список
fAutoFree, уничтожаются теперь в обратном порядке.
[+]KOL: добавлены методы TObj.RemoveFromAutoFree, RemoveFromAutoFreeEx.
[***]KOL: изменен порядок обработки сообщений с целью аккуратного
уничтожения отработавших форм, и корректного завершения приложения.
Изменения в WndFunc, TerminateExecution (asm-версия). Исправлено
неотрабатывание деструкторов форм при завершении приложения.
[+]KOL: добавлен символ BUTTON_DBLCLICK_AS_CLICK: при его наличии
двойной клик левой клавишей мыши на всех кнопках превращается в два
клика в любом случае.
[+]KOL: добавлен символ DEFAULT_CANCEL_BTN_EXCLUSIVE: при его наличии
DefaultBtn и CancelBtn взаимоисключают друг друга. По умолчанию теперь
можно назначать оба эти свойства для кнопки в true одновременно.
[+]KOL: добавлен символ NO_DEFAULT_BUTTON_BOLD: при его наличии кнопка
с DefaultBtn = true не выделяется своей утолщенной границей (не
назначается стиль BS_DEFPUSHBUTTON, но функциональность сохраняется).
[+]KOL: добавлен символ CLICK_DEFAULT_CANCEL_BTN_DIRECTLY: при его
наличии кнопка по умолчанию и кнопка отмены нажимаются не визуально
без передачи фокуса кнопке.
[-]KOL: asm-версии методов TControl.DoSetFocus, TControl.GetHasBorder,
TControl.SetVerticalAlign, TControl.DC2Canvas, TControl.SetTransparent
приведены в соответствие с Паскаль-версиями.
[-]KOL: исправления в методе TControl.IsMainWindow.
[-]KOL: прежняя обработка WM_ENDSESSION в процедуре WndProcForm
отключена (фактически выполняла немедленное завершение приложения
через вызов Halt), теперь этот код можно специально включить символом
ENDSESSION_HALT.
[-]KOL: исправлена процедура JustOneNotify (asm-версия).
[*] Минимальное приложение с пустой формой (без заголовка, со
значениями DefaultSize=true, DefaultPos=true - в случае MCK) занимает
при компиляции в Delphi5 (с заменой системных модулей, при включении
оптимизации и отключении отладочной информации, с символами
SMALLEST_CODE и NOT_USE_RICHEDIT) всего 10,5Кбайт.
[*] В MCK поддержка KOLCtrlWrapper отключена (перестала
функционировать), так что внешний вид формы на этапе разработки теперь
значительно меньше похож на то, что видно после запуска (то есть
теперь NOT_USE_KOLCTRLWRAPPER по умолчанию включен, обратно включать
не следует).
Прочие новости:
[*]написание Книги о KOL продвинулось еще немного - уже 170 страниц.
Новейшую версию пока брать на сайте kolnmck. Обновления - там же (сайт
bonanzas.rinet.ru пока что неисправен).
MTsv DN (2006-10-18 21:59:00) [61]> обновление ждёмс
Придется подождать чуть... Файл обновления "битый" пришел... Владимир, проверьте почту...
D[u]fa (2006-10-18 21:57:00) [62]И вот я опять пишу)) заметил странность с компонентами KOLmdvHeaderControl, KOLmdvTreeListEdit... значит ложим на форму их, настраиваем (KOLmdvHeaderControl добавляем столбцы и привязываем к KOLmdvTreeListEdit), запускаем прогу и просто выключаем.. если исп замену системных модулей, то выпадает дебагер на Тлист.ИндексОф... немного поковыряв я дошел до Детач прок... а если конкретнее то: в модуле KOLmdvTreeListEdit.pas
destructor TTLEData.Destroy;
begin
.....
// FHeader.DetachProc(HeaderControlWndProc); // вот тут и падает....
// PHeaderData(FHeader.CustomObj).TreeListEdit:= nil;
....
end;
А еще хотел сказать про Pmenu.Owner вроде как должен возвращать хозяина меню... я так понял что назначил как поап меню двум листвиевам и при появлении меню Owner будет равен тому листвиеву где щас меню... но почему то нет %) так и задумано?
Vladimir Kladov (2006-10-18 20:42:00) [63]я не заметил именно потому, что закрывать надо было крестиком, чтобы он проявился. Ну нашелся, и славно. Жаль, что раньше не заметил.
D[u]fa (2006-10-18 19:57:00) [64]глюк был именно в ХР, обновление ждёмс =)
Vladimir Kladov (2006-10-18 18:48:00) [65]Теперь вроде все в порядке. Даю обновление - фикс до 2.40c. UNICODE_CTRLS немного по-другому код в MCK генерируют (автоматом вызывают SetUnicode для всех контролов). Форма теперь заголовок в UniCode держит нормально.
Vladimir Kladov (2006-10-18 17:40:00) [66]как я нашел, PAS_VERSION ситуацию исправляет. Баг в IsMainWindow. Обновление пока не даю, надо еще с WndFunc разобраться, теперь с включением асм-версии она глючить начинает.
Vladimir Kladov (2006-10-18 16:37:00) [67]Ан нет, вру. Проверил на большом приложении, там работает, а сделал простенький тестовый пример - почему-то поломалось. Надо смотреть. Я точно знаю, что убрал Close в одном месте в WndProc(Control или Form), надо еще раз смотреть, видимо.
Vladimir Kladov (2006-10-18 16:15:00) [68]так вела себя windows9x/me, она у вас до сих пор еще стоит? Эта проблема была актуальна для самых сертезных приложений, и похоже связана была даже не с тем, что что-то не уничтожается, а с порядком обработки сообщений. Если это оно, то это баг Microsoft. Если вы нащли способ победить через Close, то это хорошо. Не мешало бы посмотреть все-таки отрабатывает ли OnDestroy для формы и аплета. У меня под XP все отрабатывает. Но это же XP. Она и так все закрывает правильно.
D[u]fa (2006-10-17 20:07:00) [69]вот и я сам так подумал =)
если дописать в дестрой формы Applet.Close то всё закрываеца норм, но наверно где собака всё же порылась...
vampir_infernal (2006-10-17 19:35:00) [70]Скорее всего, так быть не должно
D[u]fa (2006-10-17 19:07:00) [71]Странную весчь змаметил: кидаем на форму колапплет, запускаем, жмем крестик закрытия на форме, форма исчезла, а кнопка низу висит %) жмем по ней правой кнопкой, затем в меню закрыть и все - приложение закрылось...
это должно так быть?
D[u]fa (2006-10-17 17:40:00) [72]угу, давно пора =) мб в след. обновление пригодилось бы уже
Vladimir Kladov (2006-10-17 15:40:00) [73]так если вы знаете, где их искать (директивы), то зачем спрашиваете. Другое дело, что пора уже добавить что-то вроде
{$IFDEF EXTERNAL_DIEFINES}
{$I KOL_DEFINES.INC}
{$ENDIF}
прямо в начало KOL.PAS и KOLadd.pas, и тогда не напихивать все эти директивы в опции проекта, а спокойно положить в KOL_DEFINES.INC в папку проекта, и там редактировать. Самого уже достает.
[e]Bu$ter (2006-10-17 11:21:00) [74]
> ...
> Отправляя предыдущий пост, я полагал, что выражу мнение
> многих начинающих KOL-програмистов. По-видимому, я ошибся.
Да не ошибся ты, очень правильная идея!.
> Уважаемый Владимир Кладов. Я думаю, было бы не плохо написать
> список всех директив, используемых в KOL, с их описаниями,
> и выложить отдельно на сайте.
Именно так! А заодно, и что такое директивы, тоже где нибудь рядом написать :)
// далее идут откровения начинающего программиста
Я вот, например, уже как год (до того как в первый раз пришел на програмерский форум) всякие приблуды на KOL писАл потихоньку (разбирался методом тыка - CtrlSpace и смотрим что там...). А до этого ещё год "в слепую" на VCL, пока первую книгу прочитал...
Знай я, что существуют какие-то директивы, и что среди них есть USE_NAMES и KEY_PREVIEW, то тут на форуме было бы на несколько топиков и глупых вопросов в них меньше. А может и вообще - меня бы тут никогда и не было.
vampir_infernal (2006-10-17 07:21:00) [75]>> Если бы Вы перелопатили хотябы первые 10 килобайт, то вопрос бы отпал сам собой.
У меня проблем с директивами не было и нет. И к Вашему сведению, файл KOL.pas был в свое время полностью мною изучен. Отправляя предыдущий пост, я полагал, что выражу мнение многих начинающихKOL-програмистов. По-видимому, я ошибся.
За книгу спасибо.
P.S. Хотим как лучше, а получается...
L`Autour (2006-10-17 06:23:00) [76]Обновления не всегда проходят (было пару раз), а для меня например трафик по объективным важен (а когда скорость раньше была порезаной до 0.5кб/с еще важнее). Из архиваторов вместо zip, лучше 7zip.
bmouradov (2006-10-16 23:38:00) [77]Странный вопрос про zip, rar и 7z. Во-первых, не по теме. Во-вторых, те, кому важно, 400кб или 700, те не скачивают архив, а скачивают обновление. А кому неважно - тот спокойно скачает и 700. А zip намного распространеннее, т.к. встроен в Windows. Думаю, незачем портить жизнь многим начинающим программистам из-за тех немногих маститых кодеров, которым жалко скачать лишние 300Кб.
[e]Bu$ter (2006-10-16 22:59:00) [78]
> 7zip со сжатием PPMD ULTRA - 432. На мой взгляд лучше rar
> . Удобно заходить в архивы.
Это смотря чем заходить. FAR заходит всё что можно зайти... Хотя и признаю - местами RAR всё-таки удобне, но в целях популяризации я бы выбрал 7z.
P.S. Вот что интересно: тут же все программисты... а разницу между RAR'ом и 7z'ипом видят только в степени сжатия ;)
7z и бесплатный, и код у него открыт.На мой взгляд, выбор очевиден!
Vladimir Kladov (2006-10-16 20:02:00) [79]тьфу. Перепутал. По идее, это должна была быть 2.41, если бы не срочность исправить явный ляп в асм-версии с прозрачностью. По крайней мере, теперь можно спокойно готовить версию, срочных обновлений, надеюсь, больше не будет.
MTsv DN (2006-10-16 19:41:00) [80]
> 2.41b
2.40b 8) Уже обновился...