![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
GRush Controls
homm © (2005-10-22 16:03:00)
Страницы: < 1 2 3 4 5 6 7 8 9 >
Эпиграф:
"Лучшее враг хорошего"
Многие из вас знакомы с котролами RBControls от Nathanaлl VERON.
Еще большим из вас, наверное знам порт этих контролов под KOL
от RA. Два месяца назад я тоже впервые увидел эти контролы.
Надо сказать что они меня сильно порадовали и я даже стал разбиратся
в исходниках, присылать баг репорты и замечания по коду, и примерно
дня через 3 я понял что ни Nathanaлl VERON ни RA до этого ни разу
не работали с графикой. Многие наверное замечали что RB просто не
реально долго изменяют свой размер, достаточно не быстро рисуются
и прорисовка их в некоторых случаях не совсем коректна. Все это
подталкнуло меня к написанию своего аналога, полностью заменившего
бы контролы RB.
Итак почти через два месяца работы (ну нет у меня возможности
писать каждый день) я хочу поделится своими трудами - GRushControls.
Оновные отличия (преимущества) GRush Controls по сравнению с RB Controls.
-------------------------------------------------------------------------
Первое и самое главное - они БЫСТРЕЕ, причем я говорю не о процентах и
даже не "разах". Они быстрее на порядок! Стоить наверное уточнить о
что под скоростью прорисовки я имею ввиду не только реакцию на
Invalidate, хотя и ее тоже, но и на изменение размеров контрола.
Но что значит "быстрее"? Фактически на их основе становится реально
развешать панелей с градиентом по форме, развернутой на весь экран,
нагрузить ее элементами под завязку и запустить все это чудо на любой
машине с процессором P200 MMX и метрами так восмью видео памяти не
переживая что на разворачивание формы пользователь будет лицезреть
"в реальном времени".
-------------------------------------------------------------------------
Второе о чем бы я хоте упомянуть коректность прорисовки. Попробуйте при
16 битах запустить RB и вы неприменно увидите полосы на градиенте. Еще
например в RB видны какието "битые пикселы" внизу у градиента панели.
Но это по большому счету не так важно, гораздо важнее то что ...
-------------------------------------------------------------------------
В третьих RB - прямо не контролы, а спльшной компромис. Яркий пример -
в панели нельзя использовать схлаживание рамки однавременно с градиентной
заливкой. В GRush таких ограничений нет. Вы в можете задать сглаживание,
градиент, произвольную ширину Border'а, отдельно настроить размер скругления
по вертикали и горизонтали, поместить рисунок, отфармотировать надпись
(слова "выбрать ориентацию текста" слабо подходят для выражения сути
происходящего). Все выше перечисленое можно проделать не только с панелью.
Можно вполне задать Border для сплиттера, или вставить изображение в CheckBox.
Кроме того большинство параметров прорисовки для каждого "состояния" задаются
отдельно (всего состояний четыре: нормальное, с наведеным курсором, с нажатием,
неактивный контрол) это позволяет делать вещи, о которых я даже не подазревал
кагда писал компаненты (элементрарные прмер - смещение градиента на пиксаль
вниз в состоянии "нажато" придает эфект утапливаемой кнопки)
-------------------------------------------------------------------------
Кроме того:
* Размер кода GRush меньше примерно на 5 кб
* Размер выполняемого приложения в памяти в общем случае меньше
(конкретные цифры зависят он размеров компанентов и аоличества панелей)
* Много еще приятных мелочей.
Из недостатков (читать: еще не дописал):
* MCK в проекте начало существование с сегодняшнего дня. Ничего кроме создания
контролов она делать еще не умеет, посему все свойства надобно где нибудь
в FormCreate выставлять (в вемах ощие принцип показан).
* Отсутствуют некоторые контролы (ProgressBar, StyleManager, возможно Memo)
* Кнопка не может быть "вдавлена" (AllowAllUp), не работает DoubleClick.
* Не работает TAB.
* Не все задуманое безобразие относительно взаимного расположения рисунка (Glyph)
и текста реализовано.
* Безобразная работа с Glyph (сам Bitmap)
После всего прочтенного наверняка у многих возник вопрос:
"А где это чудо можно закачать?"
Ответ прост:
http:/www.homm86.narod.ru
Огромное спасибо shalex и RA за помощь и тестирование.
ЗЫ Прошу тех, кого не затруднит присылать отзывы и предложения
сюда на фрум (расматриваются даже сообщение типа "а вот сдесь пиксель должен быть
$fffefd, а он $fffefc"), а также небольшой снимок градиентной панели в (!) 16 битах
в формате PNG на мыло вместе с моделью вашей видео карты (тут недавно глюки у одного
человека были, как бы не пришлось все ядро прорисовки переделывать).
--
____________________________________________________________
С уважением,
Карпинский Александр | mailto:homm86@mail.ru
homm (2005-10-27 07:23:00) [121]
> fellix (26.10.05 01:30) [34]
> Автору только и надо, что архив перепаковать
Как ты думаеш, возможно ли было новую версию выложить, не перепаковывая архива?
homm (2005-10-27 07:21:00) [122]
> > А можно убрать прямоугольник по краям Progress Bar (или
> сделать невидимым) ?
> А лучше сгладить его, как само заполнение...
All_DrawProgressRect := false
Скруглить и сгладить? Может для этого частного случая стоит на панель таких же размеров боросить?
MTsv DN (2005-10-26 15:15:00) [123]Если надо без MCK: http://www.uus4u.com/download/other/grush_demo_womck_twoforms.rar
С Уважением MTsv DN
MTsv DN (2005-10-26 15:06:00) [124]Закачайте еще раз aladin.rar. Там весь проект...
Инфа: Delphi 7 + KOLnMCK 2.18
С Уважением MTsv DN
DmiSb (2005-10-26 13:33:00) [125]2 MTsv DN
Странно.
Когда столкнулся с этой ошибкой, все снес, заново поставил KOL 2.18 и GRushControls, эффект ноль.
А как у вас крейтиться и удалятся форма ?
Если я делаю Form2.Form.Hide то оштбки нет.
Такая же ошибка, если пытаюсь любой GRushControl сделать Free еще до закрытия формы.
DmiSb (2005-10-26 13:33:00) [126]2 MTsv DN
Странно.
Когда столкнулся с этой ошибкой, все снес, заново поставил KOL 2.18 и GRushControls, эффект ноль.
А как у вас крейтиться и удалятся форма ?
Если я делаю Form2.Form.Hide то ошибки нет.
Такая же ошибка, если пытаюсь любой GRushControl сделать Free еще до закрытия формы.
MTsv DN (2005-10-26 11:29:00) [127]
> вылетает RunTime error 216 at 0000DBE1
> Закрытие формы без GRush контролов происходит нормально
Попробуйте сделать REBUILDдля KOLnMCK и GRushControls... Т.к. у меня все в норме, можете посмотреть: http://www.uus4u.com/download/other/aladin.rar
С Уважением MTsv DN
fellix (2005-10-26 10:18:00) [128]> nicesc (26.10.05 06:37) [35]
Thanks, it works.
DmiSb (2005-10-26 08:00:00) [129]Если из основной формы открыть вторую
NewForm2(Form2, Applet);
Form2.Form.ShowModal;
с размещенном на ней любым GRush контролом,
при её закрытии и последующим
Form2.Form.Free;
вылетает RunTime error 216 at 0000DBE1
Закрытие формы без GRush контролов происходит нормально
D5, KOL 2.18
nicesc (2005-10-26 06:37:00) [130]Ну ё маё! Если не скачивается с народа, то сначала нужно попробовать просто в браузере открыть ссылку на файл.
Вот переложил:
hice.antosha.ru/grushcontrols.zip
fellix (2005-10-26 01:30:00) [131]> MTsv DN (25.10.05 15:25) [31]
> Если не докачивается возьмите FlashGet или смените броузер... Здесь же компонент обсуждают...
Возможно это и оффтопик - пусть модератор решает - но интересно, что бы вы обсуждали, если бы не могли скачать?
Не загружается с трех разных компов через трех разных киевских провайдеров. Автору только и надо, что архив перепаковать (WinRAR'ом исходники плюс 1 demo-exe в 50К помещаются), а вы начинаете о download менеджерах рассуждать. Считаете, что кроме вас все остальные - ламеры? Я за свой базар отвечаю.
MTsv DN (2005-10-25 20:24:00) [132]> А можно убрать прямоугольник по краям Progress Bar (или сделать невидимым) ?
А лучше сгладить его, как само заполнение...
С Уважением MTsv DN
Vladimyr (2005-10-25 16:06:00) [133]А можно убрать прямоугольник по краям Progress Bar (или сделать невидимым) ?
Тогда бы он стал просто овальной сосиской! :)
MTsv DN (2005-10-25 15:25:00) [134]> Offtopic - не offtopic, но файлы по-прежнему не скачиваются.
Однозначно Offtopic... Если не докачивается возьмите FlashGet или смените броузер... Здесь же компонент обсуждают...
> 2 ECM
> > Glyph выводится без прозрачности - на розовом фоне.
> Ну на самом деле он выводится прозрачным, только прозрачным
> цветом
> становится черный. Почему - надо разбиратся на месте, а
> место там
> где 98 стоит, а у меня не ст... тфу не установлена, так
> что видимо
> придется замять до поры до времени.
Все это полная фигня... Единственное, что не работает в 98 винде, это NewBitmap. Заменяешь его как предложил homm (или так: NewDIBBitmap(0, 0, pfCustom) - разницы нет) и все нормально запускается...
А розовый цвет фона... homm - это твой "косячок", похоже ты в секцию BITMAP файла ico.res засунул ico-шку, она конвертанулась...отсюда и розовый фон... Кто хочет, может посмотреть эту картинку http://www.uus4u.com/download/other/demoproject55_win98.pngСпециально заменил BITMAP в ico.res.
> Кажется autosize не работает в RadioBoxе... может еще где-то?
autosize не "не работает", а работает некорректно... После autosize увеличьте ширину на 3 пикселя и все...
Думаю для начала... Компонент ОЧЕНЬ даже рабочий...
С Уважением MTsv DN
shalex (2005-10-24 20:44:00) [135]Кажется autosize не работает в RadioBoxе... может еще где-то?
ECM (2005-10-24 17:38:00) [136]
> Ну на самом деле он выводится прозрачным, только прозрачным
> цветом
> становится черный. Почему - надо разбиратся на месте, а
> место там
> где 98 стоит, а у меня не ст... тфу не установлена, так
> что видимо
> придется замять до поры до времени.
С ума сойти... не знал - не знал...(я про прозрачность)... прямо глаза отрылись... :) (еще с Win 3.0 закрыты были)
...А делать за тебя никому особо и не хотелось...
homm (2005-10-24 12:45:00) [137]Что - то никто ниче не пишет...
В общем расклад такой - с понедельника по пятницу меня дома не бывает
(учусь в другом городе), компьютера там нет, интернет в универе, так
что читать и писать сообщения среди недели я буду по мере возможности,
а новая версия будет не раньше суботы.
homm (2005-10-24 05:16:00) [138]2 fellix
Я проверил уже 3 раз. Все качается, распаковывается, запускается. Если у тебя нет, то это только у тебя одного, значит это offtopic. (попробуй уже какой нибудь даунловд менеджер)
fellix (2005-10-24 01:48:00) [139]> homm © (23.10.05 19:56) [21]
> 2 SPeller, ECM, fellix - Развели тут offtopic.
Offtopic - не offtopic, но файлы по-прежнему не скачиваются.
homm (2005-10-23 23:50:00) [140]2 ECM
> Glyph выводится без прозрачности - на розовом фоне.
Ну на самом деле он выводится прозрачным, только прозрачным цветом
становится черный. Почему - надо разбиратся на месте, а место там
где 98 стоит, а у меня не ст... тфу не установлена, так что видимо
придется замять до поры до времени.
2 All World
У меня завтра уже наступило! Так что сливаю новую версию 0.26.
News:
[+] Добавлен компонент GRush Progress Bar. Ура товариши.
[+] Добавлены соответствующие свойства у PGRushControl:
All_DrawProgress - Отрисовка циферок.
All_DrawProgressRect, All_ProgressVertical. Все булины.
[*] Подправлены функции: DeactivateSublings, DoPop, DoPush, DoEnter, DoExit,
а также реакция на сообщения WM_TIMER, WM_PAINT, BM_SETCHECK, BM_GETCHECK и т.д.
[*] Если BorderWidth = 0 то он все равно лез. Исправлено.
[*] ShadowOffset был байт, стал смолинт. Может принимать отрицательные значения.
Параметры от PControl: Progress и MaxProgress актуальны и для GRush Progress Bar.
В MCK все по прежнему плохо.