Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26066
Рейтинг: 2120
#61: 2010-04-04 18:29:37 ЛС | профиль | цитата
Mihail88 писал(а):
Перепроверил скопировав в новое окно код и вот там уже мелькания появлялись

Да убрал я уже моргания, обновиться надо
Mihail88 писал(а):
AlphaBlendValue работает если в TransparentMode = Multi

Это и в примере видно, что работает, особенно если покрутить колесо мыша
карма: 22

0
Ответов: 57
Рейтинг: 4
#62: 2010-04-04 19:24:30 ЛС | профиль | цитата
nesco
Это просто уточнение было, я и не замечал мелькание больше, но все равно ещё раз запустил твой пример и SVN обновил на всякий случай. Так вот моргания остались, но это дело в схеме скорей всего. Почему то мой пример не моргает http://hiasm.com/forum_serv.php?q=56&id=1307.

Про AlphaBlendValue, я имело виду, он не работает если TransparentMode = Single
карма: 0

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#63: 2010-04-05 02:31:34 ЛС | профиль | цитата
Mihail88 писал(а):
Про AlphaBlendValue, я имело виду, он не работает если TransparentMode = Single

Уже все работает. Вы за мной, просто, не поспеваете.

На SVN доступен новый компонент Img_AlphaBmp и под него подстроен Resize и PNG. Пример использования в wiki Img_AlphaBmp

Вместо Resize, для преобразования образа из потока в данные, можно использовать компонент Bitmap, он тоже поддерживает формат хранения картинок pf32bit

PNG можно использовать для формы, так же, как ImageLoader и PictureStream, последний, при загрузке картинок в формате BMP pf32bit

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

карма: 22

1
Голосовали:Konst
Ответов: 57
Рейтинг: 4
#64: 2010-04-05 11:57:58 ЛС | профиль | цитата
nesco писал(а):
Уже все работает. Вы за мной, просто, не поспеваете.

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

1
Голосовали:nesco
Разработчик
Ответов: 26066
Рейтинг: 2120
#65: 2010-04-05 13:18:46 ЛС | профиль | цитата
Mihail88, да не, все нормально. Я случайно наткнулся сам на этот баг, вот и убрал его сразу же.
И все это не гонка и никогда ее не была, вы быстренько скачиваете версию для проверки, а я в это время тестирую все дальше и если нахожу баг, то тут же его пытаюсь исправить и обновить SVN. Естественно, что вы отстаете в версии, ничего тут такого страшного нет. Еще раз, спасибо, что подтвердил и протестил
------------ Дoбавленo в 13.18:
Кому надо, то вот пример конвертора из PNG в BMP pf32bit для использования в формах


Add(MainForm,2953706,273,259)
{
Width=307
Height=54
Caption="Convertor PNG to BMP pf32bit"
BorderStyle=4
Position=1
}
Add(PictureStream,11971268,602,210)
{
link(FileName,1433806:GetData,[])
}
Add(ImageLoader,16043584,441,210)
{
DrawSource=2
link(onLoad,16043584:doDraw,[(486,216)(486,200)(429,200)(429,223)])
link(onDraw,14780770:doResize,[])
}
Add(Resize,14780770,518,217)
{
AlphaMode=0
Point(Result)
link(onResult,9016264:doEvent1,[])
link(Width,16043584:ImageWidth,[(531,205)(493,205)(493,254)(454,254)])
link(Height,16043584:ImageHeight,[(538,205)(500,205)(500,254)(461,254)])
}
Add(ODialog,1561105,322,210)
{
Filter="PNG Files (*.png)|*.png"
link(onExecute,4048965:doValue,[])
}
Add(Memory,4048965,378,210)
{
link(onData,16043584:doLoad,[])
}
Add(FilePartElm,4544794,651,161)
{
Mode=0
Point(Part)
link(onPart,6495961:doPart,[])
link(FileName,6814744:Var2,[])
}
Add(FilePartElm,6495961,693,161)
{
Mode=2
link(onPart,10481527:doString,[])
link(FileName,6814744:Var3,[(699,149)])
}
Add(FormatStr,10481527,735,161)
{
Mask="%1%2.bmp"
link(onFString,1433806:doData,[(779,167)(779,141)(590,141)(590,167)])
link(Str1,4544794:Part,[(741,149)(710,149)(710,204)(657,204)])
}
Add(Button,7467429,273,210)
{
Width=301
Height=30
Align=5
Font=[Arial,12,1,0,204]
TabOrder=-1
Caption="Convert"
link(onClick,1561105:doExecute,[])
}
Add(EventFromData,1433806,602,161)
{
link(onEvent,4544794:doPart,[])
}
Add(GetDataEx,6814744,651,144)
{
Angle=3
link(Data,4048965:Value,[(421,149)(421,253)(384,253)])
}
Add(Message,8531762,602,252)
{
Message="Convertor PNG to BMP pf32bit"
Caption="Convert PNG to BMP pf32bit"
Icon=4
}
Add(Hub,9016264,560,217)
{
link(onEvent1,11971268:doSave,[])
link(onEvent2,8531762:doMessage,[(588,230)(588,258)])
}
карма: 22

0
Ответов: 4641
Рейтинг: 334
#66: 2010-04-05 13:34:59 ЛС | профиль | цитата
nesco писал(а):
PNG в BMP pf32bit

ха... теперь помнить надо что для AlphaMode используем Resize
nesco, не в обиду сказано, но это как то не логично.

------------ Дoбавленo в 13.34:
единственное спасает
nesco писал(а):
Кому надо, то вот пример конвертора

карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26066
Рейтинг: 2120
#67: 2010-04-05 13:57:50 ЛС | профиль | цитата
Ravilr писал(а):
теперь помнить надо что для AlphaMode используем Resize

Ну когда ты научишься мои посты читать
nesco писал(а):
Вместо Resize, для преобразования образа из потока в данные, можно использовать компонент Bitmap, он тоже поддерживает формат хранения картинок pf32bit

В данном примере используется ImageLoader, который не выдает картинок в формате DIB, а выдает картинки в формате DDB (устройство зависимый Bitmap в формате pfDevice) и только для него и используется Resize. Но только ImageLoader позволяет читать картинки PNG после компиляцией твоим любимым FPC. Компонент PNG не работает под FPC из-за сложности портирования KOL библиотеки KOLZLIB.

Ravilr писал(а):
теперь помнить надо что для AlphaMode используем Resize

Еще раз перечитай мой пост, там все расписано "для особо внимательных". Можешь добавить в Wiki, если захочешь. На данный момент не предвидеться переделка остальных компонентов в поддержку формата Alpha-прозрачности. И вообще, Alpha-прозрачность предусмотрена для создания красивых интерфейсных приложений, а не для редакции этих картинок в этом формате. Для этого есть более мощные приложения, заточенные специально для этих целей, и сделать такое приложение, как PhotShop в HiAsm-e будет, весьма, проблематично

И мне совершенно непонятен твой скепсис по этому вопросу. Народ оценил и, весьма, неплохо данную фичу, а почему ты пытаешься найти какие-то подводные камни, мне совсем непонятно какие-то подводные камни, мне совсем непонятно
Или специально для Ravilr-а мне надо создать конвертор DDBtoDIB (или ConvertToAlpha), который будет повторять код компонента Resize
карма: 22

0
Ответов: 4641
Рейтинг: 334
#68: 2010-04-05 14:49:18 ЛС | профиль | цитата
nesco писал(а):
Ну когда ты научишься мои посты читать

почему то ты всегда думаешь что я посты не читаю...а нет, читаю.

nesco писал(а):
и только для него и используется Resize

я не против Resize, я говорю что логично для тебя, нелогично для других.

nesco писал(а):
а почему ты пытаешься найти какие-то подводные камни

да не ищу я.... "забей"

nesco писал(а):
и под него подстроен Resize

nesco, мне только одно не понятно почему именно Resize ?
Понятно.... что посмотрел примеры и увидел применение итд, но как незнающий, который пытается попробовать данную фичу... открываю пример из Img_AlphaBmp и чешу репу и думаю....а при чем тут Resize. Думаю думаю и так и не понимаю как это HiAsm работает, когда логическая связь не прослеживается.


карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26066
Рейтинг: 2120
#69: 2010-04-05 17:07:07 ЛС | профиль | цитата
Ravilr писал(а):
а при чем тут Resize

Я так подумал, а правда, причем Сейчас все сделаю по-другому
------------ Дoбавленo в 17.07:
Создал отдельную вкладку и отдельные компоненты для работы с Alpha-каналом
карма: 22

1
Голосовали:Ravilr
Ответов: 4641
Рейтинг: 334
#70: 2010-04-05 17:32:29 ЛС | профиль | цитата
nesco писал(а):
wiki Img_AlphaBmp

пример не забудь изменить
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26066
Рейтинг: 2120
#71: 2010-04-05 17:49:39 ЛС | профиль | цитата
Ravilr писал(а):
пример не забудь изменить

Изменил уже, сразу же. Че, не прописался, что ли
карма: 22

0
Ответов: 4641
Рейтинг: 334
#72: 2010-04-05 17:51:26 ЛС | профиль | цитата
пример в вики какой был такой и остался.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26066
Рейтинг: 2120
#73: 2010-04-05 18:00:17 ЛС | профиль | цитата
Ravilr писал(а):
пример в вики какой был такой и остался

Да не может такого быть. Только что переделал вообще всю вкладку и пример тупо скопировал. Он именно тот, который рассчитан на новые компоненты. И там должен быть именно AlphaResize, он растягивает картинки под экран. А второй пример, тот, который с конвертором, тот переделан на AlphaBitmap, вместо AlphaResize
карма: 22

0
Ответов: 4641
Рейтинг: 334
#74: 2010-04-05 18:27:54 ЛС | профиль | цитата
nesco писал(а):
Да не может такого быть

все понял в чем казус. Я то ссылку на вики беру из этого поста!
А ты в вики создал новую вкладку, а старое описание где то на сервере завалялось....
Вот и вижу я старый пример.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26066
Рейтинг: 2120
#75: 2010-04-07 01:43:43 ЛС | профиль | цитата
Хочу презентовать вам пример построения Custom MultiLayer формы. Это полноценный пример, демонстрирует возможности и может быть использован как основа построения такого вида форм. В примере все: и иконки, и текст, и кнопки -- все отрисовано при помощи свойств формы и применении альфа-канала

Скриншот примера



Сам пример в прищепке
карма: 22

3
файлы: 2example_meltilayer_forms_001.png [33.4KB] [647], example_multilayer_forms_001.sha [106.2KB] [418]
Голосовали:sla8a, Konst, Genius
Сообщение
...
Прикрепленные файлы
(файлы не залиты)