понедельник, 31 декабря 2007 г.

C Новым годом, друзья! Happy New Year, my friends!

C новым годом!



Команда QIP.ru желает Вам счастливого Нового года.

Пусть Ваши самые светлые мечты претворяться в жизнь и Вы окунетесь в море общения, радости и веселья.

четверг, 27 декабря 2007 г.

Ну вот наконец и первый пре-релиз. First pre-release at last

Итак, господа, Дед Мороз сегодня вас обрадовал как выпуском беты3, так и моим скин-движком;)
Скачать вы можете отсюда. Документация по созданию скина здесь.

Установка плагина:
Распакуйте архив в папку Plugins\SkinEngine\ и перезапустите Qip Infium. Минимальная рекоммендованная версия Infium - Qip Infium 9000 beta 3, на более ранних версиях движок может работать еще нестабильнее :о)

Это пре-релиз движка, возможны ошибки, вылеты инфиума и прочие нехорошие вещи, так что ставьте и тестируйте на свой страх и риск.
Сразу предупреждаю, что движок кушает много памяти и процессора, так что если у вас слабый компьютер, то лучше не мучайте его:) В последующих релизах я, естественно, займусь оптимизацией, вылизыванием всех узких и бажных мест, но пока вот что имеем, то и даем ^_^
Внимание! По умолчанию закладки, контейнеры и меню отключены, и не просто так - все эти 3 элемента дают нехиленьких тормозов, потянуть которые смогут лишь мощные компьютеры. Меню я вообще оставил в движке лишь для того, чтобы вы могли себе представить, как оно вообще будет выглядеть ^_^.
Чтобы уменьшить тормоза, отключайте ненужные вам элементы в настройках. Например, отключение скроллбаров и табличных заголовков в Vista настоятельно рекоммендуется.
Все изменения вступают в силу после перезагрузки инфиума.
Если планируется носить плагин на внешнем носителе, то прописывайте путь к скину относительно корневой папки Qip.


Поскольку движок еще на стадии ранней альфы, то я буду крайне благодарен вам за нахождение багов и (желательно) их причин/последовательность действий для воспроизведения. Прежде, чем описыват ошибку, убедитесь, что это не ошибка скина и/или это так и задумано (о чем сказано в документации), попробуйте локализовать виновника, попеременно отключая каждый элемент. Надеюсь, что вы поможете мне сделать движок лучше, а Qip - лучшим:)


Информация для разработчиков плагинов на делфи:
Во избежание конфликтов с памятью настоятельно рекоммендуется перекомпилировать свои проекты, подключив этот модуль. Так же, старайтесь использовать только стандартные элементы интерфейса, все вариации контролов я предугадать не могу.
Информация для тех, кто создает диалоги на WinAPI:
Старайтесь по возможности располагать элементы так, чтобы при скиннинге не исчезали важные контролы. Поскольку в WinAPI нельзя так гибко назначить родителя, как в VCL, то выстраивайте ваши контролы в том Z-ordere, чтобы контролы не перекрывали другие контролы. В частности, GROUPBOX лучше располагать в ресурсе первым.


Благодарности:
Выражаю свою бесконечную благодарность этим людям:
Константин Копачинский (aka faZeful, www.fazeful.ru) - за прекрасный скин, помощь в оформлении и море полезных советов и замечаний
Костантин Благин (aka Lazy_elf) - за самый жесткий тестинг, какой я только видел:)
Николай Cмолин (aka SnugForce) - за помощь в тестировании и поисках решения
Дмитрий Андрианков (aka Evil's_Interrupt) - за моральную поддержку:)

команде DelphiKingdom.com:
Андрей Елисеев (aka DRON) - за море архиполезнейших советов, код и все пинки.
Антон Григорьев - за пинки:)
Юрий Спектор (aka Ins) - за поддержку и код
Ее Величество, Елена Филиппова - за замечательный сайт :о)

Testing
Андрей Бондарец aka _SLIM_
Сергей Прончихин aka FinMan
Всеволод Белан aka VegasRed
Андрей Качалов aka ViolentOr
Андрей Мошкутело aka AndrewBonds©
Павел Омелянчук aka d0dger-911
DreamWalker

Спасибо за помощь в вылавливании багов и указании недостатков

отдельное спасибо уважаемым мной разработчикам миранды
nullbie
persei

А так же жителям форума forrum.ru за душевную атмосферу:)

Special thanks to
James Brown (CoolSB library http://www.codeproject.com/dialog/coolscroll.asp)
Graphics32 Team (www.graphics32.org)

Всем, кого забыл назвать просьба сильно не пинать:о) Всем огромное спасибо!

вторник, 18 декабря 2007 г.

Похоже, подарок к Новому Году все-таки будет :о) Looks like the present to the New Year shall come)

Итак, проект вошел в стадию активного тестирования. Многие баги исправлены, сейчас вычищаются все недосмотры и ошибки. Благодаря тестерам я уничтожил уже много-много багов. Проект приближается к стадии пре-релиза, радуйтесь:)

воскресенье, 9 декабря 2007 г.

Как скоро? How soon?

В последнее время в аське, на конференциях и даже в реале (:)) меня все чаще спрашивают "когда же будет релиз?".
Не волнуйтесь, релиз близится ;). Сейчас движок уже вошел в стадию промежуточного тестирования, я активно подчищаю баги и недосмотры. Пока, к сожалению, полностью смогут насладиться движком только обладатели мощных компьютеров с большим объемом оперативной памяти :) и (пока, естественно это все пока) те, кто пользуется Win2000 и WinXP. У пользователей Vista наблюдаются тормоза и пока не совсем понятно почему. Может быть даже успею разобраться почему. Остальным прийдется наслаждаться не полностью:) Я сделал движок настраивамым так, чтобы можно было отключать скиннинг группы элементов. В общем, работа кипит, думаю к новому году вы успеете получить подарок в виде пре-релиза :);)

пятница, 30 ноября 2007 г.

Главный Баг побежден! The Main Bug Defeated!

Итак, после длительных мучений, бессонных ночей и адской отладки я таки смог победить основную багу, которая мешала мне сделать движок обычным плагином.
Теперь движок можно будет использовать на любых билдах инфиума, он независим от версии ядра. Ура, товарищи!
Теперь осталось совсем немного. Отшлифовать и исправить недостатки имеющеегося, решить пару проблемных вопросов и альфа-релиз движка будет выпущен.


З.Ы. Огромная благодарность DRON'у за помощь. Без него у меня ничего бы не получилось. Еще спасибо persei за код и nullbie за моральную поддержку:) Спасибо Lazy_elf и NTVisigoth за то что терпят меня:) Господа, как я счастлив!:)

воскресенье, 18 ноября 2007 г.

Битва продолжается. The Return of the Evil Bug :о)

Работы по внедрению движка как плагина продолжаются. Как оно всегда бывает, на тестовой программе все выполняется нормально, а в боевых условиях начинают выползать баги невесть откуда. Вот и сейчас я столкнулся как минимум с тремя багами, которые пытаюсь вовсю побороть. Часть из них - мои, часть порождены библиотекой CoolSB, часть - самой системой... Ну чтож, ничто не идеально:) По крайне мере, большинство своих багов и багов CoolSB я локализовал и пытаюсь исправить. Приятная новость заключается в том, что скорее всего в ядро вкомпиливать код не прийдется, движок сможет функционировать наравне с обычными плагинами в рамках SDK. По крайней мере, я приложу к этому все усилия.

Информация разработчикам плагинов на делфи:
Готовьтесь к тому, что вам прийдется перекомпилировать ваши детища, позже я выложу модуль (здесь и на форуме), который нужно будет подключить к проекту, чтобы плагин корректно работал и не выдавал багов при взаимодействии с движком.

Информация всем разрабочикам плагинов:
Кроме того, после выхода альфы я так же выложу модуль с SkinSDK, и вы сможете управлять процессом скиннинга - перерисовывать свои собственные/нестандартные компененты/контролы; Убирать скиннинг со своих контролов/окон. И все это будет возможно сделать вызовом 5-6 функций, наподобие в MS Themes API.

З.Ы. Работа близится к завершению, это не может не радовать :о)

четверг, 1 ноября 2007 г.

Прийдется немного подождать

В общем, код к движку я прикрутил. Удивительно, но даже без особый встрясок и изменения архитектуры в целом. Рисуется довольно шустро. За эту неделю скиннинг форм подвергся очень жесткому тестированию в самых извращенских режимах и надо сказать, скиннинг ведет себя достойно:) Однако, до полного соответсвия идеалу еще далеко. Вчера обнаружил неприятный баг, который немного оттягивает мне сроки... Если ширина бордеров будет слишком широкой, то они (бордеры) "съедают" часть клиентской области. Прийдется еще поколдовать немного, чтобы избавиться...
Думаю, до полного внедрения окон в движок осталось времени как раз до воскресенья. Следующую неделю я посвящу скиннингу внутрених компонентов квипа и полировке кое чего (в частности, попытаюсь уменьшить тормоза при отрисовке пейджконтрола). Через неделю начну внедрять в квип и проводить тестирование. Готовьтесь, релиз близится:о)

среда, 24 октября 2007 г.

C днем рождения

Сегодня у создателя нашей любимой программы день рождения.
INF, от всей души поздравляю тебя с этим праздником. Пусть в этот светлый день тебе будет радостно, пусть у тебя будет много счастья, много здоровья, денег, славы и девочек:) Пусть все плохое забудется и исчезнет, а хорошее только приумножится. В общем, пусть сбудется все, чего бы пожелал сам;)

C днем рождения, INFПоздравляю;)

вторник, 23 октября 2007 г.

Близится к завершению(Almost Done)

Дабы вы не подумали, что работа стоит, показываю промежуточный отчет:)
Сейчас почти завершил работы над delphi-окнами, нужно только прикрутить к движку... По ходу работы обнаружил несколько неприятных багов и срочно их начал исправлять, так что работа кипит и сдаваться я еще не собираюсь:) Сейчас нужно немного изменить архитектуру, чтобы увеличить скорость отрисовки, думаю еще неделю я буду этим заниматься, но вообще, с окнами я, кажется, наконец-то разобрался и предусмотрел многие вещи.
Смотрим скриншоты (естественно, это рабочий скин, не обращайте внимания на кривость:) - скин по умолчанию так же уже почти завершен и будет очень красивым).

Do not think my work is freezed:) Have almost done my work under delphi forms, but still needs some work over WinAPI windows and include that code into engine. During the work i have found some terrible bugs, so had to cure them too, what freezes my work a lot... Right now i should correct engine architect to enlarge drawing speed, so for the next week i will do it. But generally I think i've done windows skinning.

Было(Before):



Стало(After):




Ну и немного видео (прошу прощения за тормоза, компьютер пора апгрейдить:)).
Here is some video of form skinning in action.(Sorry for freezes, my computer is pretty old:o))

воскресенье, 16 сентября 2007 г.

После долгого перерыва.

Пытался долго, муторно и почти безрезультатно. Все больше и больше убеждаюсь, что GUI в винде писали абсолютные извращенцы:) Пока сделал не так, как хотелось, иконки по хорошему выдернуть не удалось. Но больше тянуть не могу. Итак, что получилось - смотрите.









З.Ы. Да простят меня скинмейкеры, но почему то мои меню упорно не хотят становиться произвольной формы, думаю на меня не сильно разозлятся, если пока меню будут квадратными... Сейчас мой моск практически не соображает, будем бороться :о) Завтра еще погоняю, потестирую и возьмусь наконец за формы. Самый большой геморрой...

воскресенье, 2 сентября 2007 г.

Промежуточный отчет о меню

Битва с меню продолжается, но чтобы вы меня не теряли, выкладываю то, что получается:) Осталось победить самоотрисовывающиеся пункты меню, суметь вычленить иконки в пунктах - и меню будет побеждено:) Сейчас я изучаю логи, занимаюсь реверсингом недокументированных сообщений... Жуткий геморрой, доложу я вам. Но я должен его победить)
Смотрим скрины.
контекстное меню в броузере:

системные меню:


контекстное меню проводника:


Когда доделаю естественно выложу более адекватные скрины:) Есть мысль добавить к меню еще и эффект прозрачности, но это позже:)

четверг, 23 августа 2007 г.

Итак, ListBox более или менее готов

Немного поколдовав, я добился более или менее приемлемой отрисовки. Компонент достаточно противный и своевольный, так что в следующих релизах нужно будет еще отрихтовать его, но пока хватит и этого. Очередная порция скриншотов:






З.Ы. Теперь я возьмусь за меню, а позже за окна. Ну и внутренние компоненты Qip конечно же. Скорей всего я опять исчезну :о)

среда, 22 августа 2007 г.

Ура ура ура

Пришлось изрядно попотеть, чтобы прикрутить CoolSB к моему проекту, но с радостью заявляю - теперь скроллбары точно не проблема :о) Библиотека действительно потрясающая. Теперь работа должна пойти гораздо быстрее. Сегодня я даже сумел заскинить listview :o) (ну не совсем так, как хотел, но зато скроллбары поменялись). Ура, ура, ура. Сегодня у меня праздник:)
Смотрим скриншоты (сравнивать уж не буду, лениво:))





З.Ы. Потихоньку, потихоньку, но приближаюсь к первому релизу. Это не может не радовать:о)

вторник, 21 августа 2007 г.

Похоже, релиз слегка оттянется

Опять эти скроллбары мне всю душу вытрясли... На этот раз с листбоксом... В общем-то, листбокс теперь скинится, но с перебоями. Хочу попробовать заюзать CoolSB, может и получится чего.
Релиз видимо затянется еще на некоторое время, потому что делать "почти работающий" плагин ну ох как неохота...

среда, 15 августа 2007 г.

снова отчет:)

К сожалению, ListView победить пока не удалось и я переключился на другие задачи. За время отсутствия здесь я отработал схему скиннинга контролов в делфи, не имеющих хендла. Так что теперь и эта задача, до этого казавшаяся мне сложноватой решена. Так же сегодня добил ComboBox. Получилось не совсем так, как хотел, всю картинку портит подчиненный edit-контрол, но я думаю, пользователи не расстроятся из за этого. Тем более, потом, в последующих релизах я обещаю все добить и сделать конфетку :о)
Очередная порция скриншотов:
до:

после:



Работа потихоньку близится к первому релизу. Мне осталось сделать ListBox, меню и (о ужас...) окно. Затем несколько внутренних компонентов, используемых в Qip - и выпущу первый релиз:о)

среда, 8 августа 2007 г.

Жалоба:)

Мда. Казалось, что битва с мемо будет самой тяжелой... Оказалось, что ListView - не менее геморный компонент... Который день уже мои попытки приводят к глюкам, несколько раз со своими экспериментами вызвал синий экран:) Не теряйте из виду, работа продолжается, но столкнулся тут с кое-какими ограничениями, которые пока решить не могу. Буду копать дальше.

З.Ы. Кошмар, а что меня с формой будет ждать. Хочется не думать об этом... Мечтаю уже о первом релизе :о)

четверг, 2 августа 2007 г.

Очередная победа :о)

Итак, после недельной битвы, скроллбары повержены :о) Ох и намучался же я... Но зато получилось красиво и в коде и в интерфейсе:) (смотрел реализации кое каких движков, они до такой вещи не додумались:о))
Как всегда, скриншоты (хотя они не сильно изменились с прошлого раза):

до(before):


после (after):



А еще (думаю, для затравочки) решил я показать вам как это выглядит в динамике. Заранее извиняюсь за тормоза в видео - комп у меня не мощный, я бы сказал даже очень не мощный, но зато хорошо тормоза проги вылавливать:) А так же прошу прощения за низкое качество видео - все мы экономим трафик, не правда ли?:) Вот. Смотрим.



З.Ы. Все таки радует меня гугль своими проектами. Ряд сервисов можно объединить в один аккаунт и управлять ими одним кликом:) Молодцы, ребята:)

For english and international users :o)
I've just completed a work under scrollbars and really happy)) It was hard to do and it's working:) Sorry for bad video quality - it is made because of traffic economy:o) And don't be scared of app-freezing in the video - my computer is pretty old (Wanna renew it all the time, but to many work and no free time:o))

пятница, 27 июля 2007 г.

потихоньку приближаюсь к концу отделки Memo ))

В общем, скроллбары отрисовать получилось, но пока не избавился от отрисовки старых... Осталось перебороть этот неприятный момент - и можно браться за остальное.
before:


after

среда, 25 июля 2007 г.

Интересно получается

В ходе битвы с мемо обнаружил таки способ рисования текста прозрачно, но с эдитами почему то работает только в одном случае - если он в нормальном разрешенном состоянии и с границами (borders). C мемо работает во всех вариантах. В общем, как всегда, мистика:)
Мемо почти добил, осталось решить проблему отрисовки скроллбаров (ScrollBars - полоса прокрутки). Смотрим скриншоты, восхищаемся:)
Было (before):


Стало (after):

вторник, 24 июля 2007 г.

Edit добил

Ну, теперь и WinAPI'шный эдит добит. Пока не добился чего хотел - область ввода текста по идее должна быть прозрачной, но пока добиться этого не удалось. Оставлю это на следующий релиз, когда займусь оптимизацией всего этого добра. Пока хватит того, что сделал, ибо если я буду столько времени убивать на каждый элемент, то релиз будет в следующем году...
Ну да ладно, не будем о грустном. Теперь все будет выглядеть так:


Теперь у меня на примете Memo и ComboBox. Ох чуется мне, что этот геморрой еще только начало...

воскресенье, 22 июля 2007 г.

Промежуточный отчет

Это были тяжелые 3 дня... Поле ввода aka Edit никак не поддавалось скиннигу. Сказать, что логика отрисовки удивительная - это ничего не сказать... Пока удалось переделать эдит в делфи (см. скриншоты). Завтра начну изучать логи сообщений в винапишных... Не теряйте из виду, процесс идет. Итак, должно все выглядеть так:
было (before):

стало (after):

среда, 18 июля 2007 г.

Ура, ура. Тулбар готов!

Итак, двое суток у меня ушло на переделку тулбара. Сейчас уже ночь, голова соображает туго, завтра еще протестирую, но! Тулбар готов! Есть подозрения, что будет неадекватное поведение при вертикальном расположении и еще парочке моментов, но думаю, завтра я это все предусмотрю))
Ура, товарищи! Смотрим скриншоты, восхищаемся:)

До (Before):

первый скрин

второй скрин

После (after):

скрин 1

скрин 2

Тут я немного лишнего раскрыл, но это чтоб показать как выглядят тулбары)) Да, да, стандартные диалоги тоже будут скиниться:)

воскресенье, 15 июля 2007 г.

очередной апгрейд ^_^

Вчера отрихтовал header, но способа определить, отсортирован столбец или нет я так и не нашел. Вероятно, прийдется применять хакерские методы:) (как будто сейчас не хакерские:))
Сегодня как то быстро и без особых проблем заскинил TrackBar (см. скрины). Самое смешное - это то, что труднее всего было отрисовать метки самому:) Завтра думаю взяться за тулбар. Это будет последний "легкий" контрол... Дальше прийдется очень сильно попотеть и провести парочку бессонных ночей в изучении логов сообщений...

Итак, скриншоты полученного:
было:

скрин 1

скрин 2
стало:
Первый вид
скрин 1

Второй вид
скрин 2
зацените:о)

пятница, 13 июля 2007 г.

Первый тест

В общем, пришло вчера в голову. Будет диалог выбора скина. Думаю, было бы здорово, если в нем будет дополнительная кнопка, по нажатию на которую появится дополнительный диалог с выбором скина с сайта - будут скачиваться превьюшки скинов с сайта, пользователь смотрит, что-то ему понравилось - он жмет "скачать и установить" - скин качается с сайта и устанавливается. Как вы думаете, нужно это делать или нет? (естественно, само это все скачиваться не будет, только по запросу пользователя).
Голосуйте здесь и/или на главной странице блога (пока не будет сделано/принято решение не делать:))

Отчет о проделанной работе ^_^

Итак, скиновый движок. Планирую сделать его как отдельный плагин к Qip Infium, надеюсь получится автономно и независимо. На данный момент графическое ядро уже сделано, осталось дело за малым - перерисовать все, что только можно:)
Пока сделал полную перерисовку следующих элементов интерфейса:
- Кнопка (в том числе, TBitBtn в Delphi)
- Чекбокс
- Переключатель aka TRadioButton
- Групбокс
- Статичный текст aka Static
- Закладки aka PageControl/TabControl
- полоса прогресса aka ProgressBar
- реверсивный счетчик aka UpDown/Spin
- статусная строка aka StatusBar
- Заголовок списка aka SysHeader (чуть чуть еще отрихтовать:))

Сравните стандартное:



скриншот 1




скриншот 2




скриншот 3



и то, что получилось:)






скриншот 1





скриншот 2





скриншот 3



На сами изображения не обращайте внимания:) Плюс, это конечно надо видеть в динамике, но ничего, потом увидите:о) С первым релизом в качестве стандартного будет очень качественный скин. Рисует его очень профессиональный художник:) И вообще, будет много разных фишек и прибамбасов, было бы время это все сделать...
Сейчас вот сижу весь день и пытаюсь нарисовать столбец хидера, когда он отсортирован. Блин, как все запутано в этом винапи...

как вам?:)