Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 4698
Рейтинг: 426
#166: 2010-10-24 16:47:58 ЛС | профиль | цитата
Бета версия компонентов Type_RW и Type_CreateFromList. После проверки на баги будет залито на svn.
[burl=/getfile/21224]Скачать[/burl]

P.S: прилагается тестовая схема в архиве
карма: 10
1
файлы: 1types_components.rar [4.7KB] [315]
Голосовали:pardon
Ответов: 413
Рейтинг: 57
#167: 2010-10-24 21:30:55 ЛС | профиль | цитата
Assasin писал(а):
Type_RW
Этот компонент позволяет записывать в значения переменных файлы не используя
Assasin писал(а):
дырку в заборе
, или это в компоненте не реализуемо в принципе?
Assasin писал(а):
Type_CreateFromList
работа с ним аналогична работе с компонентом Type_Create?
Есть ли у этих компонентов особенности, какие-то нюансы, ограничения?

Можно ли в компонентах type, в качестве имен переменных использовать:
-кириллицу,
-строки вида: D:... ..
..,
-символы: !"№#@$%^&*=+-

Можно ли в type, в качестве переменной, использовать другой type?
карма: 0

0
Разработчик
Ответов: 4698
Рейтинг: 426
#168: 2010-10-25 13:55:40 ЛС | профиль | цитата
Poputchik писал(а):
Этот компонент позволяет записывать в значения переменных файлы не используя
Assasin писал(а):
дырку в заборе
, или это в компоненте не реализуемо в принципе?

Нет, не позволяет, без
Assasin писал(а):
дырку в заборе
не обойдется. Сделать это в компоненте возможно, но проблематично.
Poputchik писал(а):
работа с ним аналогична работе с компонентом Type_Create?
Есть ли у этих компонентов особенности, какие-то нюансы, ограничения?

Type_CreateFromList идентичен Type_Create, просто вместо свойства Vars будет верхняя точка для задания списка.
Type_RW взят по шаблону из Array_RW, только надо ему не Array на точку кидать, а соединять напрямую с Type (это видно из тестовой схемы), + несколько полезных точек, которых не хватает в Array_RW
Poputchik писал(а):
Можно ли в компонентах type, в качестве имен переменных использовать:
-кириллицу,
-строки вида: D:... ..
..,
-символы: !"№#@%b5#x0025;^&*=+-

Да хоть юникод (только все-равно 1 символ будет равен 1 байту, а не 2-ум, как в юникоде)
Poputchik писал(а):
Можно ли в type, в качестве переменной, использовать другой type?

Таааакс... кто-то невнимательно слушал, я выше писал, что переменная может принимать любое значение потока (или с верхней точки), в потоке передается указатель на тип, а следовательно... Единственное что, так это для задания типа в качестве переменной типа нужно будет опять юзать
Assasin писал(а):
дырку в заборе
, иначе все переменные, содержащие тип, будут указывать на один и тот же тип.
карма: 10
1
Голосовали:Poputchik
Ответов: 413
Рейтинг: 57
#169: 2010-10-25 13:59:34 ЛС | профиль | цитата
Спасибо за исчерпывающий ответ!
карма: 0

0
Разработчик
Ответов: 4698
Рейтинг: 426
#170: 2010-10-25 15:40:42 ЛС | профиль | цитата
Компоненты Type_RW, Type_CreateFromList доступны по SVN
карма: 10
0
Ответов: 413
Рейтинг: 57
#171: 2010-10-29 01:14:16 ЛС | профиль | цитата
1. Загонял в тип изображения и в дальнейшем извлекал по следующему способу (Возможно можно проще):
code_21294.txt
При повторном создании типа, в примере видно, нельзя задавать имя типа с цифрами - выдает ошибку.

2. При написании этого вопроса хотел сделать наглядный пример, но он не работает.

Add(MainForm,2953706,245,217)
{
link(onCreate,4966982:doCreate,[])
}
Add(Image,14922626,553,217)
{
Width=164
Height=314
}
Add(Hub,9233413,448,231)
{
link(onEvent1,7905667:doLoadFromStream,[])
link(onEvent2,7905667:doBitmap,[])
}
Add(Type_Save,671244,392,231)
{
link(onConvert,9233413:doEvent1,[])
link(GType,4966982:FType,[(398,219)(366,219)(366,275)(335,275)])
}
Add(Type_Create,4966982,329,231)
{
Vars=#8:%Image2%|
Name="Image"
link(onCreate,671244:doConvertToStream,[])
link(%Image2%,9630065:Bitmap,[])
}
Add(PNG,9630065,329,175)
{
PNG=[ZIPAD02000078DA01AD0252FD89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF610000000467414D410000AFC837058AE90000001974455874536F6674776172650041646F626520496D616765526561647971C9653C0000023F4944415478DAA452CF6B134114FE366C69AC2915118A1E5AF4207A496AC71E8A104AF5201241945EFA07E4A0D083208A978D378FD29B7BF262A1044BA1453C94925A3C999144413187283D24484BBAA1E9E677D7F75E7EB48B4707BE7D33DFBCEFEDCCF7C6F05E438646DC437728D8068504C1EA522FBAEB7F46A0D562451CAEEB42C53A91B804C1629EC173E67AEB133C028D06156854E094CB28E6B444E22CF3DA3CB46D0B78CE9CBB6D2738B707D6066A352A502DA1EC382850811B836B180ADF867EB384FC5C5AC073E628D72A6D2D25F257DE8A86B566AD4E050E77E9E8C0F9A28DB3930A7AF983081FDC5472CF774803CBD7E98A0A852FDA0A2E9245932AC15A23FF4C72C4B08B1363D09B3B22BE37AB7C66AD6E6A5C4A5291D931FCCAECF48D35E91822BE1A09F5C5776714DA477EB7995BE3937091E9107E642BD22123F3105E24426DD410F19DE8F19F5BAE0327B78DBDCCBAACCF4DC4A0F7CF607C250A4569D96CB78D3DB188E8CFEF3F6A89BBDFB7D0287C93F632781E1E2E758C258DB491EF62AB34A2D3641EB1B536FA71EFE7278C8C8EA35671043C678E7359C35AC3F33CD81A5EEC32706118281C1CC7AF8BF731756BCEE7C5E78D24C20B2B58CF017105834F20AF8F4D4B6E685FAC56ABF89D4DE1F9A3791C940A02E6788F35F294F9C38FA8ED758E7E32727230348285C74F70B8FF472005BC8EA65F809FEF11912F9FC67DB15EAFD3DDCB3E30C77BACE16176AF907AB59A99391D1C4088716A00438326BC6613C562D1E7419338CA45BDD94EC93B6013FF67FC156000DC406A9D7952D0AB0000000049454E44AE4260821C4D3870]
Point(Bitmap)
}
Add(PNG,7905667,504,217)
{
Point(Bitmap)
Point(doLoadFromStream)
Point(doBitmap)
link(onBitmap,14922626:doLoad,[])
}


Похоже ошибка при преобразовании файла в стрим. Или так (такие) нельзя в тип добавлять данные?
карма: 0

0
файлы: 1code_21294.txt [1.2KB] [526]
Ответов: 4641
Рейтинг: 334
#172: 2010-10-29 01:16:21 ЛС | профиль | цитата
Poputchik писал(а):
Так нельзя в тип добавлять данные

надо узнать у г-на Assasin, какие типы данных типы поддерживают !
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 3349
Рейтинг: 233
#173: 2010-10-29 14:08:20 ЛС | профиль | цитата
Ravilr писал(а):
надо узнать у г-на Assasin, какие типы данных типы поддерживают !

Тип TData
------------ Дoбавленo в 14.08:
Попробуй так

Add(MainForm,7232273,147,287)
{
Width=185
Height=351
Position=1
link(onCreate,15435995:doLoadFromFile,[])
}
Add(Image,14922626,420,294)
{
Width=164
Height=314
}
Add(Hub,9233413,336,308)
{
link(onEvent1,7933201:doLoadFromStream,[])
link(onEvent2,7933201:doBitmap,[])
}
Add(Jpeg,7933201,364,294)
{
Point(doLoadFromStream)
Point(doBitmap)
Point(Stream)
link(onBitmap,14922626:doLoad,[])
link(Stream,15076656:%Image2%,[(370,282)(324,282)(324,352)(279,352)])
}
Add(Type_MultiMem,15076656,273,308)
{
Vars=#8:%Image2%|
Name="Files"
Point(GType)
link(onMem,9233413:doEvent1,[])
link(GType,15435995:FType,[(279,296)(265,296)(265,338)(230,338)])
}
Add(Type_Load,15435995,224,294)
{
FileName="Compil.picp"
Point(onError)
Point(onLoad)
link(onLoad,15076656:doMem,[])
}

карма: 1

0
Разработчик
Ответов: 4698
Рейтинг: 426
#174: 2010-10-29 14:09:48 ЛС | профиль | цитата
Ivann писал(а):
Попробуй так

Ivann, да в этом ты прав, надо как у тебя, но ты хоть дебаг от линка MainFrom.onCreate ставил? Проверял после чего выпадает ошибка
карма: 10
0
Ответов: 3349
Рейтинг: 233
#175: 2010-10-29 14:11:41 ЛС | профиль | цитата
Assasin писал(а):
Проверял после чего выпадает ошибка

Ошибка? У меня нет никаких ошибок.
------------ Дoбавленo в 14.11:
Assasin писал(а):
Проверял после чего выпадает ошибка

Ошибка? У меня нет никаких ошибок.
карма: 1

0
Разработчик
Ответов: 4698
Рейтинг: 426
#176: 2010-10-29 14:12:36 ЛС | профиль | цитата
Ivann писал(а):
Ошибка? У меня нет никаких ошибок.

Ревизия svn какая?
карма: 10
0
Ответов: 3349
Рейтинг: 233
#177: 2010-10-29 14:19:27 ЛС | профиль | цитата
Хотя есть
------------ Дoбавленo в 14.19:
Вылетает в рантайм из-за Type_Load
карма: 1

0
Разработчик
Ответов: 4698
Рейтинг: 426
#178: 2010-10-29 14:23:09 ЛС | профиль | цитата
Ivann писал(а):
Вылетает в рантайм из-за Type_Load

А вот и фига. Пока что я никак не могу понять откуда ошибка, у меня такая возникает только при событии при создании формы (то есть если поставить от таймера, то не вылетает), причем Type_Load тут вовсе не при чем, ошибку вызывает вот эта строчка, я в ней не мастер, и пока буду разбираться, может, nesco сможет дать какой-нибудь объясняющий ответ.
#pas
procedure _hi_OnEvent(const PointEvent:THI_Event;Value:PType);
var Data:TData;
begin
dtType(Data,Value);
OnEvent(PointEvent,Data); //вот эта строчка
end;
карма: 10
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#179: 2010-10-29 14:27:52 ЛС | профиль | цитата
Assasin, а ты не пробовал Data сделать глобальной переменной
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#180: 2010-10-29 14:35:26 ЛС | профиль | цитата
nesco писал(а):
Assasin, а ты не пробовал Data сделать глобальной переменной

Встречный вопрос, а зачем это надо? Это чем то должно помочь? В чем отличие? Тем более что во всех аналогичных процедурах, только для других типов данных, она тоже локальная
------------ Дoбавленo в 14.35:
Сделал я ее глобальной... и ничего это не изменило... совсем
карма: 10
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)