Вверх ↑
Ответов: 1429
Рейтинг: 50
#1: 2010-09-23 08:34:47 ЛС | профиль | цитата
Да, экселом у меня такие милые девочки умели пользоваться, ну вообще не имеющие отношения к программингу и математике 6)
------------ Дoбавленo в 07.17:
Вот примеры:
Add(MainForm,2953706,21,105)
{
}
Add(If_else,2540444,315,231)
{
Op2=Integer(2)
link(onTrue,13605061:doWork2,[(368,237)(368,244)])
link(onFalse,903573:doData,[(361,244)(361,293)])
}
Add(If_else,13202932,252,217)
{
Op2=Integer(1)
link(onTrue,13605061:doWork1,[(375,223)])
link(onFalse,2540444:doCompare,[(300,230)(300,237)])
}
Add(Button,13846422,189,217)
{
Left=250
Top=165
link(onClick,13202932:doCompare,[])
}
Add(DoData,903573,455,287)
{
}
Add(DoData,14901549,455,238)
{
}
Add(InlineCode,9218489,322,441)
{
WorkPoints=#6:doWork|
EventPoints=#8:onEvent1|8:onEvent2|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|24: onEvent1:THI_Event;|24: onEvent2:THI_Event;|5: |50: procedure doWork(var Data:TData; index:word);|5: end;|0:|14:implementation|0:|0:|0:|29:procedure THiAsmClass.doWork;|5:begin|0:|39:if Data=1 or Data=2 and Data <> 3 then |27:_hi_OnEvent(onEvent1, Data)|4:else|27:_hi_OnEvent(onEvent2, Data)|0:|2: |4:end;|4:end.|
link(onEvent1,15793006:doData,[(380,447)(380,426)])
link(onEvent2,14350949:doData,[(380,454)(380,475)])
}
Add(Button,1944177,259,441)
{
Left=250
Top=165
link(onClick,9218489:doWork,[])
}
Add(DoData,14350949,399,469)
{
}
Add(DoData,15793006,399,420)
{
}
Add(If_else,15924992,399,238)
{
Type=5
Op2=Integer(3)
link(onTrue,14901549:doData,[])
}
Add(HubEx,13605061,371,238)
{
link(onEvent,15924992:doCompare,[])
}
Add(InfoTip,11278987,112,28)
{
Info=#7:Пример:|0:|41:if i=1 or i=2 and i <>3 then o=1 else o=2|
Width=484
Height=598
}
Add(InfoTip,3514511,154,119)
{
Info=#75:Вот только этой схемы мало, и прийдется написать обработчик ситуации, когда|93:и первый и второй опреанд - равны, что приведет к возникновению двух потоков друг за другом.|105:Обработчик отсеивающий лишнее событие понадобится из нескольких элементов, и надо думать как его сделать.|
HAlign=0
Width=386
Height=234
}
Add(InfoTip,6454423,112,651)
{
Info=#45:Примеры условных каскадов из Вашей "Нетрумы":|
Width=484
Height=598
}
Add(Case,5117538,196,735)
{
Value=String(console)
link(onNextCase,11573344:doCase,[])
link(onTrue,9234265:doWork1,[])
}
Add(ChildForm,9234265,245,742)
{
@Hint=#14:Console window|
AddHint(-33,-36,92,13,@Hint)
}
BEGIN_SDK
Add(EditMulti,11836598,21,21)
{
WorkCount=2
link(doWork1,8795665:doVisible,[(112,27)(112,132)])
link(doWork2,15453568:doAdd,[])
}
Add(MainForm,8795665,140,98)
{
Left=35
Top=105
Visible=1
Caption="Net console"
Point(doVisible)
}
Add(Memo,15453568,140,28)
{
Top=154
Width=314
Height=55
Align=5
Color=0
Font=[MS Sans Serif,8,0,16777215,1]
ScrollBars=3
ReadOnly=0
}
END_SDK
Add(Case,11573344,294,735)
{
Value=String(add)
link(onNextCase,6451159:doCase,[])
link(onTrue,956894:doWork1,[])
}
Add(ChildForm,956894,343,742)
{
@Hint=#8:Add user|
FirstUsage=0
AddHint(-19,-35,57,13,@Hint)
}
BEGIN_SDK
Add(EditMulti,4022994,21,21)
{
EventCount=1
WorkCount=1
Width=398
Height=235
link(doWork1,6336305:doVisible,[(59,27)(59,167)])
}
Add(MainForm,6336305,98,133)
{
Left=35
Top=105
Width=354
Height=270
Visible=1
Caption="Add user"
Point(doVisible)
}
Add(Edit,16219053,245,63)
{
Left=50
Top=20
Width=235
Text="forum-bot"
}
Add(StreamPack,679079,238,168)
{
DataCount=#2:id|4:name|4:type|6:parent|
link(onPack,4022994:onEvent1,[(344,174)(344,27)])
link(id,879432:Value,[])
link(name,16219053:Text,[])
link(type,6861427:Var1,[(258,152)])
link(parent,6861427:Var2,[])
}
Add(Button,6271772,189,168)
{
Left=240
Top=190
Caption="ok"
link(onClick,679079:doPack,[])
}
Add(Memory,879432,238,105)
{
Default=Integer(101)
}
Add(Memory,11713433,280,105)
{
Default=Integer(0)
}
Add(GetDataEx,6861427,259,147)
{
Angle=1
link(Data,11713433:Value,[(286,152)])
}
END_SDK
Add(Case,6451159,392,735)
{
Value=String(addgrp)
link(onTrue,12678737:doWork1,[])
}
Add(ChildForm,12678737,441,742)
{
@Hint=#9:Add group|
FirstUsage=0
AddHint(-24,-34,64,13,@Hint)
}
BEGIN_SDK
Add(EditMulti,4022994,21,21)
{
EventCount=1
WorkCount=1
Width=363
Height=235
link(doWork1,6336305:doVisible,[(59,27)(59,244)])
}
Add(MainForm,6336305,238,210)
{
Left=35
Top=105
Width=306
Height=99
Visible=1
Caption="Add group"
BorderStyle=3
Point(doVisible)
}
Add(Edit,16219053,245,63)
{
Left=45
Top=10
Width=235
Text=""
}
Add(StreamPack,679079,238,168)
{
DataCount=#2:id|4:name|4:type|6:parent|
link(onPack,4022994:onEvent1,[(344,174)(344,27)])
link(id,879432:Value,[])
link(name,16219053:Text,[])
link(type,11713433:Value,[(258,152)(286,152)])
link(parent,12014451:Value,[(265,152)(335,152)])
}
Add(Button,6271772,154,168)
{
Left=225
Top=40
Caption="ok"
link(onClick,15341418:doEvent1,[])
}
Add(Memory,879432,238,105)
{
Default=Integer(101)
}
Add(Memory,11713433,280,105)
{
Default=Integer(1)
}
Add(Label,609286,119,77)
{
Left=5
Top=15
Width=32
Height=17
Caption="Name"
}
Add(Memory,12014451,329,105)
{
Default=Integer(0)
}
Add(Hub,15341418,203,168)
{
link(onEvent1,679079:doPack,[])
link(onEvent2,6336305:doClose,[(227,181)(227,237)])
}
END_SDK
Add(StreamUnPack,12626945,182,840)
{
DataCount=#2:id|5:state|
link(onUnPack,1091490:doCompare,[(252,846)(252,916)])
}
Add(If_else,1091490,266,910)
{
Op2=Integer(0)
link(onTrue,8486843:doData,[])
link(onFalse,14834718:doCompare,[(310,923)(310,958)])
link(Op1,1258996:Var2,[])
}
Add(ChildFormPoly,120361,378,917)
{
@Hint=#8:Messages|
Childrens=#7:message|
Selected="message"
WorkScheme=1
link(id,12626945:id,[(384,887)(188,887)])
AddHint(47,-30,63,13,@Hint)
}
BEGIN_SDK
Add(EditPolyMulti,16543750,21,21)
{
WorkCount=#5:##add|9:doMessage|10:doQuitUser|10:doUserJoin|10:doUserList|9:doVisible|
EventCount=#6:onPack|
DataCount=#2:id|4:Name|
Point(##add)
}
Add(MainForm,16603502,35,105)
{
Left=35
Top=105
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,4766292,21,21)
{
WorkCount=#5:##add|9:doMessage|10:doQuitUser|10:doUserJoin|10:doUserList|9:doVisible|
EventCount=#6:onPack|
DataCount=#2:id|4:Name|
Width=601
Height=543
Point(##add)
link(##add,5122211:doValue,[(49,27)(49,97)])
link(doMessage,13589987:doEvent1,[(43,34)(43,167)])
link(doQuitUser,11319014:doCompare,[(37,41)(37,335)])
link(doUserJoin,4598355:doCompare,[(31,48)(31,405)])
link(doUserList,8710547:doCompare,[(28,55)(28,482)])
link(doVisible,15770901:doCompare,[(63,62)(63,279)])
}
Add(MainForm,6400130,196,245)
{
Left=35
Top=105
Width=541
Height=267
Caption="Room"
SavePosName="net-roomsmessage"
Point(doVisible)
Point(doPlaceInTaskBar)
link(onCreate,10803518:doEvent1,[])
}
Add(ChildPanelEx,4308289,392,161)
{
link(onClick,4425870:doCharset,[(436,167)(436,153)(326,153)(326,258)])
}
BEGIN_SDK
Add(EditMultiEx,4109629,21,21)
{
WorkCount=#5:doAdd|13:doWidthFixBug|
EventCount=#7:onClick|
VarCount=#4:Text|
Width=412
Height=284
link(doAdd,10647244:doAdd,[(39,27)(39,62)])
link(doWidthFixBug,7252576:doWidth,[(29,34)(29,125)])
link(Text,14933181:Var1,[(27,277)])
}
Add(Panel,7252576,70,112)
{
Width=433
Height=242
Align=5
BevelInner=0
Point(doWidth)
}
Add(RichEdit,10647244,70,56)
{
Left=1
Top=1
Width=431
Height=182
Align=5
ScrollBars=2
ReadOnly=0
Point(onURLClick)
link(onURLClick,11148499:doShellExec,[])
}
Add(WinExec,11148499,133,56)
{
}
Add(Memo,12642970,294,196)
{
Left=1
Top=1
Width=374
Height=56
Align=4
ModeSp=3
ScrollBars=3
Point(onKeyDown)
Point(doKeyBack)
link(onKeyDown,7862059:doCheckMask,[])
}
Add(If_else,1289389,154,196)
{
Type=2
Op2=Integer(0)
link(onTrue,4129946:doEvent1,[])
}
Add(Length,10357076,112,196)
{
link(onLength,1289389:doCompare,[])
link(Str,14933181:Var3,[(118,184)(90,184)])
}
Add(KeyMask,7862059,350,203)
{
Ctrl=1
Key=13
link(onTrue,10357076:doLength,[(390,216)(390,268)(101,268)(101,202)])
}
Add(Hub,4129946,203,196)
{
OutCount=3
link(onEvent1,4109629:onClick,[(284,202)(284,27)])
link(onEvent2,12642970:doClear,[])
link(onEvent3,13030514:doData,[(231,216)(231,244)])
}
Add(DoData,13030514,245,238)
{
Data=Integer(0)
link(onEventData,12642970:doKeyBack,[])
}
Add(GetDataEx,14933181,84,272)
{
Angle=1
link(Data,12642970:Text,[(300,277)])
}
END_SDK
Add(Memory,11857955,308,287)
{
Default=Integer(1)
}
Add(Memory,5122211,77,91)
{
Point(Data)
link(onData,11488785:doPack,[])
link(Data,16449049:Var2,[])
}
Add(StreamPack,14112308,378,252)
{
DataCount=#2:id|3:rid|4:text|
link(onPack,2443768:doEvent1,[])
link(id,8808549:Value,[])
link(rid,2328192:Var3,[(391,237)])
}
Add(Memory,8808549,378,196)
{
Default=Integer(5)
}
Add(If_else,4728415,105,161)
{
link(onTrue,9829424:doValue,[])
link(Op1,10155544:Var3,[(111,145)])
}
Add(GetDataEx,10155544,77,140)
{
link(Data,5122211:Value,[])
}
Add(MT_MultiMem,9829424,154,161)
{
From=1
link(onData,178680:doString,[])
}
Add(FormatStr,178680,203,161)
{
Mask="%1: %2"
link(onFString,8595396:doCharset,[])
link(Str1,9829424:Value1,[(209,149)(146,149)(146,205)(160,205)])
link(Str2,9829424:Value2,[(216,149)(242,149)(242,205)(167,205)])
}
Add(If_else,11319014,105,329)
{
link(onTrue,14820209:doGet,[])
link(Op1,3053082:Var3,[(111,313)])
}
Add(FormatStr,16233882,210,329)
{
Mask="Quit %1 (%2)"
link(onFString,11706145:doAdd,[])
}
Add(HubEx,10758257,315,161)
{
link(onEvent,4308289:doAdd,[])
}
Add(GetDataEx,7486987,77,232)
{
link(Data,10155544:Var2,[])
}
Add(If_else,4598355,105,399)
{
link(onTrue,7086258:doValue,[])
link(Op1,14750711:Var3,[(111,373)])
}
Add(MT_MultiMem,7086258,154,399)
{
From=1
Count=1
link(onData,11763026:doString,[])
}
Add(FormatStr,11763026,203,399)
{
DataCount=1
Mask="Join %1"
link(onFString,406989:doAdd,[])
link(Str1,7086258:Value1,[(209,387)(146,387)(146,443)(160,443)])
}
Add(HubEx,8199234,315,329)
{
Angle=3
link(onEvent,10758257:doWork3,[])
}
Add(GetDataEx,3053082,77,308)
{
link(Data,7486987:Var2,[])
}
Add(StreamPack,11488785,147,91)
{
DataCount=#2:id|3:rid|
link(onPack,7158816:doWork2,[])
link(id,14846445:Value,[])
}
Add(Memory,14846445,147,42)
{
Default=Integer(4)
}
Add(HubEx,7158816,447,91)
{
Angle=3
link(onEvent,4766292:onPack,[(451,27)])
}
Add(If_else,8710547,105,476)
{
link(onTrue,1464335:doGet,[])
link(Op1,14750711:Var2,[(111,449)(83,449)])
}
Add(GetDataEx,14750711,77,368)
{
link(Data,3053082:Var2,[])
}
Add(If_else,15770901,105,273)
{
link(onTrue,2752383:doWork2,[])
link(Op1,2328192:Var2,[])
link(Op2,16449049:Var3,[(118,34)])
}
Add(GetDataEx,2328192,105,232)
{
Angle=3
link(Data,7486987:Var3,[])
}
Add(DoData,5868137,154,273)
{
Data=Integer(1)
link(onEventData,6400130:doVisible,[])
}
Add(GetDataEx,16449049,77,29)
{
Angle=3
link(Data,4766292:id,[(27,34)])
}
Add(TreeViewTrain,11907392,399,462)
{
Left=433
Width=100
Height=242
Align=3
Name="users"
ModeSp=3
SizeSp=2
LinesRoot=1
IconsManager="parent.icons"
ParentIDIndex=2
IconIndex=1
}
Add(TVT_AddNode,5301879,203,476)
{
TreeView="users"
}
Add(MT_Get,1464335,154,476)
{
link(onData,5301879:doAddNode,[])
}
Add(MT_Get,14820209,147,329)
{
link(onData,4447440:doEvent1,[])
}
Add(TVT_DeleteNode,16139733,266,336)
{
TreeView="users"
}
Add(Hub,4447440,189,329)
{
link(onEvent1,16233882:doString,[])
link(onEvent2,16139733:doDeleteNode,[])
}
Add(FormatStr,11502863,462,259)
{
Mask="%1: %2"
link(onFString,8614224:doAdd,[])
link(Str1,4766292:Name,[(468,31)(34,31)])
link(Str2,16534729:Var3,[(475,243)])
}
Add(MT_AddData,406989,252,399)
{
Count=3
InputMT=3
link(onAdd,8199234:doWork3,[(319,405)])
link(Data2,1467564:Value,[])
link(Data3,13592105:Value,[(272,394)(307,394)])
}
Add(Memory,1467564,259,357)
{
Default=Integer(65535)
}
Add(Memory,13592105,301,357)
{
Default=Integer(1)
}
Add(MT_AddData,8614224,518,259)
{
Count=3
InputMT=3
link(onAdd,8199234:doWork1,[(562,265)(562,335)])
link(Data2,232340:Value,[])
link(Data3,5999487:Value,[(538,247)(573,247)])
}
Add(Memory,232340,525,203)
{
Default=Integer(10461087)
}
Add(Memory,5999487,567,203)
{
Default=Integer(0)
}
Add(Hub,2443768,420,252)
{
link(onEvent1,7158816:doWork3,[(451,258)])
link(onEvent2,11502863:doString,[])
}
Add(GetDataEx,16534729,392,238)
{
link(Data,4308289:Text,[])
}
Add(MT_AddData,11706145,259,329)
{
Count=3
InputMT=3
link(onAdd,8199234:doWork2,[])
link(Data2,2465841:Value,[])
link(Data3,11857955:Value,[(279,324)(314,324)])
}
Add(Memory,2465841,266,287)
{
Default=Integer(255)
}
Add(Hub,10803518,238,259)
{
link(onEvent1,4308289:doWidthFixBug,[(293,265)(293,174)])
link(onEvent2,6400130:doPlaceInTaskBar,[(260,272)(260,299)(184,299)(184,286)])
}
Add(Charset,8595396,252,161)
{
Type=7
link(onCharset,10758257:doWork2,[])
}
Add(Charset,4425870,336,252)
{
Type=6
link(onCharset,14112308:doPack,[])
link(Text,16534729:Var1,[(342,243)])
}
Add(Hub,13589987,56,161)
{
link(onEvent1,4728415:doCompare,[])
link(onEvent2,2752383:doWork1,[(144,174)])
}
Add(HubEx,2752383,140,273)
{
link(onEvent,5868137:doData,[])
}
END_SDK
Add(DoData,8486843,329,910)
{
Data=String(message)
link(onEventData,120361:##add,[(369,916)(369,923)])
}
Add(If_else,14834718,315,952)
{
Op2=Integer(3)
link(onTrue,120361:doVisible,[])
link(Op1,1258996:Var3,[(321,880)])
}
Add(GetDataEx,1258996,266,875)
{
Angle=3
link(Data,12626945:state,[(195,880)])
}
Add(Case,3326103,133,1057)
{
Value=String(reqauth)
link(onNextCase,5432907:doCase,[])
link(onTrue,1119145:doPack,[(201,1070)(201,1161)])
}
Add(StreamPack,1119145,224,1155)
{
DataCount=#2:id|4:user|4:text|
link(id,10352893:Value,[])
link(user,10482363:Var2,[])
link(text,13346537:Value,[(244,1143)(279,1143)])
}
Add(Memory,10352893,224,1092)
{
Default=Integer(103)
}
Add(Memory,13346537,273,1092)
{
Default=String(please auth me!)
}
Add(Case,5432907,322,1057)
{
Value=String(remove)
link(onNextCase,13274374:doCase,[])
link(onTrue,12241083:doPack,[(366,1070)(366,1161)])
}
Add(StreamPack,12241083,378,1155)
{
DataCount=#2:id|4:user|
link(id,3310211:Value,[])
link(user,5588388:Var2,[])
}
Add(Memory,3310211,378,1092)
{
Default=Integer(102)
}
Add(GetDataEx,10482363,231,1127)
{
}
Add(Case,13274374,448,1057)
{
Value=String(forward)
link(onTrue,168124:doNext,[])
}
Add(GetDataEx,5588388,385,1127)
{
Angle=3
link(Data,10482363:Var3,[])
}
Add(Counter,168124,504,1064)
{
Max=10000
link(onNext,8042932:doAdd,[])
}
Add(MT_Add,8042932,553,1064)
{
Data=String(base)
InputMT=1
}
Add(InfoTip,2737074,154,399)
{
Info=#20:В коде это примитив:|
Width=386
Height=157
}





Заморачиваться с преобразование типов в IC я не стал. Это и так понятно.
------------ Дoбавленo в 08.12:
Посмотрел VisualInline FTCG - сложно, и нет хелпа, и непонятка с точками.
Малейшее усложнение кода, относительно того, что я привел из макса, для конечного пользователя, - непереваримо.
Теги, обязательные параметры, типы(недай бох) это всё лишнее в подобных HiAsm или MAX системах.

Нормально, если похоже на школьный курс математики до 5того класса: x + y = z
(и разделитель - пробел, даже двоеточие в конце строки, будет радражать людей)

------------ Дoбавленo в 08.22:
Assasin, взялся сделать элемент по принципу Мат Прсера. Он, безусловно, молодец! Но, там столько всяких технических "но"..
Подобный элемент должен был выглядеть как некая программа, которая генерит элемент IC, с точками, в виде текста, и вставляет его на лист.
------------ Дoбавленo в 08.34:
Из мировой практики - "резкий скачек сложности".
К примеру, этот термин используют при тестировании компьютерных игр. Если первые 3 уровня юзер ощущал усложнение на на 3% а на 4ртом уровне получил прирост сложности на 30% то на остальные уровни он идти не захочет и будет разочарован. Нужен линейный прирост сложности в среде.

В нашей ситуации, если максимальная сложность работы с кодом это IC, а минимальная это квадратики, то между ними пропасть.
Промежуточным шагом, для юзера, мог бы стать "IC элементогенератор" c кодом, который я привел из макса.
карма: 0

0