Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

GRush Controls


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

homm ©   (2005-10-22 16:03:00) 

Эпиграф:
"Лучшее враг хорошего"

Многие из вас знакомы с котролами 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 все по прежнему плохо.


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

Наверх

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