Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Вниз

Region Maker - Окна Произвольной Формы | Создаём Утилиту   Найти похожие ветки 

 
DevilDevil ©   (2006-03-29 05:32) [0]

Все мы когда-нибудь видели симпатичные приложения нестандартной
(непрямоугольной) формы. Согласитесь, подобные приложения намного
привлекательнее обычных (прямоугольных). Достаточто хорошим примером
нестандартного окна (региона) является программа Microsoft Media Player.
Выбрав в меню "Вид\Параметры полного режима" режим "автоматически скрывать строку меню"
или "Вид\Режим обложки", Вы убедитесь в правоте моих слов.

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

Существенно облегчить эту задачу смог один (или больше) мужик, создавший один Delphi компонент.
Допустим, у Вас есть bmp рисунок, в центре которого красочное изображение (ну, кнопочки, эмблемы, фон...
- см. Microsoft Media Player), а всё остальное (ненужное) окрашено, например, чёрным. Вообще, довольно
удобно рисовать вид своего окна прямо в Paint или Photoshop. Ну так вот, загрузив этот рисунок в одно
из свойств Delphi компонента (предположим, в Picture), откомпилировав и запустив такой проект, Вы получите
долгожданное - Ваше окно преобрело произвольную (определённую Вами в рисунке) форму и окрасилось
яркими красками нарисованного ранее изображения. Правда, здорово?

Да не совсем!!! Во-первых, скорость каждой компиляции увеличивается на пару секунд. Связано это с тем,
что при каждой компиляции, в exe сохраняется тот самый рисунок-регион. Поэтому (во-вторых), размер exe
существенно увеличивается. Двадцати четырёх битный растр 800х600 занимает 1 440 054 байт (1,37 Мб).
В-третьих, грузится такая программа на пару секунд дольше. Связано это с медленным алгоритмом создания
региона.

Решаются ли эти проблемы? Да. Как минимум, уменьшить время компиляции можно. В книге Михаила Флёнова
"Программирование в Delphi глазами Хакера" приведена функция, которая позволяет во время исполнения программы
получить регион из рисунка (объекта TBitmap). Создание региона из моего рисунка 800х600 отняло 770 миллисекунд
(0,77 секунды) на моём Athlon1700. Уменьшить размер программы тоже можно. Сам рисунок можно хранить в
JPEG файле, а образ региона - в двуцветном растре, где белый - ненужный цвет, а чёрный - нужный.
Экономия: 20 Кб (JPEG) + 60 Кб (2-цветный образ) + 100 Кб (модуль JPEG) = 180 Кб < 1 406 Кб (1,37 Мб) !!!

Прошло немного времени, до меня дошло, что, в принципе, двуцветный растр можно сжать, причём, адаптировав
формат файла под регионы, можно получить существенный выигрыш в скорости. Разработал метод сжатия,
получил хорошие результаты: размер файла - 6 Кб (в 10 раз меньше), скорость распаковки - 90 миллисекунд
(в 9 раз меньше). Прошло ещё какое-то время, и я нашёл способ максимально быстрого создания регионов.
Скорость снизилась до 10 миллисекунд. Правда, и его можно было уменьшить, скажем, до 5 миллисекунд.
Прошло ещё с пол-года, и я додумался до другого (усовершенствованного CCITT Group 3 алгоритма). Долго
не решался реализовать (из-за сложности), и вот на днях всё-таки сделал! Приготовьтесь!
Размер: 2 900 байт (меньше 3 Кб), Скорость: 1-2 миллисекунды! ВОТ ЭТО - РЕЗУЛЬТАТ!

Всё предыдущее - вступление, сейчас - к сути! Я разработал dll пока с одной функцией:
function SaveRgnToFile(Bitmap : TBitmap; Color : TColor; FileName : string) : boolean;

Bitmap - рисунок. Color - цвет в этом рисунке, который считается "ненужным". Если он равен High(TColor),
то используется цвет по умолчанию - цвет левого верхнего угла. FileName - куда сохранить.
Создал так же ReadRegion.pas для чтения этого региона из файлов, памяти и ресурсов. Увеличивает
размер exe всего на 997 байт.

ПРЕДЛАГАЮ СОТРУДНИЧЕСТВО!
Я продолжаю доработку dll, добавляю другие сложные функции по работе с регионами. Но мне нужен
в помощь человек или больше, который запрограммирует действительно удобную визуальную среду,
включающую графический редактор (карандаш, линия, прямоугольник, текст, ластик, увеличение...),
Viewer и имеющую по различным критериям выделить из Jpeg, Gif, Png, Bmp регион. Всё это, конечно,
используя мою dll. Если кто-то уже подумал, что заработает на этом деньги, огорчу. Давайте сделаем
это на благо коллег и прогресса вцелом.

!!!
Но сначала, нужно иметь возможность скачать наработки. Если у кого-то есть сайт и ему не жалко
300 кб, то пусть напишет мне, я вышлю архив, а потом сделаем на форуме ПРЯМУЮ ссылку.

В архиве: SaveRgn.dll + SaveRgn.pas для работы с dll, ReadRegion.pas - модуль для чтения регионов,
Regions.doc - статья по программированию регионов и первая версия Region Maker - утилита для
создания файлов-регионов.


 
antonn ©   (2006-03-29 06:32) [1]

DevilDevil ©   (29.03.06 5:32)
Допустим, у Вас есть bmp рисунок, в центре которого красочное изображение (ну, кнопочки, эмблемы, фон...
- см. Microsoft Media Player), а всё остальное (ненужное) окрашено, например, чёрным. Вообще, довольно
удобно рисовать вид своего окна прямо в Paint или Photoshop.

есть такое понятие, как альфаканал... "прозрачный цвет" в топку.

> В архиве: SaveRgn.dll + SaveRgn.pas для работы с dll,
> ReadRegion.pas - модуль для чтения регионов,

мдя... а в свободный доступ эта "чудо регионалка" никак не может быть выложена? такая ведь была в старов BUPack для делфи5, думаю и на http://www.torry.net/ есть бесплатное.


 
antonn ©   (2006-03-29 06:42) [2]

ладно, продолжу брюзжание:)

DevilDevil ©   (29.03.06 5:32)
Связано это с медленным алгоритмом создания
региона.

нужно забыть про canvas.pixels[] и открыть для себя scanline()


> Прошло немного времени, до меня дошло, что, в
> принципе, двуцветный растр можно сжать, причём,
>адаптировав
> формат файла под регионы, можно получить существенный
>выигрыш в скорости. Разработал метод сжатия,
> получил хорошие результаты: размер файла - 6 Кб (в 10
>раз меньше), скорость распаковки - 90 миллисекунд
> (в 9 раз меньше).

вах... а встроенный zlib чем не нравится?


> Прошло ещё с пол-года, и я додумался до другого
> (усовершенствованного CCITT Group 3 алгоритма).

мдя... пол-года потерять на регионах...


 
iZEN_   (2006-03-29 07:29) [3]

Обалдеть не встать, чем люди занимаются. ;)


 
ZeroDivide ©   (2006-03-29 08:21) [4]

:)


 
КиТаЯц ©   (2006-03-29 08:25) [5]


> DevilDevil ©   (29.03.06 05:32)
>
> Все мы когда-нибудь видели симпатичные приложения нестандартной
> (непрямоугольной) формы. Согласитесь, подобные приложения
> намного
> привлекательнее обычных (прямоугольных).

Не соглашусь.
+ Они еще и неудобнее.


 
Думкин ©   (2006-03-29 08:48) [6]

Была такая задача. Решил. Мир осчастливливать почему то не захотелось. Ибо много где и у кого видел такое. Причем, первые этапы описанного пролетаются на раз. Вы посмотрите те же проекты ДарлингКиндерсли.

Слов много - а к чему - не понятно.


 
KSergey ©   (2006-03-29 09:16) [7]

недавно тут про графоманов кто-то спрашивал... :)


 
TUser ©   (2006-03-29 09:17) [8]

Программа должна выполнять свои функции. Поэтому нефиг выпендриваться. Интерфес должен быть стандартным.


 
Думкин ©   (2006-03-29 09:20) [9]

> TUser ©   (29.03.06 09:17) [8]

Программы - оне разные. есть типа игры, типа не все Дуум. Или мультимедийные энциклопедии. Например.


 
KSergey ©   (2006-03-29 09:38) [10]

DevilDevil ©   (29.03.06 05:32)  
> Существенно облегчить эту задачу смог один (или больше)
> мужик, создавший один Delphi компонент.

Я так и не понял: этот мужик или его творение имеют какое-то отношение к дальнейшему повествованию?

> Допустим, у Вас есть bmp рисунок, в центре которого красочное
> изображение (ну, кнопочки,

Выделенное меня заинтересовало, но я так и не увидел где-либо ниже упоминание о том, что это поддерживается. Вопрос: красиво нарисованные кнопочки поддерживаются в нижеописанной библиотеке?

> Да не совсем!!! Во-первых, скорость каждой компиляции увеличивается
> на пару секунд.
> Связано это с тем,
> что при каждой компиляции, в exe сохраняется тот самый рисунок-
> регион. Поэтому (во-вторых), размер exe
> существенно увеличивается.

Ну, это легко поправить вынеся файл с картинкой наружу. Никто ведь не заставляет влинковыветь его в exe. Есть много способов хранить его отдельно.

> Двадцати четырёх битный растр
> 800х600 ....

К стати, о разрешениях. Мониторных.
У меня выставлено 640х480, у товарища - 1200х1600. Мы с ним будем иметь одинаковые размер окна? (я как-то не увидел по этому поводу опровержений)

>  Сам рисунок можно хранить в JPEG файле

По-моему, все же нет. Если рисунок содержит контрастные переходы (линии. например) - это будет очень коряво. Тут нет смысла экономить.

> Прошло немного времени, до меня дошло, что, в принципе,
> двуцветный растр можно сжать

RLE?

> Всё предыдущее - вступление, сейчас - к сути! Я разработал
> dll пока с одной функцией:
> function SaveRgnToFile(Bitmap : TBitmap; Color : TColor;
>  FileName : string) : boolean;

Я не понял, а как же самая главная мега фунция CreateСurvedWindow??

> Создал так же ReadRegion.pas для чтения этого региона из
> файлов, памяти и ресурсов. Увеличивает

Ах вот оно!

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

А Paint чем не угодил? Еще один велосипед хочется?

> Давайте сделаем это на благо коллег и прогресса вцелом.

Есть у меня стойкое подозрение, что этого дела.... много, короче.

> Но сначала, нужно иметь возможность скачать наработки. Если
> у кого-то есть сайт и ему не жалко
> 300 кб, то пусть напишет мне, я вышлю архив, а потом сделаем
> на форуме ПРЯМУЮ ссылку.

А всякие narod.ru - чем плох?


 
Polevi ©   (2006-03-29 10:05) [11]

интересно, аффтар тектовый редактор написал уже ?


 
Rouse_ ©   (2006-03-29 10:08) [12]

угу, и тетрис забыл :)


 
Gero ©   (2006-03-29 10:23) [13]

> Все мы когда-нибудь видели симпатичные приложения нестандартной
> (непрямоугольной) формы.

Ни разу не видел. Когда попадает в руки очередное уродство, сразу появляется желание из него выйти. Хорошо когда еще кнопку закрытия окна можно найти.


 
tsa   (2006-03-29 10:26) [14]


> облегчить эту задачу смог один (или больше) мужик

:))


 
Думкин ©   (2006-03-29 10:39) [15]

> Ни разу не видел. Когда попадает в руки очередное уродство

Так о чем речь - и почему уродство? Не все программы - для бухгалтеров. Их список - ширявее.


 
Gero ©   (2006-03-29 10:49) [16]

> Думкин ©   (29.03.06 10:39)

Да, мне вот как-то программа для разгона процессора попадалась, причем официальная от производителя мат. платы. Вся круглая, ромбовидная и черт-поймешь-какая. Зачем? Кому нужны такие программы?


 
Думкин ©   (2006-03-29 10:51) [17]

> Gero ©   (29.03.06 10:49) [16]

Такие? А я знаю? Но у меня зарядка для телефона круглая - и ничего - работает. А это главное.

Но окна нестандартной формы все-таки имеют свое применение. Например, в упоминавшихся уже мной энциклопедиях для детей от ДарлингКиндерсли. Согласитесь, что стандартная серость виндов для детей - не вполне кузяво. Или нет?


 
Gero ©   (2006-03-29 10:57) [18]

> Думкин ©   (29.03.06 10:51)

Если программа носит презентационный характер, то, действительно, ее можно и разукрасить. И показать один раз.
А если программа нужна чтобы в ней работать, или просто пользоваться ею неоднократно, то извольте.
А энциклопедия для детей, конечно, может быть и разукрашенной.


 
Слоник   (2006-03-29 10:58) [19]

а чего злые-то такие? интересно человеку программировать, на это наложилась показавшаяся полезной идея. по-моему прекрасно. неужели развлечения ради пишете корпоративный софт в стол?


 
Думкин ©   (2006-03-29 11:00) [20]

> Gero ©   (29.03.06 10:57) [18]

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


 
Думкин ©   (2006-03-29 11:01) [21]

> Слоник   (29.03.06 10:58) [19]

Расшифруйте. Желательно в кодировеке 1251.


 
КиТаЯц ©   (2006-03-29 11:03) [22]


> Gero ©   (29.03.06 10:49) [16]
>
> Да, мне вот как-то программа для разгона процессора попадалась,
>  причем официальная от производителя мат. платы. Вся круглая,

Знаю. От ASUS. Ужас!


 
tsa   (2006-03-29 11:05) [23]


> Gero ©   (29.03.06 10:57) [18]

Работать в комфорте лучше, в приятном светлом красивом месте, на стенах что бы картины, из окна замечательный вид, сотрудники бодры и веселы :) Столовая рядом для обеда и подобное. Это лучший выбор. Дисциплина если есть, то перечисленное не помешает хорошо работать.
"Почему он ушёл?? - да ему вид из окна понравился" :P


 
Gero ©   (2006-03-29 11:22) [24]

> [22] КиТаЯц ©   (29.03.06 11:03)
> Знаю. От ASUS. Ужас!

Нет, у меня была от Gigabyte :)))


 
antonn ©   (2006-03-29 11:28) [25]

КиТаЯц ©   (29.03.06 11:03) [22]
Знаю. От ASUS. Ужас!

ой, вы от микростара не видели:))
а еще есть софт к старым цифровым мыльницам - поубивал бы за такое...


 
DevilDevil ©   (2006-03-29 12:47) [26]

Г О С П О Д А!!!

Давайте перестанем заниматься всякой ерундой!!!
Если есть, что сказать по существу, пишите, если  нет - ИЗВОЛЬТЕ.

Думаю, необходимость программирования окон нестандартных
размеров ещё долго будет актуальна. Я создаю удобную утилиту
и модуль для быстрого чтения. Многим окажется полезным.
И в этом плане, обсуждать здесь нечего. Не надо засорять форум.

Кроме того, из вас ещё ни кто утилиты не видел, не ощутил её прелести.

Текущий вопрос (единственно обсуждаемый):
предоставит ли кто место на своём сайте под нужды скачивания и просмотра

Благодарю за внимание


 
Kerk ©   (2006-03-29 12:49) [27]

DevilDevil ©   (29.03.06 12:47) [26]
предоставит ли кто место на своём сайте под нужды скачивания и просмотра


Если вещь действительно работает, могу в кладовке место дать


 
Ketmar ©   (2006-03-29 13:06) [28]

>DevilDevil ©   (29.03.06 12:47) [26]
вах. обявился новый модератор. всем падать ниц!
Сударь, а вы в курсе, что можно читать/писать уже готовые регионы? если уж вам так охота иметь маленькие размеры, сжимайте эти регионы любым LZ-алгоритмом. будут те же 1-2 кб. я, помнится, лет эдак с 5 назад это написал за пол-часа.
так вот, ваша же цитата: "Не надо засорять форум." "компрене ву?" (ц)


 
Gero ©   (2006-03-29 13:08) [29]

> Кроме того, из вас ещё ни кто утилиты не видел, не ощутил
> её прелести.

Так показывай, мы же хотим прелесть ощутить.


 
antonn ©   (2006-03-29 13:57) [30]

Gero ©   (29.03.06 13:08) [29]
Так показывай, мы же хотим прелесть ощутить.

дык он же просит, чтобы ее кто нибудь выложил:)

автору: не переоценивайте значимость регионов, от них прок только на Win9x. Много ли из присутствующих людей пишет программы под Win98 и со скинабельным интерфейсом?
Вот пример, где создается форма "непрямоугольная" (кстати, открытые исходники) - http://kladovka.net.ru/index.cgi?pid=list&rid=318
если сможете сделать такую же регионами - поставлю памятник:) Вообще, не надо равняться на большинство факов из интернета, в которых "непрямоугольные" окна обычно регионами создаются.
использование для создания регионов отдельной библиотеки - непозволительная роскошь (даже если там и будут реализованы механизмы сохранения/загрузки), кстати, сколько она сейчас уже весит?
А если нужен будет resize для окна - это предусмотренно?


 
Джо ©   (2006-03-29 13:57) [31]

> [30] antonn ©   (29.03.06 13:57)
> автору: не переоценивайте значимость регионов, от них прок
> только на Win9x

То есть?


 
Ketmar ©   (2006-03-29 14:03) [32]

>antonn ©   (29.03.06 13:57) [30]
никогда не сравнивали скорость вывода layered-windows и ограниченых регионами? альфа-канал (вкупе с color key) таки тормозит.
впрочем, регионы тоже. %-)
вывод: не надо делать окон странной формы. %-)


 
KSergey ©   (2006-03-29 14:11) [33]

Товарисч!
Нельзя ли ответить на мои вопросы? Мне действительно интересно услышать на них ответ.

PS
Вот что было бы дейсивительно прикольно - это сделать anti-aliasing для границ непрямоугольного окна.
А то обычно он корявые и угловатые слишком уж получаются. А это была ба фишка новой библитеки. Да и поддержка теперь есть для базы этого дела - альфа-каналы.


 
tsa   (2006-03-29 14:15) [34]

Если снята галка "отображать содержимое окна при перетаскивании", то появляющаяся при перетаскивании рамка окна прямоугольная! Получается на экране всё обман - окно вовсе и не "странной формы" - форма обычная, просто пользователю закрывают глаза на правду :)
Вот, и круглые кнопки - они же даже не кнопки. Просто кружки цветные.. без фокуса.
Автор, разубеди такой подход.


 
Ketmar ©   (2006-03-29 14:37) [35]

>KSergey ©   (29.03.06 14:11) [33]
пока некрософт не сделает нормальной поддержки альфа-каналов (где альфа задаётся попиксельно, а не "сразу и для всех"), антиалиасинг делать долго и лениво.


 
antonn ©   (2006-03-29 15:11) [36]

Джо ©   (29.03.06 13:57) [31]
То есть?

на Win2K и выше поддерживаются "слойные" окна, когда система сама просто не отрисовывает некоторые участки (+ еще можно и прозрачные сделать).

Ketmar ©   (29.03.06 14:03) [32]
у меня компутер позволяет много чего делать и не тормозит, поэтому ниче не знаю:)))

KSergey ©   (29.03.06 14:11) [33]
Вот что было бы дейсивительно прикольно - это сделать anti-aliasing для границ непрямоугольного окна.

вот о чем я и говорил. регионами - никак. либо постоянно скриншотить задний фон (но это глюк)

Ketmar ©   (29.03.06 14:37) [35]
пока некрософт не сделает нормальной поддержки альфа-каналов (где альфа задаётся попиксельно, а не "сразу и для всех"), антиалиасинг делать долго и лениво.

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


 
Ketmar ©   (2006-03-29 15:16) [37]

>Ketmar ©   (29.03.06 14:37) [35]
"попиксельная прозрачность" -- это вы про color keys? сам могу ответить ссылкой на мои screen mates, которые это используют. %-) однако я имел в виду регулирование именно АЛЬФА-КАНАЛА для каждого пикселя. т.е. не два варианта (0% и 100%), а включая все промежуточные. или я отстал от жизни, и уже есть такое API (стандартное)?
как реализовать без layered-windows я знаю. только оно криво будет, как ни пиши.


 
antonn ©   (2006-03-29 15:38) [38]

Ketmar ©   (29.03.06 15:16) [37]
ну и я про "альфазначение" каждого пикселя:)
про функцию UpdateLayeredWindow()


 
Ketmar ©   (2006-03-29 15:55) [39]

мда. слона-то я и не заметил. %-)


 
DevilDevil ©   (2006-03-29 17:47) [40]

вах. обявился новый модератор. всем падать ниц!
Сударь, а вы в курсе, что можно читать/писать уже готовые регионы? если уж вам так охота иметь маленькие размеры, сжимайте эти регионы любым LZ-алгоритмом. будут те же 1-2 кб. я, помнится, лет эдак с 5 назад это написал за пол-часа.
так вот, ваша же цитата: "Не надо засорять форум." "компрене ву?" (ц)


Размер региона = 32 + 16 * количество прямоугольников. В сложных регионах
таких прямоугольников ОЧЕНЬ МНОГО, и, даже сжатые будут занимать больше 3кб.
Кроме того к exe прилинкуется 26кб (модуль zlib). Эффективность снижается.

Вообще алгоритм сжатия алгоритму сжатия - рознь. В данном случае,
словарный алгоритм неэффективен. Эффективны методы сжатия 2цветных
изображений, например, CCITT Group 3. Он отлично сжимает тексты (тексты-рисунки).
Учитывая специфику регионов, можно создать ещё более эффективный комрессор.
Именно этим я и занялся, взяв за основу половину идей CCITT Group 3. Поэтому степень
сжатия так высока (в 20 раз).

Хотя не отрицаю, твоя идея (была) более воплотима и заслуживает внимания. Если будет время,
попробуй сжать мой регион - интересен результат. Кстати, я попробовал дожать мой
файл-регион zlib-ом, получилось: 2 900 байт -->> 1 869 байт. Неплохой результат! Но, опять таки
не эффективен, т.к. модуль zlib добавляет 26Кб.


 
DevilDevil ©   (2006-03-29 17:57) [41]

автору: не переоценивайте значимость регионов, от них прок только на Win9x. Много ли из присутствующих людей пишет программы под Win98 и со скинабельным интерфейсом?
Вот пример, где создается форма "непрямоугольная" (кстати, открытые исходники) - http://kladovka.net.ru/index.cgi?pid=list&rid=318
если сможете сделать такую же регионами - поставлю памятник:) Вообще, не надо равняться на большинство факов из интернета, в которых "непрямоугольные" окна обычно регионами создаются.
использование для создания регионов отдельной библиотеки - непозволительная роскошь (даже если там и будут реализованы механизмы сохранения/загрузки), кстати, сколько она сейчас уже весит?
А если нужен будет resize для окна - это предусмотренно?


Посмотел, ВЕЩЬ!

Однако, не сомневаюсь, что необходимость использования регионов не исчезнет! Размер модуля разкодировки - меньше 1кб. Библиотека кодировки занимает 50кб. Со временем, скорость кодировки увеличу раз в 30, а библиотека будет занимать 15-20 кб (всё пока в зачаточном состоянии, перепишу под KOL, потом под WinAPI)

Ссылка на архив, надеюсь, появится несёдня-завтра.


 
Ketmar ©   (2006-03-29 18:06) [42]

>DevilDevil ©   (29.03.06 17:47) [40]
"модуль zlib". а других нет.

декомпрессор от apLib, например, занимает меньше 200 байтиков. итого: ~160 байт на декомпрессор и байт 20 на установку региона. плюс сам регион.
примерно те же результаты для WDXPack (килобайта 2-3 компрессор, байт 160 декомпрессор).
регион можно, опять же, сохранять не только одним способом.

я к чему: зачем велосипед изобретать?


 
antonn ©   (2006-03-29 18:06) [43]

где еще используются регионы (уж прости мое незнание)?
уверен, что где используются, не только на формах...


 
oldman ©   (2006-03-29 18:22) [44]

Бред!!!


> Все мы когда-нибудь видели симпатичные приложения нестандартной
> (непрямоугольной) формы. Согласитесь, подобные приложения
> намного привлекательнее обычных (прямоугольных).


А вот и не соглашусь!!!


 
Думкин ©   (2006-03-30 05:43) [45]

Перечитываю Йордана про Камикадзе. В свете вчерашнего ночного бдения над его книгой зОбавно прочитать:

> DevilDevil ©   (29.03.06 17:57) [41]

очень, знаете ли. :о)


 
DevilDevil ©   (2006-03-31 01:52) [46]

"модуль zlib". а других нет.

декомпрессор от apLib, например, занимает меньше 200 байтиков. итого: ~160 байт на декомпрессор и байт 20 на установку региона. плюс сам регион.
примерно те же результаты для WDXPack (килобайта 2-3 компрессор, байт 160 декомпрессор).
регион можно, опять же, сохранять не только одним способом.

я к чему: зачем велосипед изобретать?


У меня остаётся надежда, что ты осознаешь более высокую эффективность
моего метода сжатия. Ни один словарный метод не будет эффективнее метода,
специально предназначенного для кодирования какого-либо определённого типа
данных. Неужели не веришь? Ладно, доказываю на практике...

Рассмотрим на моём регионе, который я зажал в 2 900, а потом ещё в 1 869 байт (!)

Занимает он 14 608 байт. Зажал zlib-ом, получилось 4 801 байт. Отличный результат!
Подозреваю, что эффективность твоего "мили" модуля-архиватора меньше, чем у zlib.
Рад буду ошибиться.
Получается, во сколько мой+LZ алгоритм эффективнее? Правильно, в 2.5 раза!

В конце концов, не исчезает необходимость удобной утилиты, вопрос в алгоритме сжатия.

Нет, я не отрицаю, ты поступил правильно - в кротчайшие сроки очень просто реализовал
требуемую задачу. Возможно, если бы на момент начала увлечения этой штукой я знал
о ExtCreateRegion, GetRegionData и хотя бы Zlib, я бы даже не начинал заниматься
разработкой алгоритма. А раз уж разработан эффективный алгоритм, почему бы его не
использовать?

Кстати, будь добр, пришли, пожалуйста на devil_home@mail.ru свои LZ модули.
Если всё так хорошо, как описал ты, я включу дополнительное сжатие в утилиту


 
DevilDevil ©   (2006-03-31 01:54) [47]

Здравствуйте, МАСТЕРА!

Свершилось долгожданное!
Проект Region Maker теперь можно скачать: http://kerkzone.net/files/RegionMaker.zip

Kerk, спасибо тебе ещё раз!

Вы без проблем можете использовать эту утилиту в своих целях.
Однако (!), структура файла будет изменена! Поэтому текущие rgn файлы
абсолютно несовместимы с rgn файлами конечного варианта программы.
Момент создания конечного варианта обязательно будет освещён на форуме.

ВЕСЬ ВОПРОС БЫЛ ЗАДАН главным образом с одной целью:
найти человека, который будет усовершенствовать эту этилиту,
добавив возможность графического редактирования, Viewer-а,
и возможность (в зависимости от различных параметров) выделять
регион из других графических форматов.

Попробуйте сохранить растр в jpeg, потом обратно, а уже из полученного растра
получить регион. Тогда вы поймёте, зачем нужна возможность "выделения".

Конечно, я мог бы реализовать всё самостоятельно. Но, очень сложно делать
всё это одному, - боюсь, утилита может так и не выйти в свет.

Уважаемые Мастера!

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

Можете писать мне по почте, я отвечу. Лучшие (нормальные) вопросы опубликую на форуме.

С Уважением, автор вопроса и Region Maker.

P.S. Я решил отказаться от идеи dll, распространяю в pas, потом перепишу на C++


 
DevilDevil ©   (2006-03-31 01:57) [48]

ПРОШУ ПРОЩЕНИЯ!

Проект Region Maker теперь можно скачать: http://kerkzone.net/files/regionmaker.zip


 
АлексейК   (2006-03-31 05:25) [49]

Мне весело, когда смешных встречаю,
А чаще с ними я скучаю.


 
antonn ©   (2006-03-31 06:08) [50]

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


 
Gero ©   (2006-03-31 10:10) [51]

> DevilDevil ©   (31.03.06 01:54)

А можно скришншоты увидеть?


 
DevilDevil ©   (2006-03-31 13:12) [52]

> Gero ©   (31.03.06 10:10) [51]
ты скачай, там example.jpg есть


 
Gero ©   (2006-03-31 13:24) [53]

> DevilDevil ©   (31.03.06 13:12)
> ты скачай, там example.jpg есть

Скачал. Посмотрел. Уже в корзине.


 
DevilDevil ©   (2006-03-31 14:34) [54]

> Gero ©   (31.03.06 13:24) [53]
И что, ты типа считаешь, плохой пример?
Ты же не считаешь, что прямоугольный вариант лучше?!
В противном случае, извини, но у тебя абсолютно нет вкуса.
Это не твоя вина, люди разные рождаются.
Советую получше рассмотреть пример. Как минимум, проявить уважение к проекту. Он того заслуживает


 
DevilDevil ©   (2006-03-31 14:37) [55]

АлексейК   (31.03.06 05:25) [49]

Мне весело, когда смешных встречаю,
А чаще с ними я скучаю.


Я обращусь к тебе с советом:
Не посещай ты форум этот!


 
Игорь Шевченко ©   (2006-03-31 14:45) [56]

DevilDevil ©   (31.03.06 14:37) [55]

Дорогой друг, давайте вы не будете говорить другим, что им посещать, а другие не будут вам говорить, куда идти.

С уважением,


 
Virgo_Style ©   (2006-03-31 16:55) [57]

DevilDevil ©   (31.03.06 14:34) [54]

Скачал, посмотрел. У меня тоже абсолютно нет вкуса %-)


 
DIMODIM   (2006-03-31 17:00) [58]

Смысл было делать библиотеку ??
Зачем кому нибудб не квадратные окна , у меня такая программа была в комплекте с Делфи 5 еще 200 году , я выбирал форму окна , и делал каието дополнения , а она мне писала , что и где вставить в форму
--
Итого форма-Круг весила 20 строк кода


 
antonn ©   (2006-03-31 17:30) [59]

хех...
try..finally в коде замечено небыло...

а вот это меня совсем убило:
if (Image.Canvas.Pixels[X, Y] = TransColor)
хи-хи-хи, особенно оглядываясь на первый пост, я был прав :)

> В-третьих, грузится такая программа на пару секунд дольше. Связано это с медленным алгоритмом создания региона.


 
OSokin ©   (2006-03-31 19:11) [60]

Димодим, не выпендривайся. Это можно сделать одной процедурой в 8 строк с сохранением стилизации кода и ключевыми словами типа procedure и т. п.
К тому же речь идет не о круглой форме, которую легко сделать, а о компоненте, позволяющем создавать произвольную форму. Причем с возможностью редактирования формы в рантайме. Круглую форму ты делать умеешь - сделай и это. Сделай, выложи где-нибудь и потом ори, что никому это нафиг не надо. Мы посмотрим, потестируем, ты выслушаешь критику и исправишь недоработки (хотя это вряд ли будет - все уже убедились в твоей неспособности даже выслушивать критику).
Наверное, многие со мной согласятся?


 
oldman ©   (2006-03-31 19:15) [61]


> DevilDevil ©   (31.03.06 01:54) [47]


Уважаемый, если вам пропиарить свой компонент, то не надо выпендриваться!
Компонент, кстати, так себе.
"скачал, посмотрел, в корзине"... (©)


 
Джо ©   (2006-03-31 19:20) [62]

> [54] DevilDevil ©   (31.03.06 14:34)
> И что, ты типа считаешь, плохой пример?
> Ты же не считаешь, что прямоугольный вариант лучше?!

Понимание того, что прямоугольный вариант-таки лучше, приходит не сразу, не расстраивайся :)


 
OSokin ©   (2006-03-31 19:22) [63]

Дык человек и попросил помочь


 
OSokin ©   (2006-03-31 19:25) [64]

Дык человек и попросил помочь


 
oldman ©   (2006-03-31 19:28) [65]


> OSokin ©   (31.03.06 19:22) [63]
> Дык человек и попросил помочь
>
> OSokin ©   (31.03.06 19:25) [64]
> Дык человек и попросил помочь


Но вот чтоб кнопка "Добавить" зависла на 3 минуты...
:)))


 
DevilDevil ©   (2006-03-31 19:29) [66]

Опять началась вода, не больше, очень жаль :(


> Компонент, кстати, так себе.

нет там никаких компонентов


> а вот это меня совсем убило:
> if (Image.Canvas.Pixels[X, Y] = TransColor)
> хи-хи-хи, особенно оглядываясь на первый пост, я был прав :)

а меня добивает другое: как столько раз прочитав просьбы автора, можно продолжать лить воду. Про Scanline я занаю прекрасно, поэтому так уверенно говорю, что скорость создания увеличится раз в 30-40. Библиотека в таком состоянии - временно


> OSokin ©   (31.03.06 19:11) [60]

Спасибо за редкую поддержку на этом форуме.

Вообще функция SaveRgnToFile предназначена не для создания региона в рантайм. А для того, чтобы тот, кто возьмётся развивать интерфейсную часть утилиты, имел возможность протестировать. Для создания в реальном времени, в библиотеке будет другая функция.

Ещё раз, спасибо


 
vrem   (2006-03-31 19:33) [67]

Круглые не круглые - форму как шрифт или как рисунок можно получить, забавное дело, у меня bart.gif есть, так получилось и такую форму сделать :)
Где использовать, навскидку, - формы вроде прямоугольные, но чуть с изъяном прямолинейности, как у Дали на картине часы гнутые :)


 
oldman ©   (2006-03-31 19:37) [68]


> DevilDevil ©   (31.03.06 19:29) [66]
> > Компонент, кстати, так себе.
> нет там никаких компонентов


Ах, извините, ошибся...

ИДЕЯ, КСТАТИ, ТАК СЕБЕ!!!

Устроит?


 
oldman ©   (2006-03-31 19:39) [69]

"Дата рождения: 04.12.1986
Город: Нижний Новгород
Пол: Мужской
Образование: незаконченное высшее"

Ты хоть наш родной родной город не позорь!!!


 
antonn ©   (2006-03-31 20:13) [70]

oldman ©   (31.03.06 19:39) [69]
ну студент, что такого? у меня тоже незаконченное пока еще, дык я 1984:)


 
DevilDevil ©   (2006-03-31 20:56) [71]

> Ты хоть наш родной родной город не позорь!!!
Простите, не понимаю Вашей реплики.
По моему, прославляю. Но тема не об этом!

Если хотите обсудить, заведите, пожалуйста, отдельную тему


 
Gero ©   (2006-04-01 00:20) [72]

> [54] DevilDevil ©   (31.03.06 14:34)


> И что, ты типа считаешь, плохой пример?

Не знаю, других примером я не видел сравнивать не с чем. Но это уродство. И вовсе не потому что типа чисто канкретно.

> Ты же не считаешь, что прямоугольный вариант лучше?!

Еще и как считаю.

> Советую получше рассмотреть пример. Как минимум, проявить
> уважение к проекту. Он того заслуживает

Я сам решу к чему мне проявлять уважение, а к чему нет, договорились?

Ты со временем сам поймешь, что то, что делаешь, и что об этом говоришь, просто смешно и нелепо. Надеюсь, что поймешь.


 
McSimm ©   (2006-04-01 00:49) [73]

Есть предложение.

Сказано уже достаточно много, изменений во взглядах спорящих не предвидется, поэтому есть предложение снизить накал дискуссии до температуры забортной воды а еще лучше остаться в ветке только сторонникам проекта и пусть время и спрос сами решат что им положено решить и объяснят все, что требуется объяснить.

В качестве бонуса - всем участникам по медальке :)
http://www.delphimaster.ru/screp.exe


 
Gero ©   (2006-04-01 00:51) [74]

> [73] McSimm ©   (01.04.06 00:49)


> http://www.delphimaster.ru/screp.exe

Класс :))


 
Gero ©   (2006-04-01 00:52) [75]

> [73] McSimm ©   (01.04.06 00:49)

Неужели Delphi установил? :)


 
McSimm ©   (2006-04-01 00:53) [76]

Этой медали в обед - ыдцать лет


 
Джо ©   (2006-04-01 00:55) [77]

Ай, красота :)

Все, больше в этой ветке не флужу, сорри.


 
Zeqfreed ©   (2006-04-01 01:33) [78]

Однако, приятно зайти в свою анкету и прикрепить медальку на должное место :))


 
DevilDevil ©   (2006-04-01 02:46) [79]

> McSimm ©   (01.04.06 00:49) [73]

Спасибо, что вмешался.
Несмотря на мои просьбы прекращать, толку не было.
Уважение к администратору всё-таки больше.

Медаль прикольная

Если всё-таки есть Мастер(а), которого(ых) заинтересовало развитие утилиты, готовый(ые) продолжать работу со мной, напиши(те)

P.S. жалко, что народ почему-то так и не понял, что моя утилита как раз и предназначена для упрощения программирования таких прикольных программ


 
antonn ©   (2006-04-01 07:13) [80]

DevilDevil ©   (01.04.06 2:46) [79]
P.S. жалко, что народ почему-то так и не понял, что моя утилита как раз и предназначена для упрощения программирования таких прикольных программ

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


 
GrayFace ©   (2006-04-01 08:27) [81]

KSergey ©   (29.03.06 9:38) [10]
RLE?

Нее. RLE - это криво. Лучше по-своему.

Но нафиг делать dll и программу Region Maker? Это же тихий ужас! Надо делать обычный компонент с загрузкой битмэпки для региона (который будет хранится в компактном формате).
А вообще, проект слишком маленький, чтобы его несколько людей разрабатывало.


 
DevilDevil ©   (2006-04-01 08:42) [82]

А битовая маска перед регионом имеет огромный плюс - ее можно не геморройно изменять в процессе работы программы, и, соотвественно, менять регион.

такая возможность будет, читай лучше.
хранение в файле удобно скоростью и размером.

Но нафиг делать dll и программу Region Maker? Это же тихий ужас! Надо делать обычный компонент с загрузкой битмэпки для региона (который будет хранится в компактном формате).

то же самое

А вообще, проект слишком маленький, чтобы его несколько людей разрабатывало.
это на данный момент он маленький. А чтобы был удобный и функциональный, надо больше


 
OSokin ©   (2006-04-01 21:04) [83]

А вообще, хочу тебя поддержать. Намыль, если взаимно.


 
GrayFace ©   (2006-04-04 09:32) [84]

> то же самое
Не понял.

> это на данный момент он маленький. А чтобы был удобный и
> функциональный, надо больше

Чтобы он был удобный надо меньше.


 
DevilDevil ©   (2006-04-04 20:06) [85]


> GrayFace ©   (01.04.06 08:27) [81]

По поводу битмапки: такие компоненты уже есть, они медленны и занимаю много места (даже в однобитовом формате пикселя). Хотя быстрое получение региона в рантайм тоже необходимо, и, в дальнейшем, будет поддержано в модуле. От идеи dll я отказался. Прочитай мои ответы ветки, если возникнут вопросы


 
GrayFace ©   (2006-04-05 12:27) [86]

Введи тип регион, зарегестрируй на него редактор, создающий регион из битмэмки и все. А хранишь ты по строкам со "схлапыванием" повторяющихся цепочек?


 
mlm68 ©   (2006-04-05 21:39) [87]

Зачем непрямоугольные формы на прямоугольном мониторе?
Прямоугольные намного приятнее ИМХО.


 
Ketmar ©   (2006-04-05 23:32) [88]

>DevilDevil ©   (31.03.06 01:52) [46]
apLib не мой, а Jibz"а. http://www.ibsensoftware.com/
WDXPack тоже от Jibza, но дать не могу в силу лицензионных ограничений. жмут примерно одинаково (WDXPack чуть-чуть похуже, зато в исходниках %-).

по поводу кода: в апи есть функция GetFileSize(). %-) всё-всё, больше не буду -- см. ниже.

тесты: WDXPack сжал "гипер" в 6379 байтиков. после некоторой оптимизации структуры она (структура) в непожатом виде стала занимать ~2 кб. в пожатом -- ~1.5.

вопрос: есть ли смысл заморачиваться с компрессией?

оценку качества кода я не буду делать. предположу, что автор его сваял за 5 минут -- просто чтобы показать алгоритм.


 
DevilDevil ©   (2006-04-06 00:50) [89]

GrayFace ©   (05.04.06 12:27) [86]
Введи тип регион, зарегестрируй на него редактор, создающий регион из битмэмки и все. А хранишь ты по строкам со "схлапыванием" повторяющихся цепочек?


На сегодняшний день моя утилита отстаёт от твоего варианта на шаг регистрации формата *.rgn, делается это за 10 минут. Планирую сделать намного функциональнее, но, похоже, это мало кого интересует, а одному не справиться. Все алгоритмы сжатия 2цветных изображений на RLE основе

тесты: WDXPack сжал "гипер" в 6379 байтиков. после некоторой оптимизации структуры она (структура) в непожатом виде стала занимать ~2 кб. в пожатом -- ~1.5.
Распиши, пожалуйста, по подробнее, о какой структуре идёт речь

оценку качества кода я не буду делать. предположу, что автор его сваял за 5 минут -- просто чтобы показать алгоритм.

обижаешь. Прошло много времени, прежде, чем додумался до именно этого алгоритма, пару дней писал в тетради, два дня програмил, сразу же задал тему форума. Считаю, это быстро. Всё с учётом того, что ReadRegion.pas привёл в порядок + переписал на WinAPI


 
DevilDevil ©   (2006-04-06 00:57) [90]


> Ketmar ©   (05.04.06 23:32) [88]

До модуля SaveRegion, как ты видишь,  руки не дошли


> вопрос: есть ли смысл заморачиваться с компрессией?

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


 
Ketmar ©   (2006-04-06 01:15) [91]

2DevilDevil
>о какой структуре идёт речь
о той структуре, в которой хранится информация о регионе.

>Прошло много времени, прежде, чем додумался до именно этого алгоритма
так никто не спорит с тем, сколько там прошло. просто код производит впечатление "сырого".

>зачем ... KOL
имо там, где есть скинованые формы, лишние пару кб никакой роли не играют.

>в твоём случае это не понадобилось
неправда. в ТВОЁМ случае. ТОБОЙ приведённом.

>существует спортивный интерес
так с этого и начинал бы.


 
antonn ©   (2006-04-06 09:48) [92]

DevilDevil ©   (06.04.06 0:57) [90]
Для пользователя разницы использования утилиты нет, а пару сэкономленных килобайт могут быть приятны.

В машиностроении (да и думаю не только в ней) при создании и внедрении чего либо есть такая штука, как "техническое предложение". В нем обычно описывают плюсы "объекта", область применения и, главное, обоснование целесообразности внедрения. Так вот, попробуйте прикинуть ТП применительно к своей программе. Только не обманываться "простотой и легкостью создания непрямоугольных окошек", это, вообщето, не так уж и трудно. На мой взгляд, никакой простоты и автоматизации для "обычного" пользователя она не несет, в виду того, что это отдельный продукт (с управления которым нужно разобраться), главная направленность - регионы, которые для скинабельного интерфейса почти не применяются, а где еще они нужны, мне так и не сказали.
Для скинованного окна разница в размере 2-5Кб разницы, обычно, никакой не несет. Куда важнее предусмотреть для разработчика самого скина легкость его создания (скина). Поэтому можно поступить проще - использовать 32х битный битмап, в котором альфакал и является маской (плавной или "однобитной" - не важно), и сразу является "лицом" приложения, изготовить такой битмап проблем нет - фотошоп/корел есть почти у всех, кто увлекается "рисованием" (а в последних версиях появился вообще TransparentColor у формы, который сам задает регион по определенному цвету - хватит и самого "обычного" битмапа, только положить на форму его). Дальше нужен только пакер (или вообще ненужен, если OpenSource:)), zlib справляется хорошо, т.к. файл скина обычно вмещает и картинки и данные для их использования. А для передачи по сети есть архиваторы. Думаю, с хранением на винчестере проблем нет, поэтому увлекаться с упаковной смысла нет. А теперь представьте, что разработчику скинов нужно будет осваивать (и использовать, вместо привычного корела) ваш продукт - лишняя суета, заморачиваться с какимим то регионами...
Т.ч. "смените цель" вашего проекта, на "нестандартные окна" он уже устаревает, придумайте что либо другое, где можно применить эту архивацию (а то к концу ветки возникает ощущение, что все силы были направленны на архивацию, а область ее применения не продумана изначально (т.к. сейчас она уже устарела)), если так хочется продвигать его...

> Ну, и существует спортивный интерес, почему бы и нет
ну это уже другое дело:)


 
GrayFace ©   (2006-04-06 09:58) [93]

DevilDevil ©   (06.04.06 00:50) [89]
GrayFace ©   (05.04.06 12:27) [86]
Введи тип регион, зарегестрируй на него редактор, создающий регион из битмэмки и все. А хранишь ты по строкам со "схлапыванием" повторяющихся цепочек?

На сегодняшний день моя утилита отстаёт от твоего варианта на шаг регистрации формата *.rgn, делается это за 10 минут. Планирую сделать намного функциональнее, но, похоже, это мало кого интересует, а одному не справиться. Все алгоритмы сжатия 2цветных изображений на RLE основе


Ты не понял. Не расширение, а тип в Дельфи. Создаешь тип TRegion, создаешь редактор, который просто преобразует в него картинки и вызываешь RegisterPropertyEditor. Больше ничего не надо.


 
DevilDevil ©   (2006-04-07 19:26) [94]

> antonn ©   (06.04.06 09:48) [92]
думаю, можно на "ты"


> лишние пару кб никакой роли не играют


приложения разные бывают. Зачем писать в Дельфи под WinAPI & KOL? У каждого свои причины, но в этом случае жалко каждый лишний килобайт. Разница 2-5кб невелика, в 15кб уже заметна. Когда идёт речь о мегабайтах (jpg->bmp), разница заметна, как не сжимай пакерами. Нет, я не так сдвинут на размере, как можно подумать. Именно это я имел ввиду, когда говорил о спортивном интересе.

antonn, вроде ты давал ссылку на проект, чего регионами не сделаешь. Отличный пример, но регионы не так сильно тормозят. Кроме того, в Win98 эта штука не покатит, а регионы работают.

Говоришь, регионы устаривают. Ну возьми Windows Media Player - регионы. Возьми медальку, которую дали в качестве бонуса - чистый регион.

Не для всех программ лучше использовать мою утилиту с модулями, но для многих удобна. Вообще плюсы моего методы описаны в вопросе[0]. Ну а если не захочешь пользовать утилиту, а захочешь в реал тайм из битмапа, то можно будет воспользоваться БЫСТРОЙ функцией опять таки из моего модуля (будет, пока нет). Вот так


> Ketmar ©   (05.04.06 23:32) [88]
> тесты: WDXPack сжал "гипер" в 6379 байтиков. после некоторой
> оптимизации структуры она (структура) в непожатом виде стала
> занимать ~2 кб. в пожатом -- ~1.5.

Распиши, пожалуйста, поподробнее, как тебе удалось изменив структуру получить 2кб

А вообще, у меня хорошая новость: OSokin решил мне помочь с разработкой утилиты. Надеюсь, мы напишем

> GrayFace ©   (06.04.06 09:58) [93]
Я не так крут в разработке компонентов, как ты. Напиши TRegion на основе моих модулей, будет лучше


 
Хозяин   (2006-04-07 19:37) [95]

а каков круг задачь где могут пригодится вот такие формы?


 
Gero ©   (2006-04-07 19:37) [96]

> DevilDevil ©   (07.04.06 19:26)

Эх, твою бы энергию, да в нужное русло...


 
Palladin ©   (2006-04-07 22:56) [97]

мда...

по сути, в чем проблема нормального пользователя с "регионными программами" и опчему кроют авторов матом?

ответ прост. делов том что форму монитора регионами не изменишь, он как был прямоугольный, так и остался. сознание противится n-угольным впуклым элементам управления.

грамотные люди никогда не построют форму из двух треугольников и одного эллипса. они не больные. и воспроинимают все со здравым смыслом.

пользователи делятся на баранов, барано-гамлетов и гамлетов.

бараны - тупо смотрят на картинку на мониторе, то что некоторые части картинки очень похожи на буквы и им в голову не приходит. (отстрел :) ) ждем "программиста"

барано-гамлеты - смотрят на картинку, но мысль прорывает оковы, правда не в том направлении, глупость совершается, ибо буквосочетание прочитано, но смысл не осознан, ждем "программиста"

гамлеты - везде тени папы, страшно, интересно, творим, жмем, думаем, неполучается, ждем "программиста", что бы исправить результаты мышлений и опытов

ни одна из этих категорий пользователей адекватно воспринять откровенно непрямоугольные окна не сможет.

я как пользователь воспринял только одно, windows media player, да и то, при работе с мышью он восстанавливает свою прямоугольную сущность, чем меня немного и примерИл с собой...


 
DevilDevil ©   (2006-04-07 23:32) [98]


> Хозяин   (07.04.06 19:37) [95]
> а каков круг задачь где могут пригодится вот такие формы?

Всё зависит от фантазии программиста. Теоретически - везде. Практически - кто где использует.


> Gero ©   (07.04.06 19:37) [96]
> Эх, твою бы энергию, да в нужное русло...

Да уж кто бы говорил. Результаты твоей энергии - вопросы типа ввв, ddd, ddddd, dd... просто блещут интелектом.
Gero, ты уже высказал своё отрицательное мнение по поводу моей утилиты. Зачем бобавлять реплики? У каждого своё мнение. Твоё выслушено и обдумано.

С уважением


> Palladin ©   (07.04.06 22:56) [97]

Благодарю за грамотную критику

Здесь есть вот какой момент. У всех разные вкусы, разное восприятие мира. Предполагаю, тебя больше устраивает (в плане дизайна) Winamp, нежели Windows Media Player. Но, поверь мне, далеко не все предпочитают первый продукт. Причём, далеко не в последнюю очередь из-за необычного дизайна. Да и вообще, грамотно продумманный дизайн продукта, бренда и других выделяющихся вещей, НИКОГДА не будет примитивен. Другими словами, там не будут использовать слишком простые шрифты, и уж тем более, если продукт располагает к необычной форме окна, разработчики этого момента не упустят


 
Ketmar ©   (2006-04-07 23:34) [99]

>DevilDevil ©   (07.04.06 19:26) [94]
хинт: редко когда окна бывают размерами поболее, чем 32768x32768. а хранят координаты в 4-х байтах. можно и дальше, но уже это даёт кое-что. и нехило даёт. раз этак в 8 -- кувырк! потому есть хорошая книга: "алгоритмы+структуры данных=программы" (выделение моё).


 
Джо ©   (2006-04-07 23:47) [100]

> Другими словами, там не будут использовать слишком простые
> шрифты

Ну, смежно же, правда :)


 
vrem   (2006-04-08 08:48) [101]

> везде тени папы, страшно, интересно,
:))


 
antonn ©   (2006-04-08 09:07) [102]

DevilDevil ©   (07.04.06 19:26) [94]

смотря какой - в висте он уже на

> antonn, вроде ты давал ссылку на проект, чего
> регионами не сделаешь. Отличный пример, но регионы не
> так сильно тормозят. Кроме того, в Win98 эта штука не
> покатит, а регионы работают.

а мой проект тормозит? (просто у меня нет:)), а про Win9x - они уходят в прошлое, а там где еще используются, обычно не до красивых форм (ну в сберкассах, в институтах(там вообще за красоту "съедят")).


> Говоришь, регионы устаривают. Ну возьми Windows Media Player - регионы.

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


> Возьми медальку, которую дали в качестве бонуса -
> чистый регион.

а что за медалька? :)
может авторы просто не сталкивались с альфаканалами, а с регионами примеров полно. Да и для совместимости с Win9x...


> Всё зависит от фантазии программиста. Теоретически -
> везде. Практически - кто где использует.

ну а все таки? не просто регионы - а именно их хранение (ну сжатие там...), регионы можно и динамически генерить.


 
GrayFace ©   (2006-04-08 16:01) [103]

> antonn ©   (06.04.06 09:48) [92]
> (а в последних версиях появился вообще TransparentColor
> у формы, который сам задает регион по определенному цвету
> - хватит и самого "обычного" битмапа, только положить на
> форму его).

Если цвет в настройках экрана < 32bit, то такая прозрачность может не работать.


> DevilDevil ©   (07.04.06 19:26) [94]

> > GrayFace ©   (06.04.06 09:58) [93]
> Я не так крут в разработке компонентов, как ты. Напиши TRegion
> на основе моих модулей, будет лучше

Я редакторами свойств тоже пока не занимался. Но этот путь должен быть лучше и по простоте, и по удобству. Писать, наверное, не буду - и так много планов. А модуль посмотрю.

Кстати, а как у окна менять альфаканал, если это возможно?


 
Ketmar ©   (2006-04-08 16:14) [104]

>GrayFace ©   (08.04.06 16:01) [103]

> Если цвет в настройках экрана < 32bit, то такая прозрачность
> может не работать.

будет работать, будет. только надо не забывать про PixelFormat и про то, что в 15/16 bpp значение цвета зачастую совсем не такое же, как в 32 bpp. столкнулся с этим, когда делал screenmate. вроде бы очевидная вещь, а предусмотреть забыл. %-)


> как у окна менять альфаканал, если это возможно?

SetLayeredWindowAttrbutes(). и меня тут ткнули носом в функцию, которой я года 4 не мог заметить %-): UpdateLayeredWindow(). которая сложнее, но мощнее.


 
antonn ©   (2006-04-08 17:32) [105]

GrayFace ©   (08.04.06 16:01) [103]
Кстати, а как у окна менять альфаканал, если это возможно?

менять нужно альфакал у битмапа, который будет выводиться.
я scanline"ом меняю:) другого метода не знаю просто:)

Ketmar ©   (08.04.06 16:14) [104]
SetLayeredWindowAttrbutes(). и

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

а вот еще вопросец - помнится когда то в св-вах рабочего стола можно было цветность выставить на 16 бит и 24. Сейчас у меня только 16/32. Как можно провернуть такое дело, что бы на 24 было тоже? а то в одной проге с использованием альфаканала странное изображение у некоторых пользователей... протестить хотел бы.


 
Ketmar ©   (2006-04-08 18:28) [106]

>antonn ©   (08.04.06 17:32) [105]
SLWA() очень часто вполне достаточно. там есть ещё ColorKey. мне для screenmate этого хватило с головой. как и для многих других вещей. %-)

а с ULW() я сам ещё не шибко. %-) судя по всему, таки только весь битмап. но тут доверять мне не советую. %-)

>
> можно было цветность выставить на 16 бит и 24

это зависит от драйверов и видюхи, afaik. если и д. и в. %-) поддерживают -- будет. иначе -- опаньки. некоторые видюхи не держат 24bpp именно драйверно (что логично: 32bpp удобнее %-).
так что тут только искать того, у кого эти штуки есть. или писать "универсал" и молиться/материться (нужное подчеркнуть %-).



Страницы: 1 2 3 вся ветка

Форум: "Прочее";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.82 MB
Время: 0.015 c
1-1143046865
Gear
2006-03-22 20:01
2006.04.30
RxRichEdit и линки


15-1144295698
Карелин Артем
2006-04-06 07:54
2006.04.30
Выбор MP3-плеера. На какие параметры смотреть?


2-1144922308
Сергей И
2006-04-13 13:58
2006.04.30
Кто занет как изменить рисунок при запуске WINdows?


2-1144815500
pavel_guzhanov
2006-04-12 08:18
2006.04.30
Как найти последний пробел в строке


3-1141715751
neat
2006-03-07 10:15
2006.04.30
Обновление грида после Update





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский