Вверх ↑
Этот топик читают: Гость
Ответов: 263
Рейтинг: 18
#1: 2019-06-30 19:07:51 ЛС | профиль | цитата
Ох коллеги, устал я от не предсказуемости поведения компонентов.
В этой теме http://forum.hiasm.com/topic/65252/2 я поделился самодельной шапкой к MTStrTbl. Спасибо sla8a, который допилил схему до ума. Сейчас я делаю редактор шапки в котором, на даном этапе, реализую настройку выравнивания текста заголовка столбца. Вот схема.
Схема

Add(MainForm,2953706,210,168)
{
Width=555
Height=150
Position=1
link(onCreate,11034465:doEnum,[])
}
Add(ChildPanel,10794649,364,182)
{
@Hint=#26:Самодельныая шапка таблицы|
}
BEGIN_SDK
Add(EditMulti,12543744,21,21)
{
EventCount=1
WorkCount=1
Width=209
Height=102
link(doWork1,12924194:##add,[(53,27)(53,48)])
}
Add(Panel,12693430,133,42)
{
Width=550
Height=100
Align=2
Color=16777215
ModeSp=3
SizeSp=2
BevelInner=0
}
Add(ChildPanelEx,12924194,84,42)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,6203688,21,21)
{
WorkCount=#5:##add|
DataCount=#0:|0:|
Width=461
Height=263
Point(##add)
link(##add,1422035:doValue,[(35,27)(35,41)])
}
Add(Panel,12581313,392,84)
{
Width=84
Height=24
Align=1
Color=16777215
ModeSp=1
SizeSp=2
ColorSp=15790320
BevelInner=0
Point(doColor)
}
Add(MultiElementEx,2303422,308,91)
{
@Hint=#15:Изменение цвета|
link(onColor1,12581313:doColor,[])
link(onColor2,5030271:doEvent1,[(361,104)(361,73)(120,73)(120,104)])
}
BEGIN_SDK
Add(EditMultiEx,10027322,21,21)
{
WorkCount=#8:doEvent1|9:doEvent11|
EventCount=#8:onColor1|8:onColor2|
Width=510
Height=214
link(doEvent1,8553288:doEvent1,[(39,27)(39,125)])
link(doEvent11,9701472:doEvent1,[(30,34)(30,48)])
}
Add(Memory,11849292,315,42)
{
Default=Integer(100)
link(onData,13506573:doEvent1,[])
}
Add(MMTimer,6112562,126,42)
{
Interval=5
Enable=1
link(onTimer,1443830:doOperation,[])
}
Add(Hub,9701472,56,42)
{
link(onEvent1,6112562:doTimer,[])
link(onEvent2,6590036:doWork1,[(81,55)])
}
Add(Hub,8553288,56,119)
{
link(onEvent1,12999749:doTimer,[])
link(onEvent2,14164394:doWork2,[(94,132)(94,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,12991967:doWork2,[])
link(onFalse,14164394:doWork3,[(282,55)(282,86)(109,86)])
}
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,12991967:doWork3,[(298,125)])
link(onFalse,6590036:doWork2,[(295,132)(295,164)(72,164)(72,139)])
}
Add(GetDataEx,9271514,175,91)
{
Angle=1
link(Data,11849292:Value,[(321,96)])
}
Add(ColorShade,8825518,399,42)
{
Color=15780518
Mode=0
link(onResult,10027322:onColor1,[(481,48)(481,27)])
}
Add(ColorShade,3690173,399,84)
{
Color=16771802
Mode=0
link(onResult,10027322:onColor2,[(499,90)(499,34)])
}
Add(Hub,13506573,364,42)
{
link(onEvent1,8825518:doShade,[])
link(onEvent2,3690173:doShade,[(388,55)(388,90)])
}
Add(MMTimer,12999749,126,119)
{
Interval=5
Enable=1
link(onTimer,2973136:doOperation,[])
}
Add(HubEx,12991967,294,42)
{
link(onEvent,11849292:doValue,[])
}
Add(HubEx,14164394,105,49)
{
link(onEvent,6112562:doStop,[])
}
Add(HubEx,6590036,77,133)
{
link(onEvent,12999749:doStop,[(105,139)(105,132)])
}
END_SDK
Add(Hub,5030271,133,98)
{
InCount=2
link(onEvent1,7841714:doColor,[])
link(onEvent2,4181371:doWork2,[(160,111)(160,90)])
}
Add(PaintBox,7841714,245,84)
{
Width=1920
Height=1080
Align=5
Color=16777215
ClearBeforeDraw=0
Point(Width)
Point(Height)
Point(doColor)
Point(onMouseEnter)
Point(onMouseLeave)
Point(onResize)
link(onBeforeDraw,8847184:doDraw,[(295,90)(295,234)(223,234)(223,195)])
link(onMouseEnter,2303422:doEvent1,[])
link(onMouseLeave,2303422:doEvent11,[])
link(onResize,4181371:doWork1,[(289,111)(289,81)(171,81)])
}
Add(Img_TextInRect,8847184,231,189)
{
Point1=65537
Point2AsOffset=0
OffsetRight=5
AlignHorizon=2
Alignvertical=2
Point(doAlignHorizon)
link(Bitmap,7841714:Bitmap,[(237,155)(251,155)])
link(Text,1422035:Value,[(244,125)(55,125)])
link(Point2,10999290:Point,[])
}
Add(PointXY,10999290,252,140)
{
link(X,7841714:Width,[])
link(Y,7841714:Height,[])
}
Add(Memory,1422035,49,35)
{
}
Add(ChildPanel,9231110,49,196)
{
link(onEvent1,4226806:doEvent1,[])
}
BEGIN_SDK
Add(EditMulti,15979597,21,21)
{
EventCount=2
DataCount=1
Width=447
Height=305
}
Add(Panel,12093390,56,35)
{
Left=35
Top=105
Width=74
Align=4
}
Add(ButtonRush,9991236,189,28)
{
Width=24
Height=24
Name="AL"
ColorFrom=-16777201
ColorTo=-16777201
BorderColor=-16777201
GradientStyle=3
ColorFromOver=16771802
ColorToOver=16771802
BorderColorOver=-16777214
ShadowOffsetOver=0
GradientStyleOver=3
ColorFromDown=16771802
ColorToDown=16771802
BorderColorDown=-16777214
ShadowOffsetDown=1
GradientStyleDown=3
ColorToDis=12632256
ColorTextDis=-16777199
ShadowOffsetDis=0
GradientStyleDis=3
Caption=""
Data=Integer(0)
Spacing=1
OnlyGlyphDef=0
Glyphs=['Bitmap'=[ZIP3604000078DAA553594E024114C4C40378043F3D819FCAE212134554B6011714578208B2C6BB708601CEC111882BDB086E83EC3394AF1BC710F003B1929AEE7477BDEAEAE9366ECC4FEB38E68973C4996F4EE966FB13DFF383C8E572C866B313916993C92432990C52A91444713CB2B54CA3692785E63B2E545585A228BC6560DA743ACDFB46FD026C3B5BF07AF611BCF4231C0AE0F4F8100E9B15CB26235FA374BBE8763A9C0CA228FEE827C1A0BFC9A0C7B66503BB8203C7471EF87DE788864348C42208F87D34760097D30E8B791D26FD22D730EDF8FE3DF454CAAEB00CAD117F965170D828F31122A120E2D16BF8CE4EE0169C585B5D41BBDDC2E7670D724D862C7F8CE859DD61BF3EE9DB53D1217DABD940B351479DEA0CEB978C0658B737B1E71670E23DE499E3D1306E123104037EBEAF5D9793CEC88C253AABE1FCACAE427BE8FFA336F911A965FD76ABC93D6BB46FF9E31D6FAF2FBFFA0B766B3F7FF00AB1C8352E06F257AB15944A45148B05140AF9117D99E62ACF129EA532A7249578CBC6A47211F9A7473CDCDFE1E1EE16F7444DFFDFFBCFEEA0F60EFE42CDF70B19625CFD]]
Point(doEnabled)
link(onClick,5310417:doWork2,[])
}
Add(ButtonRush,2010469,203,63)
{
Left=24
Width=24
Height=24
Name="AC"
ColorFrom=-16777201
ColorTo=-16777201
BorderColor=-16777201
GradientStyle=3
ColorFromOver=16771802
ColorToOver=16771802
BorderColorOver=-16777214
ShadowOffsetOver=0
GradientStyleOver=3
ColorFromDown=16771802
ColorToDown=16771802
BorderColorDown=-16777214
ShadowOffsetDown=1
GradientStyleDown=3
ColorToDis=12632256
ColorTextDis=-16777199
ShadowOffsetDis=0
GradientStyleDis=3
Caption=""
Data=Integer(2)
Spacing=1
OnlyGlyphDef=0
Glyphs=['Bitmap'=[ZIP3604000078DAA553594E025110C4C40378043F3D015F2AA818C520C16882EC12DC4258448218EFC21958CEC11188A0B2EAA0917D6618CAD74F9E0B7EA05849259DE9AAA9AE64667D573FAFE3D0332E312E8C39A75B7C5F8CF75F51281490CFE767227953A91472B91C32990CD2E9DF91B4E411DE592172099AA6714EC357DDFBCD693EAB8A82A1AAF279C36880F3D08E70F01C97D1307C6E27B6374D7C471AD212C82BF2670179B3D92C9F8D2BCBB05A76E0B01FE0D8EFE3D989780CD7577144C3419C1EFBE176D8B167B5F0FB08E415F9AA2263A40DA766924655061FF9C2DF6ABDA2D3694366EFD9625DBD2E272E22215CB11B02475E58CC66C8F2806B483BE9EFB2E7837E8FDFC15244DAE73CD2F88E34A49DECBF6658858D7573B18E27013F22A1209289386E9209C4D81D672701785C0EECDBAC30AD197FF47F796EA2CDEEEA753B50D89D94A5C8F2C72C0FFAE8B21D69483B797FA55246AD5685D494787FCFB87F42F4DF3143929EB886B493FE52F11677A522CA0FF768D4AB786CD4BFB1CE7CB4230D6985FFBFDF3F7D83E23FF80B45EE1B71ED66B1]]
Point(doEnabled)
link(onClick,611785:doWork2,[])
}
Add(ButtonRush,1645491,217,98)
{
Left=48
Width=24
Height=24
Name="AR"
ColorFrom=-16777201
ColorTo=-16777201
BorderColor=-16777201
GradientStyle=3
ColorFromOver=16771802
ColorToOver=16771802
BorderColorOver=-16777214
ShadowOffsetOver=0
GradientStyleOver=3
ColorFromDown=16771802
ColorToDown=16771802
BorderColorDown=-16777214
ShadowOffsetDown=1
GradientStyleDown=3
ColorToDis=12632256
ColorTextDis=-16777199
ShadowOffsetDis=0
GradientStyleDis=3
Caption=""
Data=Integer(1)
Spacing=1
OnlyGlyphDef=0
Glyphs=['Bitmap'=[ZIP3604000078DAA553594E024114C4C40378043F3D815FAE231013C518659911C9288CA288208B180FC31958CEC111882B3BAE8C0AB35976378C41D404B1924AF74B77CDABEAE9E61CD3E3168669C229C2891EC72C93DD85DE7A3F8AC5220A85C248A4DA743A8D7C3E8F6C368B4C6638D2BD54636A4785D997C2300CE8BACEC661D1F59C61734D5519754D6335373F07D7E63AFC3B224E2261246211EC4B7EF02E27EC4B1CDB93CBE53EFB8F02AAA7A458989DC1DAEA0A78B70B7ED187702888542286B3D338A24721EC05FCF07905E6C9CA2D7EEBAFA90A0C5DC3BBA193EA7DE8FEA6BED57A862CB7F0F22243513A2CA3E07192CC0124E351E62374B00FAFC063D96EFBA67F25BAF6DB2B3AED37A88A422CF4FF87AF7EA8CFC1FC8BE4BCD7D71CD8E23D90764544C287A46702E7A92462C761042509E2B6176EE7066C3F9CFFE3C33D5ACF4F90490EEA45E9B4D99950523F74D4359591FA1CD497CB25542A65546B55DCDD3561B72E417093FC01923F16452A49F207F77ECD7F7579816BCAAB4B946E6F5027DF6936EA68D46B8CB436E7B56AE553FFDFFB4FEFAFF90EFE42B3EF076C165CF3]]
Point(doEnabled)
link(onClick,611785:doWork3,[(270,104)])
}
Add(ButtonRush,1253019,245,168)
{
Left=48
Top=24
Width=24
Height=24
ColorFrom=-16777201
ColorTo=-16777201
BorderColor=-16777201
GradientStyle=3
ColorFromOver=16771802
ColorToOver=16771802
BorderColorOver=-16777214
ShadowOffsetOver=0
GradientStyleOver=3
ColorFromDown=16771802
ColorToDown=16771802
BorderColorDown=-16777214
ShadowOffsetDown=1
GradientStyleDown=3
ColorToDis=12632256
ColorTextDis=-16777199
ShadowOffsetDis=0
GradientStyleDis=3
Caption=""
Spacing=1
OnlyGlyphDef=0
Glyphs=['Bitmap'=[ZIP3604000078DA9D535D6E824010B6490FD023F4B127F000BEF782F5B1504D941F3D46E50C846ACB2E2D148C54D8843ADD19043775D1842FF9921966E69BD99D65F438BC1D1086920F927747DE0CEEEBC031AE02AEC0F77DF03C0FFA623C7E82E5D2EDADB1583810C709388EA5D5088280BE77D1B6E794C71893F6EC4C03E7735D8BF230AED2B266309DBEB4B96118529EAA81B5D75055BF92955603FB2044514259145A16FB3D11ED0369B056A3A9572184807CB7D3F227CFE120E7E19CCBD96DBA5784693EC36462C06AF54A7E9A7E4396A55A6EB719E5602D6A445144FE66FD26354CB2E3F88B9824F1198528DBFEB5CE9CFC660E0497FB5219C9F8A7EC83F7C018A71A15E83773E8F0F1BEA1F3639FFFB5A75DD6F7D1EC5EDD3F9EF9526D174EEF8FB776DFF7DF078661D0FFD7853FF9A9BA63]]
Point(doEnabled)
}
Add(ButtonRush,10618394,231,133)
{
Top=24
Width=24
Height=24
ColorFrom=-16777201
ColorTo=-16777201
BorderColor=-16777201
GradientStyle=3
ColorFromOver=16771802
ColorToOver=16771802
BorderColorOver=-16777214
ShadowOffsetOver=0
GradientStyleOver=3
ColorFromDown=16771802
ColorToDown=16771802
BorderColorDown=-16777214
ShadowOffsetDown=1
GradientStyleDown=3
ColorToDis=12632256
ColorTextDis=-16777199
ShadowOffsetDis=0
GradientStyleDis=3
Caption=""
Spacing=1
OnlyGlyphDef=0
Glyphs=['Bitmap'=[ZIP3604000078DA9D536D4E834010AD8907F008FEF4043D80FFBDA08DFD23FD48CAC7B6C7B09C8190A87C14109A626113ECB86FDB6DD1828DBCE42533B3FB669899E5FEA17FDD93E80BDE09DE1C78D5BBDD1F1CCEEBA016D8B64D8EE3501740BB58301A0E9F3A692DCBA0384E683E37FFAD35CD19F9BE2F7DD888B5D175DD5F5A9D3CCF3BC6A6D33119C64CE6F9499D18336830786CD4565525F875F17B91E3A4F5692762655150B1DD4AC26E222FCA637F8C99140401ED44BDCF3CA77CB36924E7FCAC3EF49835B05E6794656923D3F443DE592E5F683CD168347A963EB4AA3EE72525497CC6388E248189D046D14ADA61184AED3E8F2E7616C89E57221E8A7C81D8619D80AA8B7AD0D4011F71F4FAFEF6DA3A73D4C5BC9BA0726016F5FDAB37A0FAFD0BC88D5E94DD05A7F76F5157E0FFD334EDE2BD6FE2C7BA80]]
Point(doEnabled)
}
Add(HubEx,5310417,266,28)
{
Angle=3
link(onEvent,15979597:onEvent1,[(270,27)])
}
Add(HubEx,611785,266,63)
{
Angle=3
link(onEvent,5310417:doWork3,[])
}
Add(RadioButton,385096,189,238)
{
Left=29
Top=29
Width=16
Height=16
Caption=""
}
Add(RadioButton,2320826,119,273)
{
Left=230
Top=285
Visible=1
Selected=0
}
END_SDK
Add(Hub,4226806,147,196)
{
link(onEvent1,8847184:doAlignHorizon,[])
link(onEvent2,4181371:doWork3,[(171,209)])
}
Add(HubEx,4181371,167,84)
{
link(onEvent,7841714:doRefresh,[])
}
END_SDK
END_SDK
Add(StrList,12323572,273,105)
{
Strings=#9:Должность|20:Фамилия Имя Отчество|18:Внутренний телефон|17:Городской телефон|15:Сотовый телефон|17:Электронная почта|
}
Add(ArrayEnum,11034465,287,182)
{
link(onItem,10794649:doWork1,[])
link(Array,12323572:Array,[])
}
В чем суть проблемы. Если к столбцу с названием "Сотовый телефон" применить выравнивании текста по правому краю, то его название компонент Img_TextInRect отрисовывает в одну строку. Вот с чего вдруг он решает, что строка вмещается в одну строку?! Даже при изменении размера столбца он до усрачки отрисовывает этот проклятый сотовый телефон или в одну строку или аж на три строки...
Видео
Как можно это исправить, подскажите люди добрые?

Редактировалось 1 раз(а), последний 2019-06-30 19:20:00
карма: 3

0
vip
#1.1контекстная реклама от партнеров
Разработчик
Ответов: 26061
Рейтинг: 2120
#2: 2019-06-30 22:37:00 ЛС | профиль | цитата
fox-video писал(а):
Как можно это исправить

Только одним способом -- заменить пробелы переводами строк. Это система по-дурацки отрабатывает отрисовку текста с флагом DT_WORDBREAK совместно с вычислением прямоугольника отрисовки, те вычисляет она по флагу DT_CALCRECT (не всегда, правда) одни размеры, а отрисовывает текст совсем в других.
Не знаю точно, может кто и поборол этот глюк, но мне так и не удалось.
карма: 22

0
Ответов: 2193
Рейтинг: 673
#3: 2019-07-02 14:21:23 ЛС | профиль | цитата
[Удалил]

Схема для тестирования

Add(MainForm,2953706,112,224)
{
Width=758
Height=466
Caption="Пример использования компонента Img_TextInRect"
Position=1
}
Add(Img_TextInRect,15165379,329,203)
{
Text="&HiAsm или Конструктор программ это прежде всего система визуального проектирования и разработки приложений, не требующая от пользователя знания языков программирования и особенностей функционирования ОС, позволяющая быстро и легко писать (рисовать) небольшие программы.\r\n&Очевидно, что с помощью HiAsm довольно легко и быстро пишутся (точнее рисуются) небольшие разовые программы и утилиты, не требующие особого упора на интерфейс и сложные математические алгоритмы."
OffsetLeft=5
OffsetRight=5
OffsetTop=5
OffsetBottom=5
Point(doAlignHorizon)
Point(doAlignvertical)
Point(doWordBreak)
Point(doEllipsis)
Point(doRtlReading)
Point(doNoPrefix)
Point(doSingleLine)
Point(doOffsetLeft)
Point(doOffsetRight)
Point(doOffsetTop)
Point(doOffsetBottom)
Point(doFont)
link(onTextRect,14710611:doEvent1,[])
link(Bitmap,2145718:Var1,[(335,148)])
link(Point2,8512111:Point,[])
}
Add(PaintBox,5743918,343,98)
{
Left=35
Top=35
Width=491
Height=369
Align=5
Color=12639424
ClearBeforeDraw=0
Point(onResize)
Point(Width)
Point(Height)
link(onBeforeDraw,15165379:doDraw,[(397,104)(397,193)(316,193)(316,209)])
link(onResize,3820427:doWork3,[(387,111)(387,141)(326,141)])
}
Add(PointXY,8512111,350,154)
{
link(X,5743918:Width,[])
link(Y,5743918:Height,[])
}
Add(HubEx,3820427,322,98)
{
link(onEvent,5743918:doRefresh,[])
}
Add(ChildPanelEx,9904646,252,203)
{
link(onReDraw,3820427:doWork2,[(296,209)(296,104)])
link(onAlignHorizon,15165379:doAlignHorizon,[])
link(onAlignVertical,15165379:doAlignvertical,[])
link(onWordBreak,15165379:doWordBreak,[])
link(onEllipsis,15165379:doEllipsis,[])
link(onRtlReading,15165379:doRtlReading,[])
link(onNoPrefix,15165379:doNoPrefix,[])
link(onSingleLine,15165379:doSingleLine,[])
link(onOffset,10690574:doEvent1,[])
link(onFont,15165379:doFont,[(295,272)(295,293)])
}
BEGIN_SDK
Add(EditMultiEx,6915046,21,21)
{
EventCount=#8:onReDraw|14:onAlignHorizon|15:onAlignVertical|11:onWordBreak|10:onEllipsis|12:onRtlReading|10:onNoPrefix|12:onSingleLine|8:onOffset|6:onFont|
Width=482
Height=655
}
Add(Panel,6106190,28,35)
{
Left=526
Top=35
Width=224
Height=369
Align=3
BevelInner=0
}
Add(Button,10837706,196,49)
{
Left=50
Top=10
Width=165
Height=30
Caption="по горизонтали слева"
Point(doCaption)
link(onClick,3579869:doNext,[])
}
Add(Button,10906095,196,119)
{
Left=50
Top=45
Width=165
Height=30
Caption="по вертикали сверху"
Point(doCaption)
link(onClick,5507574:doNext,[])
}
Add(Button,3998598,196,196)
{
Left=50
Top=80
Width=165
Height=30
Caption="перенос слов - да"
Point(doCaption)
link(onClick,613283:doNext,[])
}
Add(Hub,1479762,280,49)
{
OutCount=3
link(onEvent1,12963295:doGetString,[(306,55)(306,36)(92,36)(92,90)])
link(onEvent2,6915046:onAlignHorizon,[(324,62)(324,34)])
link(onEvent3,4322837:doWork2,[])
}
Add(Hub,9205514,280,119)
{
OutCount=3
link(onEvent1,14099846:doGetString,[(306,125)(306,105)(95,105)(95,160)])
link(onEvent2,6915046:onAlignVertical,[(333,132)(333,41)])
link(onEvent3,297795:doWork2,[])
}
Add(Hub,7566070,280,196)
{
OutCount=3
link(onEvent1,11976482:doGetString,[(306,202)(306,181)(96,181)(96,237)])
link(onEvent2,6915046:onWordBreak,[(345,209)(345,48)])
link(onEvent3,2578654:doWork2,[])
}
Add(HubEx,4322837,309,63)
{
Angle=3
link(onEvent,6915046:onReDraw,[(313,27)])
}
Add(HubEx,297795,309,133)
{
Angle=3
link(onEvent,4322837:doWork3,[])
}
Add(Button,235836,196,273)
{
Left=50
Top=115
Width=165
Height=30
Caption="обрезать слова"
Point(doCaption)
link(onClick,4312821:doNext,[])
}
Add(Hub,12626516,280,273)
{
OutCount=3
link(onEvent1,10683245:doGetString,[(301,279)(301,252)(144,252)(144,314)])
link(onEvent2,6915046:onEllipsis,[(357,286)(357,55)])
link(onEvent3,11164537:doWork2,[])
}
Add(HubEx,2578654,309,210)
{
Angle=3
link(onEvent,297795:doWork3,[])
}
Add(CounterEx,3579869,238,49)
{
Max=2
link(onNext,1479762:doEvent1,[])
}
Add(CounterEx,5507574,238,119)
{
Max=2
link(onNext,9205514:doEvent1,[])
}
Add(CounterEx,613283,238,196)
{
Max=1
Default=1
link(onNext,7566070:doEvent1,[])
}
Add(CounterEx,4312821,238,273)
{
Max=1
Default=1
link(onNext,12626516:doEvent1,[])
}
Add(Button,7171296,196,350)
{
Left=50
Top=150
Width=165
Height=30
Caption="текст слева направо"
Point(doCaption)
link(onClick,13458251:doNext,[])
}
Add(Hub,13806952,280,350)
{
OutCount=3
link(onEvent1,9129307:doGetString,[(306,356)(306,336)(141,336)(141,391)])
link(onEvent2,6915046:onRtlReading,[(371,363)(371,62)])
link(onEvent3,9705286:doWork2,[])
}
Add(Button,10181812,196,427)
{
Left=50
Top=185
Width=165
Height=30
Caption="префикс влючен"
Point(doCaption)
link(onClick,10839509:doNext,[])
}
Add(Hub,11761765,280,427)
{
OutCount=3
link(onEvent1,13616183:doGetString,[(306,433)(306,412)(100,412)(100,468)])
link(onEvent2,6915046:onNoPrefix,[(385,440)(385,69)])
link(onEvent3,1958789:doWork2,[])
}
Add(CounterEx,13458251,238,350)
{
Max=1
link(onNext,13806952:doEvent1,[])
}
Add(CounterEx,10839509,238,427)
{
Max=1
link(onNext,11761765:doEvent1,[])
}
Add(HubEx,11164537,309,287)
{
Angle=3
link(onEvent,2578654:doWork3,[])
}
Add(HubEx,9705286,309,364)
{
Angle=3
link(onEvent,11164537:doWork3,[])
}
Add(Button,9745098,196,504)
{
Left=50
Top=220
Width=165
Height=30
Caption="многострочно"
Point(doCaption)
link(onClick,15108102:doNext,[])
}
Add(Hub,4280865,280,504)
{
OutCount=3
link(onEvent1,89657:doGetString,[(302,510)(302,488)(142,488)(142,545)])
link(onEvent2,6915046:onSingleLine,[(398,517)(398,76)])
link(onEvent3,3714867:doWork2,[])
}
Add(CounterEx,15108102,238,504)
{
Max=1
link(onNext,4280865:doEvent1,[])
}
Add(HubEx,1958789,309,441)
{
Angle=3
link(onEvent,9705286:doWork3,[])
}
Add(Edit,1974384,238,560)
{
Left=110
Top=290
Width=40
Text="5"
Alignment=1
DataType=2
MaxLenField=2
link(onChange,16146600:doEvent1,[])
}
Add(Label,15952772,196,560)
{
Left=50
Top=292
Width=57
Height=22
Caption="Отступ"
}
Add(Hub,16146600,280,560)
{
link(onEvent1,6915046:onOffset,[(412,566)(412,83)])
link(onEvent2,14465530:doWork2,[])
}
Add(HubEx,3714867,309,518)
{
Angle=3
link(onEvent,1958789:doWork3,[])
}
Add(Button,2387206,196,609)
{
Left=50
Top=255
Width=165
Height=30
Caption="шрифт"
link(onClick,1861115:doFont,[])
}
Add(Font,1861115,238,609)
{
FontDialog=0
link(onFont,14561050:doEvent1,[])
}
Add(Hub,14561050,280,609)
{
link(onEvent1,6915046:onFont,[(429,615)(429,90)])
link(onEvent2,14465530:doWork3,[(313,622)])
}
Add(HubEx,14465530,309,567)
{
Angle=3
link(onEvent,3714867:doWork3,[])
}
Add(StrList,10683245,154,266)
{
Strings=#17:не обрезать слова|14:обрезать слова|
Point(onGetString)
Point(doGetString)
link(onGetString,235836:doCaption,[])
}
Add(StrList,12963295,112,42)
{
Strings=#5:слева|6:справа|9:по центру|
Point(onGetString)
Point(doGetString)
link(onGetString,1615787:doStrCat,[])
}
Add(StrCat,1615787,154,49)
{
Str1="по горизонтали "
link(onStrCat,10837706:doCaption,[])
}
Add(StrList,14099846,112,112)
{
Strings=#6:сверху|5:снизу|9:по центру|
Point(onGetString)
Point(doGetString)
link(onGetString,15793786:doStrCat,[])
}
Add(StrCat,15793786,154,119)
{
Str1="по вертикали "
link(onStrCat,10906095:doCaption,[])
}
Add(StrList,11976482,112,189)
{
Strings=#3:нет|2:да|
Point(onGetString)
Point(doGetString)
link(onGetString,763354:doStrCat,[])
}
Add(StrCat,763354,154,196)
{
Str1="перенос слова - "
link(onStrCat,3998598:doCaption,[])
}
Add(StrList,9129307,154,343)
{
Strings=#19:текст слева направо|19:текст справа налево|
Point(onGetString)
Point(doGetString)
link(onGetString,7171296:doCaption,[])
}
Add(StrList,13616183,112,420)
{
Strings=#7:включен|8:выключен|
Point(onGetString)
Point(doGetString)
link(onGetString,11986103:doStrCat,[])
}
Add(StrCat,11986103,154,427)
{
Str1="префикс "
link(onStrCat,10181812:doCaption,[])
}
Add(StrList,89657,154,497)
{
Strings=#12:многострочно|13:одной строкой|
Point(onGetString)
Point(doGetString)
link(onGetString,9745098:doCaption,[])
}
END_SDK
Add(ChildPanelEx,13358665,196,203)
{
}
BEGIN_SDK
Add(EditMultiEx,8560782,21,21)
{
}
Add(Panel,10804727,35,105)
{
Width=750
Height=35
Align=2
BevelInner=0
}
Add(Label,9751894,84,105)
{
Left=5
Top=5
Width=725
Height=25
Caption="С помощью сплитера (красной полосы) можно изменить размер поля для отрисовки текста"
AutoSize=1
}
END_SDK
Add(ChildPanelEx,41039,196,245)
{
}
BEGIN_SDK
Add(EditMultiEx,8269355,21,21)
{
}
Add(Panel,5149810,35,105)
{
Top=404
Width=750
Height=35
Align=4
BevelInner=0
}
END_SDK
Add(ChildPanelEx,1688247,154,224)
{
}
BEGIN_SDK
Add(EditMultiEx,11987316,21,21)
{
}
Add(Panel,6941298,35,105)
{
Width=35
Height=35
Align=1
ModeSp=3
ColorSp=255
BevelInner=0
}
END_SDK
Add(Hub,10690574,301,259)
{
OutCount=4
link(onEvent1,15165379:doOffsetLeft,[])
link(onEvent2,15165379:doOffsetRight,[])
link(onEvent3,15165379:doOffsetTop,[])
link(onEvent4,15165379:doOffsetBottom,[])
}
Add(Img_Rectangle,13191140,441,329)
{
Style=1
Color=15780518
BgColor=15780518
Point(Point1)
Point(Point2)
link(Bitmap,2145718:Var3,[(447,148)])
link(Point1,15432966:Point,[])
link(Point2,3683932:Point,[(468,321)(475,321)])
}
Add(GetDataEx,2145718,343,143)
{
link(Data,5743918:Bitmap,[])
}
Add(PointXY,15432966,455,280)
{
link(X,14545532:Value1,[])
link(Y,14545532:Value2,[])
}
Add(PointXY,3683932,469,280)
{
link(X,14545532:Value3,[])
link(Y,14545532:Value4,[])
}
Add(MT_MultiMem,14545532,455,210)
{
Count=4
}
Add(Hub,14710611,371,210)
{
link(onEvent1,14545532:doValue,[])
link(onEvent2,15163495:doData,[(392,223)(392,335)])
}
Add(DoData,15163495,399,329)
{
link(onEventData,13191140:doDraw,[])
}

Редактировалось 4 раз(а), последний 2019-07-02 21:31:22
карма: 10

0
Ответов: 2193
Рейтинг: 673
#4: 2019-07-02 15:55:10 ЛС | профиль | цитата
fox-video, это к проблеме не относится но обратите внимание у вас в свойстве OffsetRight = 5.
[Удалил]

Редактировалось 3 раз(а), последний 2019-07-02 21:31:43
карма: 10

0
Ответов: 263
Рейтинг: 18
#5: 2019-07-02 18:15:50 ЛС | профиль | цитата
sla8a писал(а):
поставьте const DT_RIGHT= $5;

Работает, ура!
sla8a писал(а):
обратите внимание у вас в свойстве OffsetRight = 5

Без отступа текст слишком близко к правому краю рисуется.

--- Добавлено в 2019-07-02 18:26:51

Упс, не совсем... На одной колонке как надо стало, а на других сломалось.
Видео

--- Добавлено в 2019-07-02 18:30:45

В схеме для тестирования та же картина.
Тестовая схема

Редактировалось 6 раз(а), последний 2019-07-02 18:31:47
карма: 3

0
Ответов: 2193
Рейтинг: 673
#6: 2019-07-02 19:24:03 ЛС | профиль | цитата
fox-video писал(а):
устал я от не предсказуемости поведения компонентов
Попробую найти решение, но ничего не обещаю.
карма: 10

0
Ответов: 2193
Рейтинг: 673
#7: 2019-07-02 22:43:42 ЛС | профиль | цитата
fox-video, элемент Img_TextInRect добавлен мной и проблема не в самом элементе. Элемент очень прост и использует функцию DrawText. И вот эта функция и ведет себя не очень логично при разбиение по словам. Вот к примеру элемент Label имеет туже проблему. Понимаю что вам от этого не легче.

Add(MainForm,2953706,616,322)
{
Width=29
Height=378
BorderStyle=7
Position=1
}
Add(Label,8502472,616,280)
{
Width=29
Height=378
Align=5
Caption="В программирование под системой Windows полно сюрпризов"
AutoSize=1
Alignment=1
}
карма: 10

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#8: 2019-07-02 23:47:55 ЛС | профиль | цитата
sla8a писал(а):
И вот эта функция и ведет себя не очень логично при разбиение по словам.

Что я выше и писал.
карма: 22

0
Ответов: 2193
Рейтинг: 673
#9: 2019-07-02 23:57:32 ЛС | профиль | цитата
nesco, у меня что-то не получается нагуглить об этой проблеме ничего.
карма: 10

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#10: 2019-07-03 01:16:38 ЛС | профиль | цитата
sla8a писал(а):
у меня что-то не получается нагуглить об этой проблеме ничего.

Я тоже ничего толком не нашел.
карма: 22

0
Ответов: 263
Рейтинг: 18
#11: 2019-07-03 05:54:46 ЛС | профиль | цитата
nesco писал(а):
sla8a писал(а):
у меня что-то не получается нагуглить об этой проблеме ничего.

Я тоже ничего толком не нашел.

sla8a, nesco, оставьте всё как есть. Windows полна необъяснимых приколов, на каждый случай костылей не наделаешь.
Кто-то писал: "Система должна знать свое место! Человек — полновластный хозяин системы, машина — раб. Раб должен выполнять любые указания — бегом и без разговоров!". Я, однако, начал приспосабливаться к рабу.
nesco писал(а):
Только одним способом -- заменить пробелы переводами строк.

Хватило одного дополнительного пробела между словами, что бы функция DrawText поняла, что от нее хотят.
Видео

Редактировалось 1 раз(а), последний 2019-07-03 06:02:55
карма: 3

0
11
Сообщение
...
Прикрепленные файлы
(файлы не залиты)