Тема хоть и старая, но решил поделиться своей наработкой. Мне тоже понадобилось писать длинные названия столбцов. В этой теме http://forum.hiasm.com/topic/57902/0 почерпнул идею самодельной шапки MTStrTbl. Вот что у меня получилось.
Схема
Add(MTStrTbl,1220665,721,133) { Top=32 Width=685 Height=133 Align=5 Name="табл" Layout="1" HeightScale=100 TextAlign=2 Style=4 Grid=0 DrawManager="draw" } Add(MainForm,2953706,126,133) { Width=701 Height=204 Position=1 } Add(StrList,14940135,308,84) { Strings=#12:№ п.п.=40==2|12:Адрес=100==0|14:Телефон=100==0| } Add(Hub,10281980,238,147) { OutCount=4 link(onEvent1,78252:doEvent1,[(527,153)(527,181)]) link(onEvent2,3278472:doEnum,[]) link(onEvent3,13501104:doEnum,[]) link(onEvent4,2227269:doEvent1,[(312,174)(312,202)]) } Add(ArrayEnum,3278472,322,154) { link(onItem,14792321:doEvent1,[(376,160)(376,146)]) link(Array,14940135:Array,[]) } Add(StrList,1078822,378,84) { Strings=#21:1;Ленина, 140;7-52-36|22:2;Гагарина, 18;7-17-44|22:3;Пушкина, 29Б;5-56-21| } Add(ArrayEnum,13501104,392,161) { link(onItem,5004350:doWork2,[(436,167)(436,181)]) link(Array,1078822:Array,[]) } Add(MT_String,7629212,476,161) { link(onResult,6916704:doAddRow,[(536,167)(536,139)]) } Add(StyleXP,4951727,126,84) { } Add(ChildPanel,10794649,721,182) { @Hint=#26:Самодельныая шапка таблицы| link(onEvent1,10515223:doSort,[]) AddHint(-73,60,173,13,@Hint) } BEGIN_SDK Add(EditMulti,12543744,21,21) { EventCount=1 WorkCount=3 Width=132 Height=109 link(doWork1,12924194:##clear,[(59,27)(59,41)]) link(doWork2,12924194:##add,[(59,34)(59,48)]) link(doWork3,12693430:doHeight,[(53,41)(53,97)]) } Add(Panel,12693430,84,84) { Width=685 Height=1 Align=2 Color=16777215 ModeSp=3 SizeSp=2 BevelInner=0 Point(doHeight) } Add(ChildPanelEx,12924194,84,35) { Mode=1 link(onEventData,12543744:onEvent1,[(134,41)(134,27)]) link(индекс,12924194:##index,[(90,23)(72,23)(72,78)(90,78)]) } BEGIN_SDK Add(EditMultiEx,6203688,21,21) { WorkCount=#7:##clear|5:##add| EventCount=#11:onEventData| VarCount=#7:##index| DataCount=#6:индекс|0:| Width=657 Height=256 Point(##clear) Point(##add) Point(##index) link(##add,7092218:doEvent1,[(42,34)(42,48)]) } Add(Panel,12581313,336,133) { Left=35 Top=105 Width=1920 Height=1080 Align=1 Color=16777215 ModeSp=3 SizeSp=2 ColorSp=15790320 BevelInner=0 Point(doWidth) Point(onResize) Point(Width) Point(doColor) link(onResize,2008545:doCompare,[]) } Add(Hub,7092218,49,42) { OutCount=4 link(onEvent1,7428087:doValue,[]) link(onEvent2,6782108:doSplit,[]) link(onEvent3,1455011:doAlignvertical,[(87,62)(87,230)]) link(onEvent4,13363551:doData,[(169,69)(169,146)]) } Add(Memory,7428087,392,42) { @Hint=#34:Индекс схемы, он же индекс колонки| Point(Data) link(Data,6203688:индекс,[(398,28)(27,28)]) AddHint(46,-1,166,26,@Hint) } Add(FormatStr,11024032,567,140) { DataCount=3 Mask="%1=%2==%3" link(onFString,11641728:doWrite,[]) link(Str1,6701484:Var3,[(573,110)]) link(Str3,14334982:Var3,[(587,103)]) } Add(ArrayRW,11641728,623,133) { link(Array,2485689:ColumnArray,[]) link(Index,10450616:Var3,[(636,96)]) } Add(MST_ArrayCols,2485689,623,35) { MSTControl="parent.parent.табл" } Add(If_else,2008545,392,140) { Op2=Integer(0) link(onTrue,3284586:doData,[]) link(onFalse,10977285:doOperation,[]) link(Op1,2176024:Var2,[]) } Add(Math,10977285,441,147) { Op2=4 link(onResult,14700479:doEvent2,[]) link(Op1,12383158:Var2,[]) } Add(DoData,3284586,490,140) { link(onEventData,14700479:doEvent1,[]) link(Data,12383158:Var3,[(496,117)]) } Add(GetDataEx,12383158,441,112) { Angle=3 link(Data,12581313:Width,[(376,117)(376,178)(342,178)]) } Add(Hub,14700479,539,140) { InCount=2 OutCount=1 link(onEvent1,11024032:doString,[]) } Add(MultiElementEx,1455011,203,217) { @Hint=#26:Отрисовка названий колонок| link(Text,6701484:Var2,[(209,208)(195,208)]) link(AlighHor,14334982:Var2,[]) link(Bitmap,7841714:Bitmap,[]) link(X,7841714:Top,[]) link(Y,7841714:Left,[]) link(X1,7841714:Width,[]) link(Y1,7841714:Height,[]) AddHint(138,14,166,13,@Hint) } BEGIN_SDK Add(EditMultiEx,16573298,21,21) { WorkCount=#6:doDraw|15:doAlignvertical| DataCount=#4:Text|8:AlighHor|6:Bitmap|1:X|1:Y|2:X1|2:Y1| Width=174 Height=221 link(doDraw,8847184:doDraw,[(35,27)(35,202)]) link(doAlignvertical,7201138:doData,[(35,34)(35,209)]) } Add(Img_TextInRect,8847184,105,196) { Point2AsOffset=0 OffsetRight=2 AlignHorizon=2 Alignvertical=2 Point(doAlignHorizon) link(Bitmap,16573298:Bitmap,[(111,151)(41,151)]) link(Text,16573298:Text,[(118,175)(27,175)]) link(Point1,10223932:Point,[]) link(Point2,10999290:Point,[(132,177)(153,177)]) } Add(PointXY,10223932,119,133) { link(X,16573298:X,[(125,124)(48,124)]) link(Y,16573298:Y,[(132,77)(55,77)]) } Add(PointXY,10999290,147,63) { link(X,16573298:X1,[(153,50)(62,50)]) link(Y,16573298:Y1,[(160,42)(69,42)]) } Add(DoData,7201138,49,203) { link(onEventData,8847184:doAlignHorizon,[]) link(Data,16573298:AlighHor,[(55,188)(34,188)]) } END_SDK Add(IndexToChanel,8744723,490,175) { link(onEvent1,16768989:doData,[]) } Add(GetDataEx,10450616,602,91) { Angle=3 link(Data,2176024:Var3,[]) } Add(Hub,9093452,119,168) { InCount=2 link(onEvent1,7841714:doClear,[]) link(onEvent2,1455011:doDraw,[(172,181)(172,223)]) } Add(DoData,16768989,602,175) { link(onEventData,6203688:onEventData,[(663,181)(663,27)]) link(Data,10450616:Var2,[]) } Add(MultiElementEx,2303422,280,182) { @Hint=#15:Изменение цвета| link(onColor1,12581313:doColor,[(324,188)(324,153)]) link(onColor2,5030271:doEvent1,[(337,195)(337,256)(102,256)(102,202)]) AddHint(68,18,105,13,@Hint) } BEGIN_SDK Add(EditMultiEx,10027322,21,21) { WorkCount=#8:doEvent1|9:doEvent11| EventCount=#8:onColor1|8:onColor2| Width=510 Height=151 link(doEvent1,8553288:doEvent1,[(39,27)(39,125)]) link(doEvent11,9701472:doEvent1,[(39,34)(39,48)]) } Add(Memory,11849292,350,42) { Default=Integer(100) link(onData,13506573:doEvent1,[]) } Add(MMTimer,2344419,126,42) { Interval=20 Enable=1 @IsLib=True link(onTimer,1443830:doOperation,[]) } Add(Hub,9701472,56,42) { link(onEvent1,2344419:doTimer,[]) link(onEvent2,16465767:doEvent1,[(81,55)(81,132)]) } Add(Hub,8553288,56,119) { link(onEvent1,12999749:doTimer,[]) link(onEvent2,13372952:doEvent1,[(81,132)(81,55)]) } Add(Math,1443830,189,42) { Op2=5 link(onResult,3786256:doCompare,[]) link(Op1,9271514:Var3,[(195,30)(181,30)]) } Add(If_else,3786256,238,42) { Type=3 Op2=Integer(100) link(onTrue,2784498:doEvent1,[]) link(onFalse,13372952:doEvent2,[(282,55)(282,78)(86,78)(86,62)]) } Add(Hub,13372952,98,49) { InCount=2 OutCount=1 link(onEvent1,2344419:doStop,[]) } Add(Math,2973136,175,119) { OpType=1 Op2=5 link(onResult,12173902:doCompare,[]) link(Op1,9271514:Var2,[]) } Add(If_else,12173902,238,119) { Type=4 Op2=Integer(0) link(onTrue,2784498:doEvent2,[(296,125)(296,55)]) link(onFalse,16465767:doEvent2,[(280,132)(280,157)(86,157)(86,139)]) } Add(Hub,16465767,98,126) { InCount=2 OutCount=1 link(onEvent1,12999749:doStop,[]) } Add(Hub,2784498,322,42) { InCount=2 OutCount=1 link(onEvent1,11849292:doValue,[]) } Add(GetDataEx,9271514,175,92) { Angle=1 link(Data,11849292:Value,[(356,97)]) } Add(ColorShade,8825518,434,42) { Color=15780518 Mode=0 link(onResult,10027322:onColor1,[(481,48)(481,27)]) } Add(ColorShade,3690173,434,84) { Color=16771802 Mode=0 link(onResult,10027322:onColor2,[(499,90)(499,34)]) } Add(Hub,13506573,399,42) { link(onEvent1,8825518:doShade,[]) link(onEvent2,3690173:doShade,[(423,55)(423,90)]) } Add(MMTimer,12999749,126,119) { elink(2344419) link(onTimer,2973136:doOperation,[]) } END_SDK Add(Hub,5030271,119,196) { OutCount=3 link(onEvent1,7841714:doColor,[(181,202)(181,181)]) link(onEvent2,9093452:doEvent2,[(153,209)(153,195)(104,195)(104,181)]) link(onEvent3,7841714:doRefresh,[(162,216)(162,167)]) } Add(PaintBox,7841714,217,161) { Width=1920 Height=1080 Align=5 Color=16777215 Point(Top) Point(Left) Point(Width) Point(Height) Point(onResize) Point(doColor) Point(onMouseDown) Point(onMouseEnter) Point(onMouseLeave) link(onResize,9093452:doEvent1,[(275,174)(275,154)(103,154)(103,174)]) link(onMouseDown,8744723:doEvent,[]) link(onMouseEnter,2303422:doEvent1,[]) link(onMouseLeave,2303422:doEvent11,[]) } Add(MultiStrPart,6782108,189,49) { Char="=" Count=4 } Add(DoData,13363551,280,140) { link(onEventData,12581313:doWidth,[]) link(Data,6782108:Part2,[(286,120)(202,120)]) } Add(GetDataEx,6701484,189,105) { link(Data,6782108:Part1,[]) } Add(GetDataEx,2176024,392,91) { link(Data,7428087:Value,[]) } Add(GetDataEx,14334982,210,98) { link(Data,6782108:Part4,[]) } END_SDK END_SDK Add(Hub,14792321,574,140) { InCount=3 link(onEvent1,6916704:doAddCols,[]) link(onEvent2,10794649:doWork2,[(639,153)(639,195)]) } Add(MST_SortInCol,10515223,784,182) { MSTControl="табл" } Add(MST_DrawManager,10020943,784,133) { Name="draw" SingleString=0 TabGrid=0 TabGridFrame=0 StyleGrid3D=1 Gradient=0 GradientColor=16766387 FrameColor=16684946 BkFrameColor=16774376 ShadowColor=536870912 LightTxtColor=-16777209 GutterColor=16777215 } Add(MST_DB,6916704,651,133) { MSTControl="табл" Point(doClearAll) } Add(Button,7611304,189,147) { Left=10 Top=140 Caption="1" Data=Integer(18) link(onClick,10281980:doEvent1,[]) } Add(Button,1313184,189,287) { Left=75 Top=140 Caption="2" Data=Integer(32) link(onClick,6349046:doEvent1,[]) } Add(Button,5397854,189,427) { Left=140 Top=140 Caption="3" Data=Integer(48) link(onClick,6395279:doEvent1,[]) } Add(StrList,8098602,308,224) { Strings=#12:№ п.п.=30==2|21:Адрес магазина=100==0|25:Телефон для заявок=100==2| } Add(Hub,6349046,238,287) { OutCount=4 link(onEvent1,78252:doEvent2,[(566,293)(566,188)]) link(onEvent2,8786698:doEnum,[]) link(onEvent3,11673750:doEnum,[]) link(onEvent4,2227269:doEvent2,[(583,314)(583,209)]) } Add(ArrayEnum,8786698,322,294) { link(onItem,14792321:doEvent2,[(546,300)(546,153)]) link(Array,8098602:Array,[]) } Add(StrList,7585486,378,224) { Strings=#21:1;Ленина, 140;7-52-36|22:2;Гагарина, 18;7-17-44|22:3;Пушкина, 29Б;5-56-21|0:| } Add(ArrayEnum,11673750,392,301) { link(onItem,11202939:doWork2,[]) link(Array,7585486:Array,[]) } Add(HubEx,5004350,455,175) { link(onEvent,7629212:doMTString,[]) } Add(StrList,11417168,315,364) { Strings=#12:№ п.п.=30==2|21:Адрес магазина=100==0|25:Телефон для заявок=100==2|45:Сотовый номер дежурного администратора=100==2| } Add(Hub,6395279,245,427) { OutCount=4 link(onEvent1,78252:doEvent3,[(574,433)(574,195)]) link(onEvent2,14324283:doEnum,[]) link(onEvent3,5515100:doEnum,[]) link(onEvent4,2227269:doEvent3,[(592,454)(592,216)]) } Add(ArrayEnum,14324283,329,434) { link(onItem,14792321:doEvent3,[(556,440)(556,160)]) link(Array,11417168:Array,[]) } Add(StrList,7074781,385,364) { Strings=#33:1;Ленина, 140;7-52-36;8-ХХХ-ХХ-ХХ|34:2;Гагарина, 18;7-17-44;8-ХХХ-ХХ-ХХ|34:3;Пушкина, 29Б;5-56-21;8-ХХХ-ХХ-ХХ|0:| } Add(ArrayEnum,5515100,399,441) { link(onItem,11202939:doWork3,[(459,447)]) link(Array,7074781:Array,[]) } Add(HubEx,11202939,455,301) { Angle=3 link(onEvent,5004350:doWork3,[]) } Add(Hub,78252,588,175) { InCount=3 link(onEvent1,6916704:doClearAll,[(626,181)(626,153)]) link(onEvent2,10794649:doWork1,[]) } Add(Hub,2227269,609,196) { InCount=3 OutCount=1 link(onEvent1,10794649:doWork3,[]) }
|