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 пока что неисправен).


Vedun   (2006-10-22 22:32:00) [21]

У меня есть Linux Mandrake 10.1 и ASP 10. Так что тоже буду по возможности помогать в тестировании.


Vladimir Kladov   (2006-10-22 14:25:00) [22]

Спасибо, поправим. Ну, линк то я оставил, мышкой хлопнуть не проблема.


MTsv DN   (2006-10-22 13:02:00) [23]

Опечатка на http://kol.thaddy.co.uk/e_downloads.htm:
MCK    v2. 30    21-Oct-2006    722K  


MTsv DN   (2006-10-22 12:57:00) [24]


> да, кстати, я еще никогда не делал redirection. Странная
> вещь, но ослик переходит автоматом, а опера почему-то не
> хочет. Тут не специалистов по javascript? что я неправильно
> написал:
>
> <body ............
>  onload='document.URL=" http://kol.thaddy.co.uk";document.
> refresh();'>


А почему именно на Яве... Некоторые ЯваСкрипты отключают. Может такой код подойдет:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="refresh" content="1;url= http://kol.thaddy.co.uk">
<title>Redirect...</title>
</head>

<body>
</body>
</html>


ANTPro   (2006-10-22 11:24:00) [25]

> [84] Vladimir Kladov   (22.10.06 09:45)
> Рано еще. Можно пока протестировать то, что сделал Gandalf
> (у него Qt).

А где можно найти архивчик?


Vladimir Kladov   (2006-10-22 11:17:00) [26]

да, кстати, я еще никогда не делал redirection. Странная вещь, но ослик переходит автоматом, а опера почему-то не хочет. Тут не специалистов по javascript? что я неправильно написал:

<body ............
 onload='document.URL=" http://kol.thaddy.co.uk";document.refresh();'>


Vladimir Kladov   (2006-10-22 11:14:00) [27]

давно пора было исправить на kolnmck, сделаю постепенно. У меня там еще несколько линков на mastak осталось. Вообще можно ожидать много битых ссылок. Например, архивы от Тэдди я решил не дублировать, потом перелинкую их на его файлы - сервер-то один.


D[u]fa   (2006-10-22 10:14:00) [28]

Сайтец работает вродь норм, пока обратил внимание только на ссылки типа " Наиболее свежая версия KOL и MCK в одном архиве с сайта kol.mastak.ru. ", выдает явно чето не то


Vladimir Kladov   (2006-10-22 09:45:00) [29]

Рано еще. Можно пока протестировать то, что сделал Gandalf (у него Qt).


vampir_infernal   (2006-10-22 07:53:00) [30]

Если что, могу помочь с тестированием кода в линукс (Slackware 10.2)


Vladimir Kladov   (2006-10-22 01:47:00) [31]

Все, практически закачал. Новый адрес: http://kol.thaddy.co.uk. Меняйте ссылки (здесь, на kolnmck и на других сайтах тоже). Я попробую как-то наладить на старом сайте хотя бы обявление, что переехал.


ANTPro   (2006-10-21 22:00:00) [32]

Vladimir Kladov   (21.10.06 21:44) [80]
мультиплатформенность

Наконец-то :)

Vladimir Kladov   (21.10.06 21:44) [80]
Первый на очереди - Linux

У меня есть:
KNOPPIX V4.0.2CD-2005-09-23-EN, SuSE Linux-9.3-LiveDVD-i386-1 и какой-то Linux Compact
Могу протестировать если что...
Правда только после покупки нового винта (через неделю) ...

Vladimir Kladov   (21.10.06 21:44) [80]
Ну, можно протестировать, как грузится первая страница.

Без проблем :)


Vladimir Kladov   (2006-10-21 21:44:00) [33]

я не зря оттягивал переход к версии 2.41 от 2.40, подставляя буковки. Со следующей версии грядут серьезные изменения, в большом количестве. Разумеется, максимальная совместимость с прежними проектами почти гарантируется. Но в некоторых случаях придется кое-что менять. Например, FindFirstFile использовать все еще можно будет, но сам KOL будет использовать свои Find_First, Find_Next и Find_Close, соответственно, поломается проект, использующий OnItem у TDirList (решается просто, пересозданием события и копированием в него старого кода). Т.е. это не фатально. Асм-версия почти целиком уходит в отдельный файл KOL_ASM.inc. Иначе просто некуда больше увеличивать код (если помните, проблема с ограничением 65535 строк, после чего дебугер в дельфях теряет ориентацию). Так удается сократить KOL.PAS до 50000 строк (и около 16000 строк - асм-версия). И можно ехать дальше. А дальше у меня в плане - мультиплатформенность. Пока я не начал как следует ковыряться, я говорить особенно не хотел. Теперь думаю, что это - реально. Первый на очереди - Linux. В качестве GUI беру GTK+, версию для Win32 я уже скачал и поставил, (если кто хочет повторить, отсюда: http://www.gimp.org/~tml/gimp/win32/downloads.html, пункт 2, а не 1 - если кто вроде меня не очень понимает, что это такое). Заголовки я вытянул из кайликса, для Libc, для gtk - взял на сайте ftp.freepascal.org, надеюсь, этого хватит. Если кто-то потом захочет Qt, а не Gtk, то это тоже реализуемо - через IFDEF'ы (код для GTK выносится в отдельный inc-файл, вместо него можно будет и Qt подставить, да хоть чистый XLib или Motif или Xt). А пока заливаю сайт свой kol.thaddy.co.uk, он мне дает место (много места, спасибо!). Там и будет мой сайт теперь жить. Вот только заливается немного медленно, 4-5К в секунду, это все, что может мой диал-ап выжать. Так что в гости ходить пока рановато. Ну, можно протестировать, как грузится первая страница.


AndreyRus   (2006-10-21 15:30:00) [34]


> На второй форме, из-за строчки:Button1.Parent := ComboBox1;
>  форма не закрывается... Если через Alt+F4, то вылет проги,
>  а если через "х", то завис...
<
> > Button1.Parent.RemoveFromAutoFree( Button1 )Спасибо...
>  То что надо...

/I>
Раз такое дело, то может лучше автоматизировать, чем знать об этом. Например создать в KOL функцию - SetParent, содержащую данный код, а Parent по возможности инкапсулировать.


MTsv DN   (2006-10-20 19:52:00) [35]

> Button1.Parent.RemoveFromAutoFree( Button1 )
Спасибо... То что надо...


Vladimir Kladov   (2006-10-20 18:41:00) [36]

procedure TForm1.Button1Click(Sender: PObj);
begin
NewForm2(Form2, Applet);
Form2.Form.ShowModal;
Form2.Form.Free;
Form2.Form := nil;
end;


Когда выполняется Form2.Form.Free, то автоматом дестроится и Form2, т.к. она привязана к своей Form по Add2AutoFree. Получается, что вы меняете память, которая вам уже не принадлежит. Для зануления надо все-таки Form2 := nil.

Ну, это так, к слову. Теперь, с 2.40, если вы Parent присвоили, родителю делается еще и вызов Add2AutoFree. Получается, что ваш button 2 раза прикреплен к авто-фри (еще и к форме, к которой он был прикреплен изначально). Надо сделать автоматический вызов Button1.Parent.RemoveFromAutoFree( Button1 ), а пока вы сами такой добавьте, перед сменой родителя (RemoveFromAutoFree ничего не делает, если там уже ничего нет, так что если потом забудете убрать, ничего страшного). Или самое простое: возврат к прежнему способу NOT_USE_AUTOFREE4CONTROLS.

По этой же причине могут ломаться старые контролы, сделанные методом вложения в наследник от TObj. Самое простое - поправить такой компонент, вызвав в его NewXXXX для "вложенного" TControl такое же открепление от parent'а (он должен освобождаться именно при уничтожении самого TObj, в который вложен автоосвобождаемый TControl).

Что-то мой сайт не ремонтируется. Пойду к Тэдди, он мне место дает, сейчас протестирую, и за выходные заливать начну потихоньку. Спасибо!


D[u]fa   (2006-10-19 22:19:00) [37]

ога, прям нашествие багов попёрело %)


Vladimyr   (2006-10-19 20:14:00) [38]

что-то весь КОЛ колбасит :)


D[u]fa   (2006-10-19 18:48:00) [39]

Vladimir Kladov, а про овнера меню и странное выпадание ошибки в Плисте, смотрели?


MTsv DN   (2006-10-19 18:34:00) [40]

> Если через Alt+F4, то вылет проги, а если через "х", то завис...
Это если трейссить в Дельфи, а если просто запустить, то ошибка при повторном вызове...


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

Наверх

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