-----------------------------
Новости от 14 февраля 2006 г.
GRushControls v0.35
[+] Добавлен символ условной компиляции USE_MEMSAVEMODE (включен по умолчанию). Думаю все-же не так накладно с точки зрения проиводительности создавать новые Paterns при наведении или нажатии мыши, а удалять сразу как они не будут нужны. В больших проектах может сильно уменьшить количество используемой памяти (и видео кстати тоже).
[*] Процедура BitmapAntialias4X переведена в MMX на асамблер (прирост ее скорости вдвое), что однако не сильно увеличило общую производительность при больших значениях XXX_BorderRoundWidth/Height. По видимому узкое место - GDI, поэтому добавлена функция BitmapAntialias2X (в том числе и с MMX) и по умолчанию теперь используется она (если конечно не отключен новый символ условной компиляции USE_2XAA_INSTEAD_OF_4XAA).
[-] Устранена небольшая утечка из-за отсутствия вызова RemoveProp.
[-] Несколько незначительных багов устранено.
MCK:
[*] Исправлена путаница с некоторыми свойствами. В частности ShadowOffset, так что если вдруг пропали надписи на кнопках - возможно в ShadowOffset установлено значение 255.
[-] Несколько незначительных багов устранено.
[+] Если Вам мало того что GRush стали кушать меньше память, бустрее "сглаживатся" и Вы скептически относитесь к скачиванию новой версии, то эта новость просто обязана поменять Ваше мнение: Для всех MCK керкал появились полноценные Design-time редакторы. Кто попробует - тот оценит!


-----------------------------
Новости от 6 февраля 2006 г.
GRushControls v0.34
[+] Добавлен новый компонент TKOLGRushImageCollection. У него нет "отражения" в KOLGRushControls.pas, а служит он для загрузки изображений. В связи с этим:
[!] Начиная с этой версии модули библиотеки tinyPictures входят в пакет GRushControls и являются его неотъемлемой частью.
[-] Еще раз "Испрвлена потенциальная ошибка, если присвоить All_GlyphBitmap := nil". В предидущей версии поспешил :)
[*] Немного уменшен размер *.dfm файлов, содержащих GRush контролы.
tinyJPGGIFBMP.pas:
[+] Добавлена процедура 
procedure tinyLoadJPGGIFBMPResource(var TargetBitmap: PBitMap; Inst : HInst; ResName : PChar; ResType : PChar);
tinyPNG.pas:
[+] Добавлена функция
function tinyLoadPNGResource(var TargetBitmap: PBitMap; Inst : HInst; ResName : PChar; ResType : PChar): DWORD;

Итак что дает этот TKOLGRushImageCollection, и как им пользоватся. Отражение для этого компонента есть нечто иное как PBitmap. В этот битмап с помощию библиотеки tinyPictures подгружается рисунок из ресурсов, используемый как All_GlyphBitmap для контролов, после чего он благополучно уничтожается. Т.е. не смотря на объявление GRushImageCollection1 в классе формы, доступ в runtime к этому объекту запрещен (к сожалению мной, а не компилятором :) ). Основное свойство - ImageType. По умолчанию оно равно None. Если его изменить, появится диалог открытия файла. При открытии графического файла его тип определится автаматически и занесется в ImageType, а содержимое файла будет полностью загружено в ОП (файла, а не картинки). Для освобождения файла нужно просто выбрать ImageType = None. Содержимое файла полностью хранится в *.dfm файле, и наличие оригинального не требуется.
Каждый контрол теперь имеет свойство imagecollection, связывающее его с определенным TKOLGRushImageCollection. Значения параметров All_GlyphWidth и All_GlyphHeight теперь выставляются по следующей схеме: если TKOLGRushControl.GRushStyle.GlyphWidth не равно нулю, то присваевается это значение, если оно равно нулю, но не равно нулю свойство TKOLGRushImageCollestion.ImageWidth, то присваевается это значение. Если же оба свойства равны нулю, то ничего не присвивается и следовательно All_GlyphWidth становится равным All_GlyphBitmap.Width. Для свойства Height все аналогично.


-----------------------------
Новости от 31 января 2006 г.
GRushControls v0.33
[-] "Устранена" псевдо-утечка рессурсов из-зв псевдо-неуничтожения таймера.
[*] Исправлена неверная работа свойств XXX_GlyphItemX, XXX_GlyphItemY, All_GlyphWidth, All_GlyphHeight.
[*] Для избежания конфликтов в именах многие используемые типы получили приставку GRush (TControlType --> TGRushControlType). В основном это внутрение типы, но есть и использевый как параметр для RecalcRects (TRects --> TGrushRects). Его придется переименовывать во всех объявлениях функций для OnRecalcRects.
[*] Разрядность практически всех свойств приведена к 32 (не думаю что с этим могут быть проблемы).
[+] Добавлены свойства:
All_Spacing : DWORD = растояние между текстом и рисунком (если оба присутствуют на элементе)
All_SplitterDotsCount : DWORD = количество серых точек на Splitter. Впрочем никто не мешает изменять его джля других контролов.
[-] Устранена утечка памяти и GDI ресурсов при уничтожении контрола.
[*] Испрвлена потенциальная ошибка, если присвоить All_GlyphBitmap := nil.
MCK:
[-] Убрана лишняя в некоторых случаях генерация байт-кода для Collapse.
[*] Исправлена генерация байт-кода All_ColorCheck и All_UpdateSpeed для CheckBox для Collapse.
[+] Добавлена генерация кода для свойства All_SplitterDotsCount (для Splitter соотвктственно)


-----------------------------
Новости от 6 января 2006 г.
GRushControls v0.32
[+] Добавлено множество символов условной компиляции для уменьшеня кода некоторых проектов. Причем эффект от отключения нескольких символов зачастую больше чем сумма эффектов (в байтах) от отключения каждого по отдельности. По умолчанию включен символ MOSTCOMPATIBILITY, автоматически включающий все остальные. Если хотите отключить какой-либо символ, нужно вначале отключить MOSTCOMPATIBILITY. 
[+] Генерация P-кода (байт кода) для системы Collapse обеспечена в полном объеме. Для использования этой возможности нужно объявить ", KOLGRushControls" в файле "CollapseUses.inc" и "GR0O_ = object( TGRushControl ) end;" в "CollapseObjects.inc" (именно такой выход я нашел из сложившейся ситуации - уменьшить имена не свойств, а имя Fake'а для объекта).
[+] Вставил описалова в совместимом с xhelpgen формате. В начале модуля просто каша получилась, без указаной тулзы не прочитать ниче. (Кстати чтобы получить русское описание нужно в ini файле прописать SpecialChar== вместо звездочки).
[+] Теперь свойства XXX_GlyphItemX, XXX_GlyphItemY, All_GlyphWidth, All_GlyphHeight работают так, как я задумывал. Вот небольшой лекбиз на эту тему: 

По умолчанию свойства All_GlyphWidth/All_GlyphHeight (при присвоении All_GlyphBitmap битмапа) устанавливаются равными All_GlyphBitmap.Width/All_GlyphBitmap.Height соответственно. Но это не одно и тоже! Свойства All_GlyphWidth/All_GlyphHeight нужы для формирования своеобразной матрици. Из All_GlyphBitmap как бы получается не одно изображение, а таблица иконок высотой и длиной согласно свойствам All_GlyphWidth/All_GlyphHeight. А для каждого состояния прорисовки определены еще два свойства - XXX_GlyphItemX, XXX_GlyphItemY. Они как раз и говорят о том, какой элемент из этой матрици выбрать. Для пристоты понимания вот пример: Имеем битмап с тремя иконками 32*32 вряд (т.е. сам битмап имеет размер 96*32). Загружаем его в качестве All_GlyphBitmap (при этом All_GlyphWidth=96 All_GlyphHeight=32), меняем All_GlyphWidth:=32, меняем Down_GlyphItemX:=1 Over_GlyphItemX:=2. Получаем эффект как в деме№88 (все бегом смотреть!). Все это нужно для одной очень интересной вещи: Делаем огромный битмап с иконками для всего приложения! Загружаем его и присваиваем All_GlyphBitmap по очереди для всех компонентов. При этом битмап не дублируется, а лиш увеличивается счетчик обращений. После этого, вызываем Free для этого бптмапа (что однако не приводит к его уничтожению, но позволяет уничтожить его после уничтожения последнего использующего его контрола автоматически!). Осталось только настроить координаты GlyphItemX/GlyphItemY для виртуальной матрици иконок! что упрощается write-only свойствами All_GlyphItemX/All_GlyphItemY.


-----------------------------
Новости от 11 декабря 2005 г.
GRushControls v0.30.1
[*] Исправлена утечка системных GDI ресурсов в Windows 98.


-----------------------------
Новости от 25 ноября 2005 г.
GRushControls v0.30
[*] Очень мне не нравятся дела в KOL с функцией DrawTransparent и я решил использовать системную TransparentBlt там, где это возможно.
[*] Наконец-то контролы стали чичтить за собой мусор при уничтожении. Теперь используется CustomObj вмест CustomData
[*] При изменении Caption больше не нужно вызывать SetAllNeedUpdate, теперь он вызывается автоматически
[*] Оптимизированы конструкторы, вынесен общий код
[*] Теперь используется OnPaint вместо перехвата WM_PAINT. Это будет экономить немного кода, если в проекте уже используется OnPaint. Если нет, то немного кода будет экономить директива GRUSH_OLD_PAINT


-----------------------------
Новости от 13 ноября 2005 г.
GRushControls v0.29
news v0.29 от 13.11.05
[*] Исправлены зеркала, особено для сплиттера и прогрессбара.
[-] Убрано ненужное свойство Vertical у ProgressBar. Его заменило свойство ProgressVertical.
[+] Событие OnProgressChange;
[+] События OnProgressChange, OnRecalcRects можно теперь в зеркале делать.


-----------------------------
Новости от 06 ноября 2005 г.
GRushControls v0.28
[+] В MCK часть добалена практически вся необходимая функциональность. Пока что без загрузки картинок и события OnRecalcRects.
[-] Вылетал со второй формой в PAS_VERSION. Поправлено как в KOL(v2.20), так и уменя (с более ранними версиями тоже будет работать).
[*] Функция GetCPUType перенесена в KOLGRushControls.pas и переименована в CPUisMMX. Остальные проверки убраны.
[-] Если MaxProgress у ProgressBar равен нулю, вылетал. Поправлено.
[+] Максимальное значение для Progress увеличено до большИх пределов.
[*] Приставка gsXXX для констант All_UpdateSpeed изменена на usXXX
[*] NewGRushPanel более не принемает второй параметр (Caption). Теперь его надо задавать как у обычной панели.


-----------------------------
Новости от 29 октября 2005 г.
GRushControls v0.27
[-] Оптимизация кода по размеру на 800 байт.
[+] Новое событие OnRecalcRects вызывается всякий раз когда GRush'и сами изменяют бордеры.
[*] Точка на RadioBox стала без острых углов, организовано как у CheckBox.
[*] В скринах 98 были не закрашеные точки бордера. Что-то с этом сделел, но не могу проверить. :(
[*] CommandActions поправил для правильного AutoSize для CheckBox и RadioBox.
[*] В MCK деме показал, как сделать то, что MTsv DN предложил насчет ProgressBar.


-----------------------------
Новости от 23 октября 2005 г.
GRushControls v0.26
[+] Добавлен компонент GRush Progress Bar.
[+] Добавлены соответствующие свойства у PGRushControl:
    All_DrawProgress : Boolean = Отрисовка циферок.
    All_DrawProgressRect : Boolean = рисование рамки для ProgressBar
    All_ProgressVertical : Boolean = вертикальный или горизонтальный.
[*] Подправлены функции: DeactivateSublings, DoPop, DoPush, DoEnter, DoExit, а также реакция на сообщения WM_TIMER, WM_PAINT, BM_SETCHECK, BM_GETCHECK и т.д.
[*] Если BorderWidth = 0 то он все равно лез. Исправлено.
[*] ShadowOffset был байт, стал смолинт. Может принимать отрицательные значения.


-----------------------------
Новости от 22 октября 2005 г.
GRushControls v0.25
[+] Первый релиз.