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

Вниз

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

 
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.69 MB
Время: 0.018 c
3-1141732338
ANB
2006-03-07 14:52
2006.04.30
Выбрать строку с максимальной датой


2-1144674560
Михаил (Киров)
2006-04-10 17:09
2006.04.30
Перетаскивания


1-1143199030
pavlov
2006-03-24 14:17
2006.04.30
Свернута ли форма?


2-1144846419
Dyakon_Frost
2006-04-12 16:53
2006.04.30
Проблема с MessageDlg!


15-1144330086
NightLord
2006-04-06 17:28
2006.04.30
Неожиданный поворот событий





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский