Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Версия 2.40 [Delphi, KOL/MCK, Windows]


Страницы:   1 2 3 4 5 6

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) Уже обновился...


Страницы:   1 2 3 4 5 6

Наверх

Титульная страница Поиск, карта сайта Написать письмо