![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
версия 2.08 [Delphi, KOL/MCK, Windows]
Владимир Кладов © (2005-03-13 21:50:00)Новости от 13 марта 2005 года
Новости KOL и MCK (v2.08):
[*]KOL: небольшие изменения в процедурах DrawFormattedText и
DrawFormattedTextXP (улучшено вертикальное и горизонтальное
выравнивание, улучшено вычисление фокусного прямоугольника).
[*]KOL: небольшие измения в рисовании EditBox.
[*]MCK: опубликовано свойство Border для TKOLCheckBox и TKOLRadioBox
(используется в графических вариантах этих контролов при WordWrap=true
для точного размерещения маркера).
[+]KOL: добавлена глобальная переменная
DoNotDrawGraphCtlsUsingXPStyles, первоначально = false.
[*]KOL: ButtonActions.aAutoSizeY инициализировано числом 6 вместо 0,
по предложению Сергея Шишминцева (иначе слишком узкая кнопка
получалась с autosize).
[*]KOL: исправлена процедура AutoSizeProc, спасибо ECM за код и идею.
[+]KOL: слегка изменена процедура WndProc_ParentOfGraphicCtl, для
предотвращения превращения групбокса с графическими контролами на нем
в кнопку по нажатию, когда опция GRAPHCTL_XPSTYLES включена, но
манифест не используется. Исправлено рисование GroupBox с графическими
контролами так же исправлено (перечеркнутый заголовок). Спасибо
BelchonokH за сообщения об этих неприятностях.
[-]KOL: WordWrap исправлен для обычной (windowed) метки.
Прочие новости:
[-]поправлены ссылкина retro-откаты версий на сайте.
rofl (2005-05-24 00:07:00) [1]if i use kol 2.0.8 and assign flat to a bitbtn, it is not highlighted when the mouse is on the button.
with kol 2.0, which i used earlier, it worked.
any ideas ?
SPeller (2005-05-08 10:58:00) [2]ECM © (07.05.05 21:05) [21]
Ага - oн вынесен в KOLadd.pas
Странно.... Небыло его у меня. Версия 2.04. Скачал с сайта такую же версию - там есть.. Я обновлял версию 2.0 до 2.08, koladd не скачивал. Обновилось всё нормально, но koladd был размером всего 32 КБ вместо 94 на сайте. Чудеса... )
ECM (2005-05-07 21:05:00) [3]...или я что-то пропустил?
Ага - oн вынесен в KOLadd.pas
SPeller (2005-05-07 18:07:00) [4]А куда делся TListEx? Удалили за ненадобностью, или я что-то пропустил?
Боб (2005-05-04 07:27:00) [5]Всем СПАСИБО !
dimaxx (2005-03-20 14:32:00) [6]Попробовал...
Свойства
ShowTooltip=True
NoTextLabels=True
Задание в runtime заголовка через TBButtonText вызывает его отображение как заголовка (справа от иконки). Короче игнорируется NoTextLabels. Подсказок нет. Если задавать в designtime, то все в порядке - заголовков нет, а подсказки есть. :-)
dimaxx (2005-03-20 14:25:00) [7]Не работает TBSetTooltips.
Попробую через заголовок - действительно, удобно.
Владимир Кладов (2005-03-20 13:27:00) [8]Подпись у кнопки должна быть, хотя бы ' ' (пробел). Так устроен toolbar в KOL. Вообще, я почти всегда использую вариант без надписей, но ShowTooltips = true - тогда сами подписи и становятся тултипами. Так удобно еще и потому, что включить надписи можно изменив одно свойство, и те же тултипы становятся теперь надписями.
dimaxx (2005-03-20 12:27:00) [9]Разом установить размер всех кнопок на заданные величины можно так:
Toolbar1.Perform(TB_SETBUTTONSIZE,0,MakeLParam(Width,Height));
Это сообщение отстутствует в списке сообщений тулбара, но присутствует в поиске.
dimaxx (2005-03-20 12:12:00) [10]Ну с именованием кнопок понятно. А как мне получить к ним доступ из runtime? Ведь этих имен TBOpen, TBClose, TBEdit не видно, а основываться на их позициях на тулбаре не очень удобно. Ведь я могу в дальнейшем добавить/удалить кнопки и их номера изменятся. Придется все номера в коде переписывать. Ведь свойства типа Index y них нет. Просто мне надо в runtime динамически задавать подсказки.
Еще один момент с тулбаром в режиме "без подписей" (одни иконки): при открытии проекта первая кнопка все равно становится разделителем, а разделитель, расположенный через несколько кнопок, теряет свою "разделительность". Например, я задаю кнопки (схематично) так: ||||-||||-|||-||||-||, а у свойства Buttons это выглядит всегда так: -|||||-||||-|||||-|| независимо от того, только что я создал кнопки или открыл уже существующий проект. Может дело в ошибке формирования этой строки? Может из-за нее первая кнопка становится разделителем?
С пунктами меню примерно та же ситуация, что и с кнопками тулбара. ItemIndex доступен только в designtime. Но это можно обойти, поэтому особой проблемы не составляет.Только непонятно назначение свойства MenuID. Если его можно считать тем самым ItemIndex'ом, то не совсем понятно. У меня, к примеру, ItemIndex пункта 5, а в runtime MenuID=4096. В тоже время, при назначении событию OnClick в процедуру передается Item. Так вот как раз туда передается 5, а не 4096. Прошу объяснить смысл MenuID и для чего он нужен в таком случае?
Владимир Кладов (2005-03-20 10:33:00) [11]мне все равно какие размеры у кнопок тулбара. Какие система считает нужными, меня устраивает, лишь бы картинки/надписи влазили. Если вам это не все равно, меняейте в ран-тайм - если знаете как (а мне и узнавать как это делается - без надобности).
От наименования кнопок можно вообще отказаться, если не пользуетесь. Ни вижу никакого смысла в названиях toolbar1_1 и т.п. Если я называю кнопки, то со смыслом: TBOpen, TBClose, TBEdit...
dimaxx (2005-03-20 00:25:00) [12]1) C тулбаром борюсь уже давно. Мне нужно, чтобы кнопки создавались размером 24х24. Ставлю в инспекторе TBButtonWidth (а также Min и Max) равным 24. Создаю кнопки, вешаю иконки (16х16) и кнопки все становятся 27х22! А менять программно можно только ширину! Да и нафиг этот геморр - у всех кнопок менять в runtime.
2) При использовании двух и более тулбаров генерятся константы с одними и теми же именами. Выход - при генерации имен отталкиваться от имени тулбара + "_"+ номер. Например: TOOLBAR1_1, TOOLBAR1_2 и т.д.
azsd (2005-03-19 11:40:00) [13]mckCtrls.pas
FixFlatXP and {(Align in [caLeft, caRight]) and} (tboFlat in Options) then
S := 'tboTextRight';
that has problem when if fixflatxp=true,tboTextbottom=true,
the runing program will get an Textright toolbar.
patched it to:
FixFlatXP and not(tboTextBottom in Options) and {(Align in [caLeft, caRight]) and} (tboFlat in Options) then
S := 'tboTextRight';
BelchonokH (2005-03-15 14:41:00) [14]Правда ко всему могу добавить, что эта самая форма с кучей контролов перестала тормозить систему при перетаскивании и перерисовывается быстро и без проблем! Это просто отлично!
2 ECM
А с какой надеждой я вчера стёр все свои наработки и поставил 2.08, и пришлось Actions по новой прописывать :(
ECM (2005-03-15 11:05:00) [15]Посмотрел v2.08 - похоже ситуация с TKOLAction(List)
оказалась не исправленной до конца:
- Отсутствует обьявление TKOLAction(List) = PControl в KOLAdd.pas.
Причем если обновляться с версии 2.00 до 2.08 кумулятивно, то в файл MCKfakeClasses.inc не обновляется - внем остается это объявление (при этом проекты с KOLAdd в uses собираются без ошибок). Если обновляться с 2.07 до 2.08 - в MCKfakeClasses.inc
эти объявления остаются закомментироваными.
Т.е. Необходимо:
1) внести
Владимир Кладов (10.03.05 16:34) [49]
правильнее с TAction так:
{$IFDEF KOL_MCK}
type
TKOLAction = PAction;
TKOLActionList = PActionList;
{$ENDIF}
- прямо в KOLadd;
2) Внести в обновление изменение MCKfakeClasses.inc
BelchonokH (2005-03-15 06:13:00) [16]Дико извиняюсь, только что дошло, если DoNotDrawGraphCtlsUsingXPStyles:=true; то зачем мне тогда GRAPHCTL_XPSTYLES, вечером попробую исправить...
BelchonokH (2005-03-14 22:04:00) [17]Возможно я со своими скинами Вам уже надоел, но когда на моей форме для настройки опций больше 50 компонентов и она тормозит при перемещении, то деваться некуда! В общем очередной глюк обнаружился!
Использую GRAPHCTL_XPSTYLES;GRAPHCTL_HOTTRACK в опциях прожекта, далее при TForm1.KOLForm1FormCreate пишу
DoNotDrawGraphCtlsUsingXPStyles:=true;
В итоге, с граф. кнопок пропадают надписи, а поведение граф. editbox'а становится очень странным, при Енабле := фалсе; последняя буква половинится, а при щелчке на доступном граф. едитбоксе текст в нём прыгает... :(
ECM (2005-03-14 17:50:00) [18]З.Ы. В проводнике "правая мышь"->"Свойства"->"Совместимость"->"Отключить визуальное оформление"
ECM (2005-03-14 17:47:00) [19]Владимир Кладов (14.03.05 15:07) [4]
Т.е. все что надо это раскомментарить R1 := R в TControl.GraphicButtonDraw
Непонятно что за GraphicButtonDraw? наверное GraphicButtonPaint?
Я вроде бы засылал исправление про GraphicButtonPaint связанное с этим:
{$IF NDEF GRAPHCTL_XPSTYLES} R1 := R; {$ENDIF}
Просто R1 определяется только при GRAPHCTL_XPSTYLES. Скобки вобщем-то можно и выбросить...
>Сегодня на работе попробовал под 2К,
Совет: необязательно пробовать под W2K - я это увидел на ХР
(выключив визальное оформление в свойствах exe-шника)
Владимир Кладов (2005-03-14 15:07:00) [20]действительно на сайте куда-то не туда положил, рука дрогнула :)
Сейчас переложу, но вот бедствие с граф. контролами (опять не то). Сегодня на работе попробовал под 2К, а не рисуется, если стиль GRAPHCTL_XPSTYLES влючен. Т.е. все что надо это раскомментарить R1 := R в TControl.GraphicButtonDraw, но я не совсем пойму зачем оно вообще в скобках. Сейчас еще на ХРшке посмотрю, и сегодня положу срочное обновление ближе к вечеру.