Вот эта схема работает правильно, хотя и не имеет графического отображения перемещаемой строки и сделана на рассыпухе

Add(MainForm,2953706,294,385)
{
Width=570
Height=495
Caption="alcColorTable"
Position=1
Point(onKeyDown)
link(onKeyDown,12497842:doCase,[])
}
Add(ArrayEnum,10867382,133,168)
{
link(onItem,8476894:doSplit,[])
link(Array,2073113:Array,[])
}
Add(MultiStrData,8476894,182,168)
{
Char="="
link(onPart1,10492467:doTrim,[(235,174)(235,69)])
link(onPart2,10430147:doTrim,[])
}
Add(Trim,10430147,238,175)
{
Char=";"
link(onTrim,9961426:doCopy,[])
}
Add(Copy,9961426,287,175)
{
Position=5
Count=6
link(onCopy,51021:doEvent1,[])
}
Add(Copy,6565334,413,105)
{
Count=2
link(onCopy,4983611:doValue,[])
}
Add(Hub,51021,343,175)
{
OutCount=3
link(onEvent1,6565334:doCopy,[(385,181)(385,111)])
link(onEvent2,13490066:doCopy,[(395,188)(395,153)])
link(onEvent3,14896559:doCopy,[])
}
Add(Copy,13490066,413,147)
{
Position=3
Count=2
link(onCopy,10482346:doValue,[])
}
Add(Copy,14896559,413,189)
{
Position=5
Count=2
link(onCopy,13132822:doString,[])
}
Add(FormatStr,13132822,476,189)
{
DataCount=3
Mask="%1%2%3"
Point(FString)
link(onFString,7780749:doConvert,[])
link(Str2,10482346:Value,[])
link(Str3,4983611:Value,[])
}
Add(Memory,4983611,490,105)
{
}
Add(Memory,10482346,483,147)
{
}
Add(Trim,10492467,413,63)
{
Char=" "
link(onTrim,13639368:doReplace,[])
}
Add(Memory,11135864,686,63)
{
}
Add(Convertor,7780749,525,189)
{
Mode=5
link(onResult,14621313:doEvent1,[])
}
Add(FormatStr,4371953,686,196)
{
DataCount=8
Mask="%8=%1=%2=%7=%5=%4=%3=%6"
link(onFString,14363550:doMTString,[])
link(Str1,11135864:Value,[])
link(Str3,4420109:R,[])
link(Str4,4420109:G,[])
link(Str5,4420109:B,[])
link(Str6,560770:EndIdxIcons,[(727,175)(845,175)(845,261)(909,261)])
link(Str7,13132822:FString,[(734,184)(608,184)(608,233)(482,233)])
link(Str8,7216616:GetData,[])
}
Add(Convertor,6558578,644,196)
{
Digits=8
SymbolFill="0"
link(onResult,4371953:doString,[])
}
Add(Replace,13639368,490,63)
{
SubStr="acl"
link(onReplace,11135864:doValue,[])
}
Add(Hub,14621313,567,189)
{
link(onEvent1,4982551:doEvent1,[(603,195)(603,125)])
link(onEvent2,6558578:doConvert,[])
}
Add(ToRGB,4420109,700,140)
{
}
Add(EventFromData,7216616,735,35)
{
link(onEvent,1578733:doOperation,[])
}
Add(Math,1578733,784,35)
{
Op2=1
ResultType=0
link(onResult,7216616:doData,[(828,41)(828,29)(723,29)(723,41)])
link(Op1,10867382:Index,[(790,23)(461,23)(461,212)(146,212)])
}
Add(StrList,2073113,119,91)
{
FileName="ColorConstant.txt"
Strings=#38: aclAliceBlue = $FFF0F8FF;|38: aclAntiqueWhite = $FFFAEBD7;|38: aclAqua = $FF00FFFF;|38: aclAquamarine = $FF7FFFD4;|38: aclAzure = $FFF0FFFF;|38: aclBeige = $FFF5F5DC;|38: aclBisque = $FFFFE4C4;|38: aclBlack = $FF000000;|38: aclBlanchedAlmond = $FFFFEBCD;|38: aclBlue = $FF0000FF;|38: aclBlueViolet = $FF8A2BE2;|38: aclBrown = $FFA52A2A;|38: aclBurlyWood = $FFDEB887;|38: aclCadetBlue = $FF5F9EA0;|38: aclChartreuse = $FF7FFF00;|38: aclChocolate = $FFD2691E;|38: aclCoral = $FFFF7F50;|38: aclCornflowerBlue = $FF6495ED;|38: aclCornsilk = $FFFFF8DC;|38: aclCrimson = $FFDC143C;|38: aclCyan = $FF00FFFF;|38: aclDarkBlue = $FF00008B;|38: aclDarkCyan = $FF008B8B;|38: aclDarkGoldenrod = $FFB8860B;|38: aclDarkGray = $FFA9A9A9;|38: aclDarkGreen = $FF006400;|38: aclDarkKhaki = $FFBDB76B;|38: aclDarkMagenta = $FF8B008B;|38: aclDarkOliveGreen = $FF556B2F;|38: aclDarkOrange = $FFFF8C00;|38: aclDarkOrchid = $FF9932CC;|38: aclDarkRed = $FF8B0000;|38: aclDarkSalmon = $FFE9967A;|38: aclDarkSeaGreen = $FF8FBC8B;|38: aclDarkSlateBlue = $FF483D8B;|38: aclDarkSlateGray = $FF2F4F4F;|38: aclDarkTurquoise = $FF00CED1;|38: aclDarkViolet = $FF9400D3;|38: aclDeepPink = $FFFF1493;|38: aclDeepSkyBlue = $FF00BFFF;|38: aclDimGray = $FF696969;|38: aclDodgerBlue = $FF1E90FF;|38: aclFirebrick = $FFB22222;|38: aclFloralWhite = $FFFFFAF0;|38: aclForestGreen = $FF228B22;|38: aclFuchsia = $FFFF00FF;|38: aclGainsboro = $FFDCDCDC;|38: aclGhostWhite = $FFF8F8FF;|38: aclGold = $FFFFD700;|38: aclGoldenrod = $FFDAA520;|38: aclGray = $FF808080;|38: aclGreen = $FF008000;|38: aclGreenYellow = $FFADFF2F;|38: aclHoneydew = $FFF0FFF0;|38: aclHotPink = $FFFF69B4;|38: aclIndianRed = $FFCD5C5C;|38: aclIndigo = $FF4B0082;|38: aclIvory = $FFFFFFF0;|38: aclKhaki = $FFF0E68C;|38: aclLavender = $FFE6E6FA;|38: aclLavenderBlush = $FFFFF0F5;|38: aclLawnGreen = $FF7CFC00;|38: aclLemonChiffon = $FFFFFACD;|38: aclLightBlue = $FFADD8E6;|38: aclLightCoral = $FFF08080;|38: aclLightCyan = $FFE0FFFF;|38: aclLightGoldenrodYellow = $FFFAFAD2;|38: aclLightGray = $FFD3D3D3;|38: aclLightGreen = $FF90EE90;|38: aclLightPink = $FFFFC0CB;|38: aclLightSalmon = $FFFFA07A;|38: aclLightSeaGreen = $FF20B2AA;|38: aclLightSkyBlue = $FF87CEFA;|38: aclLightSlateGray = $FF778899;|38: aclLightSteelBlue = $FFB0C4DE;|38: aclLightYellow = $FFFFFFE0;|38: aclLime = $FF00FF00;|38: aclLimeGreen = $FF32CD32;|38: aclLinen = $FFFAF0E6;|38: aclMagenta = $FFFF00FF;|38: aclMaroon = $FF800000;|38: aclMediumAquamarine = $FF66CDAA;|38: aclMediumBlue = $FF0000CD;|38: aclMediumOrchid = $FFBA55D3;|38: aclMediumPurple = $FF9370DB;|38: aclMediumSeaGreen = $FF3CB371;|38: aclMediumSlateBlue = $FF7B68EE;|38: aclMediumSpringGreen = $FF00FA9A;|38: aclMediumTurquoise = $FF48D1CC;|38: aclMediumVioletRed = $FFC71585;|38: aclMidnightBlue = $FF191970;|38: aclMintCream = $FFF5FFFA;|38: aclMistyRose = $FFFFE4E1;|38: aclMoccasin = $FFFFE4B5;|38: aclMoneyGreen = $FFC0DCC0;|38: aclNavajoWhite = $FFFFDEAD;|38: aclNavy = $FF000080;|38: aclOldLace = $FFFDF5E6;|38: aclOlive = $FF808000;|38: aclOliveDrab = $FF6B8E23;|38: aclOrange = $FFFFA500;|38: aclOrangeRed = $FFFF4500;|38: aclOrchid = $FFDA70D6;|38: aclPaleGoldenrod = $FFEEE8AA;|38: aclPaleGreen = $FF98FB98;|38: aclPaleTurquoise = $FFAFEEEE;|38: aclPaleVioletRed = $FFDB7093;|38: aclPapayaWhip = $FFFFEFD5;|38: aclPeachPuff = $FFFFDAB9;|38: aclPeru = $FFCD853F;|38: aclPink = $FFFFB6C1;|38: aclPlum = $FFDDA0DD;|38: aclPowderBlue = $FFB0E0E6;|38: aclPurple = $FF800080;|38: aclRed = $FFFF0000;|38: aclRosyBrown = $FFBC8F8F;|38: aclRoyalBlue = $FF4169E1;|38: aclSaddleBrown = $FF8B4513;|38: aclSalmon = $FFFA8072;|38: aclSandyBrown = $FFF4A460;|38: aclSeaGreen = $FF2E8B57;|38: aclSeaShell = $FFFFF5EE;|38: aclSienna = $FFA0522D;|38: aclSilver = $FFC0C0C0;|38: aclSkyBlue = $FFA6CAF0;|38: aclSlateBlue = $FF6A5ACD;|38: aclSlateGray = $FF708090;|38: aclSnow = $FFFFFAFA;|38: aclSpringGreen = $FF00FF7F;|38: aclSteelBlue = $FF4682B4;|38: aclTan = $FFD2B48C;|38: aclTeal = $FF008080;|38: aclThistle = $FFD8BFD8;|38: aclTomato = $FFFF6347;|38: aclTransparent = $00FFFFFF;|38: aclTurquoise = $FF40E0D0;|38: aclViolet = $FFEE82EE;|38: aclWheat = $FFF5DEB3;|38: aclWhite = $FFFFFFFF;|38: aclWhiteSmoke = $FFF5F5F5;|38: aclYellow = $FFFFFF00;|38: aclYellowGreen = $FF9ACD32;|
Point(doLoad)
}
Add(MTStrTbl,3412059,182,434)
{
Left=5
Top=5
Width=545
Height=423
Font=[Courier New,8,1,0,204]
Name="tabl"
Columns=#5:ID=60|8:Name=125|8:Color=80|6:HEX=80|7:Blue=60|8:Green=60|6:Red=60|
FlatScroll=1
ColumnClick=1
SmallIconsManager="icons"
DrawManager="draw"
Point(onMouseMove)
Point(ItemAtPos)
Point(onMouseUp)
link(onClick,8857963:doSeparateMT,[(254,440)(254,293)])
link(onColumnClick,437380:doCase,[])
link(onMouseMove,10233410:doEvent,[(232,468)(232,496)(121,496)(121,524)])
}
Add(MST_RowAction,7296923,805,182)
{
MSTControl="tabl"
}
Add(MT_String,14363550,756,182)
{
Delimeter="="
link(onResult,7296923:doRowAction,[])
}
Add(IconsManager,560770,889,189)
{
Name="icons"
ImgSize=20
Icons=[]
Point(EndIdxIcons)
}
Add(Hub,4982551,644,119)
{
OutCount=4
link(onEvent1,14329012:doCreate,[(862,125)(862,62)])
link(onEvent2,4682190:doData,[(862,132)(862,153)])
link(onEvent3,15126526:doAdd,[(852,139)(852,279)])
link(onEvent4,4420109:doGetRGB,[])
}
Add(Bitmap,14329012,889,42)
{
HWidth=20
HHeight=20
Point(doCreate)
Point(onCreate)
link(onCreate,1719533:doDraw,[(957,48)(957,111)])
}
Add(Icon,14341706,938,133)
{
Transparent=65793
Point(doLoadFromBitmap)
}
Add(DoData,4682190,889,147)
{
link(onEventData,14341706:doLoadFromBitmap,[])
link(Data,6420969:Var2,[])
}
Add(ArrayRW,15126526,924,259)
{
link(Array,560770:IconArray,[(930,240)(895,240)])
link(Value,14341706:Icon,[])
}
Add(Img_Rectangle,1719533,994,105)
{
Point(Point1)
Point(Point2)
link(Bitmap,6420969:Var3,[(1000,96)])
link(Point1,6621306:Point,[(1014,89)(972,89)])
link(Point2,15381893:Point,[])
}
Add(GetDataEx,6420969,889,91)
{
link(Data,14329012:Bitmap,[])
}
Add(PointXY,6621306,966,42)
{
}
Add(PointXY,15381893,1015,42)
{
X=20
Y=20
}
Add(MST_SortInCol,2218945,294,434)
{
MSTControl="tabl"
Point(doSortDigit)
}
Add(MST_RowAction,13969240,812,420)
{
Action=8
MSTControl="tabl"
Point(Index)
link(Index,11682378:Var3,[(818,348)])
}
Add(MST_SelectRow,8210463,791,294)
{
MSTControl="tabl"
Point(doSetFocus)
}
Add(MST_RowAction,762390,798,462)
{
Action=9
MSTControl="tabl"
Point(Index)
link(Index,11682378:Var2,[])
}
Add(GetDataEx,11682378,798,343)
{
link(Data,8210463:Index,[])
}
Add(Memory,15001377,525,364)
{
Point(Data)
link(Data,11682378:Var1,[(531,348)])
}
Add(Hub,1298409,476,413)
{
InCount=2
OutCount=3
link(onEvent1,14956125:doWork2,[])
link(onEvent2,13969240:doRowAction,[])
link(onEvent3,9399632:doOperation,[])
}
Add(Hub,3026422,476,455)
{
InCount=2
OutCount=3
link(onEvent1,14956125:doWork3,[(501,461)])
link(onEvent2,762390:doRowAction,[])
link(onEvent3,9833844:doOperation,[])
}
Add(HubEx,14956125,497,413)
{
Angle=3
link(onEvent,15001377:doValue,[(501,370)])
}
Add(GetDataEx,2417978,525,406)
{
link(Data,15001377:Value,[])
}
Add(HubEx,11808865,637,427)
{
Angle=3
link(onEvent,15171303:doEvent1,[(641,300)])
}
Add(Math,9399632,525,427)
{
OpType=1
Op2=1
ResultType=0
link(onResult,15691649:doCompare,[])
link(Op1,2417978:Var2,[])
}
Add(Math,9833844,539,469)
{
Op2=1
ResultType=0
link(onResult,1219956:doCompare,[])
link(Op1,2417978:Var3,[(545,411)])
}
Add(Hub,15171303,749,294)
{
InCount=2
link(onEvent1,8210463:doSelect,[])
link(onEvent2,8210463:doSetFocus,[])
}
Add(MST_DrawManager,5730419,133,434)
{
Name="draw"
IconSize=18
SingleString=0
ColorRowSel=0
LightTxtColor=255
}
Add(Case,12497842,350,406)
{
Value=Integer(109)
link(onNextCase,11789265:doCase,[(394,412)(394,433)(338,433)(338,454)])
link(onTrue,1298409:doEvent1,[])
}
Add(Case,11789265,350,448)
{
Value=Integer(107)
link(onTrue,3026422:doEvent1,[])
}
Add(Button,16586322,28,168)
{
Left=5
Top=435
Width=115
TabOrder=-1
Caption="LoadColorText"
link(onClick,10867382:doEnum,[])
}
Add(Button,2946555,28,238)
{
Left=220
Top=435
Width=95
TabOrder=-1
Caption="LoadTable"
}
Add(Button,6212881,28,273)
{
Left=320
Top=435
Width=95
TabOrder=-1
Caption="SaveTable"
}
Add(If_else,15691649,581,427)
{
Type=4
Op2=Integer(0)
link(onTrue,11808865:doWork2,[])
link(onFalse,12444947:doOperation,[])
}
Add(Math,12444947,658,434)
{
Op2=1
ResultType=0
link(onResult,8010240:doWork2,[])
}
Add(If_else,1219956,595,469)
{
Type=3
link(onTrue,11808865:doWork3,[(641,475)])
link(onFalse,8466480:doOperation,[])
link(Op2,8210463:EndIdx,[(608,341)(818,341)])
}
Add(Math,8466480,658,476)
{
OpType=1
Op2=1
ResultType=0
link(onResult,8010240:doWork3,[(720,482)])
}
Add(HubEx,8010240,716,434)
{
Angle=3
link(onEvent,15171303:doEvent2,[(720,307)])
}
Add(Math,13226602,182,518)
{
OpType=1
Op2=1
ResultType=0
link(onResult,5527295:doCase,[])
link(Op1,3412059:ItemAtPos,[(188,503)(216,503)])
link(Op2,3412059:Index,[])
}
Add(IndexToChanel,10233410,133,518)
{
link(onEvent1,13226602:doOperation,[])
}
Add(If_else,3984063,294,518)
{
Type=1
Op2=Integer(0)
link(onTrue,15307666:doOperation,[(338,524)(338,496)])
link(onFalse,3026422:doEvent2,[(441,531)(441,468)])
}
Add(Case,5527295,245,518)
{
Value=Integer(0)
link(onNextCase,3984063:doCompare,[])
}
Add(Math,15307666,350,490)
{
OpType=33
ResultType=0
link(onResult,1298409:doEvent2,[(429,496)(429,426)])
}
Add(Case,437380,245,441)
{
Value=Integer(3)
link(onNextCase,2218945:doSortDigit,[])
}
Add(Edit,12538303,350,287)
{
Left=455
Top=435
Width=95
Font=[Tahoma,8,1,0,204]
Cursor=1
Text=""
Alignment=2
}
Add(MT_MultiData,8857963,294,287)
{
From=2
Count=1
Point(Data)
link(onData1,12538303:doText,[])
link(Data,3412059:Select,[(300,274)(169,274)(169,491)(188,491)])
}
--- Добавлено в 2025-07-18 16:10:06
Как будет немного свободного времени, я попробую заняться этим вопросом.