Make(delphi) ver(4.04 build 182) Add(InfoTip,2143263,77,301) { Info=#13:Создание типа| Width=190 Height=130 } Add(InfoTip,7984062,168,140) { Info=#34:Это компоненты для работы с типами| Transparent=1 Width=393 Height=60 } Add(Shape,10032164,70,70) { Width=564 Height=1054 Transparent=0 } Add(MainForm,2953706,987,147) { Width=436 Height=211 Caption="Работа с типами" BorderStyle=1 } Add(Type_Create,2814016,175,161) { Point(doClear) Point(FType) Point(doName) } Add(Type_MultiMem,7141724,231,161) { Point(doName) Point(doClear) Point(onError) Point(GType) } Add(Type_Add,3592159,287,161) { Point(doName) Point(onError) } Add(Type_Delete,6561075,343,161) { Point(doVars) Point(doName) Point(onError) } Add(Type_Set,6832039,399,161) { Point(doName) Point(onError) } Add(Type_Array,3037971,455,161) { Point(doClearVars) Point(onError) Point(NameArray) Point(Name) } Add(Shape,7644914,70,70) { Width=564 Text="Типы - что это и как с этим работать" Font=[MS Sans Serif,18,1,0,1] Color=8421504 } Add(InfoTip,13623406,77,105) { Info=#125:Тип - структура данных, состоящая из разных переменных. Количество и имена этих переменных определяет пользователь программы.| Font=[MS Sans Serif,10,1,0,1] Frame=1 Transparent=1 HAlign=0 Width=554 } Add(InfoTip,3617236,77,203) { Info=#168: С помощью компонента Type_Create можно создать свой тип это достаточно просто нужно лишь ввести имя типа, имена переменных и подать на одноименные точки нужные данные| Font=[MS Sans Serif,10,1,0,1] Frame=1 Transparent=1 HAlign=0 Width=554 Height=53 } Add(Type_Create,6409572,161,385) { Vars=#4:Var1|4:Var2|4:Var3| Point(FType) link(Var1,16203961:Value,[(167,377)(125,377)]) link(Var2,2924791:Value,[]) link(Var3,9596947:Value,[(181,377)(223,377)]) AddHint(34,13,53,13,Name) } Add(Memory,16203961,119,336) { Default=String(Абв...) AddHint(-19,-17,53,13,Default) } Add(Memory,2924791,168,336) { Default=Integer(123) AddHint(-3,-18,33,13,Default) } Add(Memory,9596947,217,336) { Default=Real(3.21) AddHint(-2,-17,36,13,Default) } Add(PointHint,14864719,84,385) { Info=#11:Создаем тип| VAlign=0 link(Event,6409572:doCreate,[(154,401)(154,391)]) } Add(InfoTip,12443570,77,252) { Info=#137: С помощью компонента Type_Add можно добавить переменные в уже существующий тип, с помощью Type_Delete удалить, а с Type_Delete изменить| Font=[MS Sans Serif,10,1,0,1] Frame=1 Transparent=1 HAlign=0 Width=554 Height=46 } Add(Shape,7322864,294,434) { Width=333 Height=102 Font=[MS Sans Serif,18,0,0,1] Color=10790143 } Add(InfoTip,13017032,301,441) { Info=#116:ВАЖНО! Имя типа, над которым производится операция, должно быть равно значению св-ва Name, иначе операция невозможна| Font=[MS Sans Serif,10,1,0,1] Frame=1 HAlign=0 Width=309 Height=67 } Add(Shape,16335588,77,539) { Width=550 Height=74 Font=[MS Sans Serif,18,0,0,1] Color=12639424 } Add(InfoTip,14486247,84,546) { Info=#189:ЗАМЕЧАНИЕ. У компонентов Type_Add и Type_Set имеется св-во GType_Enabled, которое определяет, можно ли использовать точку GType для определения типа, на которым будет производиться операция| Font=[MS Sans Serif,10,1,0,1] Frame=1 HAlign=0 Width=533 Height=67 } Add(Type_Add,11915775,287,385) { Vars=#5:GType|4:Var4|4:Var5| link(GType,11763816:Var1,[(293,373)(258,373)]) link(Var4,1279968:Value,[]) link(Var5,14906715:Value,[(307,377)(342,377)]) AddHint(35,12,53,13,Name) AddHint(87,-69,47,39,Vars) } Add(Memory,1279968,294,336) { Default=Integer(4) AddHint(-1,-20,21,13,Default) } Add(Memory,14906715,336,336) { Default=Integer(5) AddHint(-1,-19,21,13,Default) } Add(InfoTip,411942,273,301) { Info=#21:Добавление переменных| Width=169 Height=130 } Add(Type_Set,2616848,469,385) { Vars=#5:GType|4:Var1|4:Var2| link(GType,11763816:Var3,[(475,373)(431,373)(431,425)]) link(Var1,4664562:Value,[]) link(Var2,12054471:Value,[(489,377)(524,377)]) AddHint(87,-47,47,39,Vars) AddHint(37,11,53,13,Name) } Add(GetDataEx,11763816,252,420) { Angle=3 link(Data,9665420:Var3,[]) } Add(Memory,4664562,476,336) { Default=Integer(321) AddHint(-1,-18,33,13,Default) } Add(Memory,12054471,518,336) { Default=String(Строка) AddHint(3,-19,61,13,Default) } Add(InfoTip,7750311,448,301) { Info=#18:Изменение значения| Width=183 Height=130 } Add(Type_Delete,15681674,161,483) { Vars=#4:Var3|4:Var4| link(GType,9665420:Var2,[]) AddHint(63,-25,37,26,Vars) AddHint(62,8,53,13,Name) } Add(GetDataEx,9665420,161,420) { link(Data,6409572:FType,[]) } Add(PointHint,15480441,77,483) { Info=#18:Удалаем переменные| VAlign=0 Width=71 link(Event,15681674:doDelete,[(154,499)(154,489)]) } Add(InfoTip,6035599,76,434) { Info=#19:Удаление переменных| Width=219 Height=102 } Add(InfoTip,5798978,77,616) { Info=#121: Компонент Type_MultiMem извлечет все нужные пользователю значения для работы с ними, а Type_MultiData выдаст их в поток| Font=[MS Sans Serif,10,1,0,1] Frame=1 Transparent=1 HAlign=0 Width=554 } Add(Type_MultiMem,15621397,98,700) { Vars=#4:Var1|4:Var5| Point(GType) link(GType,5737886:Var2,[]) AddHint(47,-28,37,26,Vars) AddHint(36,14,53,13,Name) } Add(InfoTip,10926295,77,651) { Info=#19:Извлечение значений| Width=239 Height=88 } Add(Shape,518613,322,651) { Width=305 Height=60 Font=[MS Sans Serif,18,0,0,1] Color=12639424 } Add(InfoTip,2469325,329,658) { Info=#58:ЗАМЕЧАНИЕ. Извлекаемые переменные не будут удалены из типа| Font=[MS Sans Serif,10,1,0,1] Frame=1 HAlign=0 Width=288 Height=53 } Add(InfoTip,11508921,77,742) { Info=#125: Type_Array привратит тип в массив, который не требует соответствия имен, с которым можно работать обычными средствами HiAsm| Font=[MS Sans Serif,10,1,0,1] Frame=1 Transparent=1 HAlign=0 Width=554 } Add(Type_Array,12656317,196,819) { link(GType,2584003:Var2,[(202,779)(48,779)]) } Add(GetDataEx,2584003,42,665) { link(Data,9665420:Var1,[(48,425)]) } Add(PointHint,10396069,105,819) { Info=#13:Загружаем тип| VAlign=0 link(Event,12656317:doLoad,[(183,835)(183,825)]) } Add(ArrayRW,7209189,196,875) { link(Array,12656317:Array,[]) } Add(PointHint,14481479,77,868) { Info=#13:Читаем данные| VAlign=0 Width=92 Height=18 link(Event,7209189:doRead,[(183,877)(183,881)]) } Add(PointHint,1107175,77,882) { Info=#17:Записываем данные| VAlign=0 Width=92 link(Event,7209189:doWrite,[(183,898)(183,888)]) } Add(PointHint,1755784,77,917) { Info=#16:Добавляем данные| VAlign=0 Width=92 link(Event,7209189:doAdd,[(186,933)(186,895)]) } Add(InfoTip,15185732,74,784) { Info=#29:Работа с типом как с массивом| Width=165 Height=172 } Add(Shape,10344914,252,784) { Width=375 Height=60 Font=[MS Sans Serif,18,0,0,1] Color=10790143 } Add(InfoTip,5612812,259,791) { Info=#97:ВАЖНО! Если тип будет очищен после того, как загружен в компонет, то Type_Array не будет работать| Font=[MS Sans Serif,10,1,0,1] Frame=1 HAlign=0 Width=365 Height=53 } Add(InfoTip,918898,77,966) { Info=#82: Теперь вы можете запустить данное приложение для просмотра работы типов на опыте| Font=[MS Sans Serif,10,1,0,1] Frame=1 Transparent=1 HAlign=0 Width=554 } Add(Button,4842814,1064,147) { Left=5 Width=70 Height=25 Caption="Создать" link(onClick,5097930:doCreate,[]) } Add(Button,14652829,1064,210) { Left=5 Top=30 Width=70 Height=25 Caption="Добавить" link(onClick,14662493:doAdd,[]) } Add(Button,14425484,1064,301) { Left=5 Top=110 Width=70 Height=25 Caption="Прочесть" link(onClick,15530991:doMem,[]) } Add(Button,1934232,1064,378) { Left=5 Top=150 Width=70 Height=25 Caption="Удалить" link(onClick,4689861:doDelete,[]) } Add(Type_Create,5097930,1120,147) { Vars=#3:var| Point(FType) link(var,5936979:Value,[]) } Add(Button,8872071,1064,252) { Left=5 Top=65 Width=70 Height=25 Caption="Изменить" link(onClick,12597795:doSet,[]) } Add(Edit,1836491,1176,147) { Left=85 Top=35 Width=250 Text="Мой текст" } Add(Edit,2976235,1197,196) { Left=85 Top=70 Width=250 Text="Твой текст" } Add(Label,464368,1302,301) { Left=85 Top=110 Width=19 Height=17 Caption="var" link(Text,15530991:var,[(1308,289)(1241,289)(1241,341)(1210,341)]) } Add(Type_MultiMem,15530991,1204,301) { Vars=#3:var|4:var1| Point(onError) Point(GType) link(onMem,15747175:doEvent1,[]) link(onError,7756498:doWork2,[]) link(GType,6401316:Var2,[]) } Add(Type_Add,14662493,1120,210) { Vars=#5:GType|4:var1| Point(onError) link(GType,3044255:Var2,[]) link(var1,1836491:Text,[(1133,194)(1182,194)]) link(onError,15828562:doWork1,[(1381,223)]) } Add(Type_Delete,4689861,1253,378) { Vars=#4:var1| Point(onError) link(GType,6401316:Var3,[(1259,236)]) link(onError,7756498:doWork3,[(1381,391)]) } Add(Type_Set,12597795,1162,252) { Vars=#5:GType|4:Var1| Point(onError) link(GType,6973111:Var2,[]) link(Var1,2976235:Text,[(1175,240)(1203,240)]) link(onError,15828562:doWork2,[]) } Add(GetDataEx,3044255,1120,182) { link(Data,5097930:FType,[]) } Add(Message,3972924,1407,259) { } Add(HubEx,15828562,1377,259) { link(onEvent,3972924:doMessage,[]) } Add(HubEx,7756498,1377,308) { Angle=3 link(onEvent,15828562:doWork3,[]) } Add(GetDataEx,6973111,1162,231) { link(Data,3044255:Var3,[(1168,187)]) } Add(GetDataEx,6401316,1204,231) { Angle=3 link(Data,6973111:Var3,[]) } Add(Label,8066060,1295,343) { Left=85 Top=125 Width=25 Height=17 Caption="var1" link(Text,15530991:var1,[(1301,338)(1217,338)]) } Add(Hub,15747175,1267,301) { link(onEvent1,464368:doText,[]) link(onEvent2,8066060:doText,[(1288,314)(1288,349)]) } Add(Memory,5936979,1120,98) { Default=String(ок) } Add(Label,4388748,983,189) { Left=350 Top=65 Width=69 Height=67 Caption="Здесь идет работа только с одной переменной" AutoSize=1 } Add(Shape,5815831,70,1001) { Width=564 Height=123 Font=[MS Sans Serif,18,0,0,1] Color=12639424 } Add(InfoTip,3218578,77,1008) { Info=#66:ЗАМЕЧАНИЕ. Значения индексов ошибок, выдаваемых событиями onError:|93:0 - Поток или точка для определения типа содержит или поврежденный тип или не содержит вообще|54:1 - Имя типа не соответствует свойству Name компонента|45:2 - Переменная для операции не найдена в типе|42:3 - Переменная для операции уже существует|43:4 - Тип не был загружен в память компонента| Font=[MS Sans Serif,10,1,0,1] Frame=1 HAlign=0 Width=554 Height=116 } Add(Type_MultiData,459335,511,161) { } Add(Type_MultiData,15188821,210,700) { Vars=#4:Var1|4:Var5| Point(GType) link(GType,5737886:Var3,[(216,670)]) AddHint(45,-37,37,26,Vars) AddHint(35,17,53,13,Name) } Add(GetDataEx,5737886,98,665) { Angle=3 link(Data,2584003:Var3,[]) }