Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26113
Рейтинг: 2126
#16: 2019-02-12 01:51:40 ЛС | профиль | цитата
Aziz писал(а):
как вообще удалось такую схему создать? Разме что ее кто-то писал не в Хиасм

Да вроде я ее в HiAsm-e составлял, может только в старой версии? Посмотрел штатный пример из папки %Hiasm%\Elements\Delphi\Example\Forms\StringTableMT\As_TabGrid.sha, действительно, составлено в версии b174. ЕМНИП, то такая фича наблюдалась -- копии старых схем толком не читались через копирование, только через чтение из файла.

Редактировалось 1 раз(а), последний 2019-02-12 01:53:14
карма: 22

0
Ответов: 1291
Рейтинг: 47
#17: 2019-02-12 12:43:04 ЛС | профиль | цитата
Спасибо. Тогда можно смело программировать дальше, не опасаясь что схема вдруг начнет вести себя непредсказуемо.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 16884
Рейтинг: 1239
#18: 2019-02-12 15:56:09 ЛС | профиль | цитата
Но я, от применения MultiElementEX, временно воздержусь.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1291
Рейтинг: 47
#19: 2019-02-15 23:12:25 ЛС | профиль | цитата
Вот, перекопировал схему по частям в новый проект, потом обратно в старую схему, удалив ее. Сохранил, глюк исчез. Можно копировать сколько хочешь) Видимо Хиасм сам поправил глюки старой схемы.

Add(MainForm,15040759,42,105)
{
Left=10
Top=10
Width=420
Height=265
Ctl3D=0
Caption="Example"
Position=1
link(onCreate,8724013:doValue,[])
}
Add(MultiElementEx,14516440,623,378)
{
link(onEvent,8747443:doWork,[])
}
BEGIN_SDK
Add(EditMultiEx,6305113,21,21)
{
WorkCount=#7:doEvent|
EventCount=#7:onEvent|
Width=167
Height=123
link(doEvent,6241665:doEvent,[(35,27)(35,83)])
}
Add(IndexToChanel,6241665,49,77)
{
link(onEvent1,6822189:doData,[(89,83)(89,55)])
link(onEvent2,8827569:doData,[])
}
Add(DoData,6822189,98,49)
{
Data=String(False)
link(onEventData,6076615:doWork1,[(144,55)])
}
Add(HubEx,6076615,140,84)
{
link(onEvent,6305113:onEvent,[(169,90)(169,27)])
}
Add(DoData,8827569,98,84)
{
Data=String(True)
link(onEventData,6076615:doWork2,[])
}
END_SDK
Add(MultiElementEx,457242,525,308)
{
link(onEvent2,645625:doCaption,[(569,314)(569,398)])
link(onIndex,645625:doCheck,[(569,321)(569,349)])
link(Data,1964947:getVar,[])
}
BEGIN_SDK
Add(EditMultiEx,8409850,21,21)
{
WorkCount=#6:doData|
EventCount=#8:onEvent2|7:onIndex|
DataCount=#4:Data|
Height=95
link(doData,11024678:doData,[(35,27)(35,55)])
}
Add(Hub,11564246,91,49)
{
link(onEvent1,13220328:doCase,[])
link(onEvent2,8409850:onEvent2,[(222,62)(222,27)])
}
Add(HubEx,9756245,224,63)
{
link(onEvent,9026172:doWork1,[])
}
Add(ChanelToIndex,9026172,245,63)
{
link(onIndex,8409850:onIndex,[(299,69)(299,34)])
}
Add(DoData,11024678,49,49)
{
link(onEventData,11564246:doEvent1,[])
link(Data,8409850:Data,[(55,35)(27,35)])
}
Add(Case,13220328,140,49)
{
Value=String(False)
link(onNextCase,13489195:doCase,[])
link(onTrue,9756245:doWork2,[(188,62)(188,69)])
}
Add(Case,13489195,182,49)
{
Value=String(True)
link(onNextCase,9756245:doWork1,[(228,55)])
link(onTrue,9026172:doWork2,[(223,62)(223,76)])
}
END_SDK
Add(StringTableMT,14706494,175,217)
{
Left=10
Top=10
Width=390
Height=190
Font=[MS Sans Serif,12,1,0,1]
Columns=#5:Check|8:Edit=132|5:Combo|
Flat=1
TabGrid=0
TabGridFrame=0
TableWBreak=0
Gradient=0
HeaderDragDrop=0
TextColor=128
GradientColor=-16777213
IconsCheck=[]
MiscIcons=[]
Icons=[]
StringsStrLst=#29:True;sdfsdf utyuyt popo;aaaaa|18:False;fzsdfzs;bbbb|17:False;sdfszz;cccc|17:True;sdfszz;ddddd|17:True;sdfszz;eeeee|18:False;sdfszz;fffff|18:False;fzsdfzs;gggg|17:False;sdfszz;hhhh|18:True;fzsdfzs;iiiii|18:True;sdfszz;jjjjjj|
AutoTblStrLst=0
Point(Index)
Point(SubItem)
Point(Cell)
Point(doTabGrid)
Point(doTabGridFrame)
Point(doGradient)
Point(doSingleString)
Point(doGradientColor)
Point(GenColors_MT)
Point(onMT_CellClick)
Point(Matrix)
Point(doSetFocus)
Point(onEscCell)
link(onMT_CellClick,3579290:doEvent,[])
link(onEscCell,5492443:doWork,[(238,237)(238,265)])
}
Add(LineBreakEx,2038226,98,427)
{
Caption="SetData"
Type=1
link(OnEvent,7574571:doWrite,[])
}
Add(InfoTip,7316469,392,245)
{
Info=#0:|8:CheckBox|
Font=[MS Sans Serif,12,1,16711680,1]
Frame=3
Width=351
Height=221
}
Add(Button,10475814,42,168)
{
Left=5
Top=205
Width=75
TabOrder=-1
Caption="TabGrid"
link(onClick,7450025:doSwitch,[])
}
Add(Button,11010609,42,203)
{
Left=85
Top=205
Width=75
TabOrder=-1
Caption="TabGridFrame"
link(onClick,14006697:doSwitch,[])
}
Add(Switch,14006697,91,203)
{
DataOn=Integer(1)
DataOff=Integer(0)
Default=0
link(onSwitch,14706494:doTabGridFrame,[(149,209)(149,265)])
}
Add(Switch,7450025,91,168)
{
DataOn=Integer(1)
DataOff=Integer(0)
Default=0
link(onSwitch,14706494:doTabGrid,[(149,174)(149,258)])
}
Add(Button,4383596,42,238)
{
Left=165
Top=205
Width=75
TabOrder=-1
Caption="Gradient"
link(onClick,11428156:doSwitch,[])
}
Add(Switch,11428156,91,238)
{
DataOn=Integer(1)
DataOff=Integer(0)
Default=0
link(onSwitch,14706494:doGradient,[(149,244)(149,272)])
}
Add(Button,8533939,42,273)
{
Left=325
Top=205
Width=75
TabOrder=-1
Caption="SingleString"
link(onClick,1406174:doSwitch,[])
}
Add(Switch,1406174,91,273)
{
DataOn=Integer(1)
DataOff=Integer(0)
link(onSwitch,14706494:doSingleString,[(149,279)(149,265)])
}
Add(Button,6758889,42,308)
{
Left=245
Top=205
Width=75
TabOrder=-1
Caption="GradientColor"
link(onClick,5994120:doOpen,[])
}
Add(MT_MultiMem,8724013,91,119)
{
Count=5
Point(Data)
link(Data,14041054:getVar,[])
}
Add(ColorDialog,5994120,119,308)
{
link(onSelect,14706494:doGradientColor,[(157,314)(157,286)])
link(Color,8724013:Value5,[])
}
Add(LineBreakEx,1964947,525,280)
{
Caption="Cell"
Type=2
}
Add(LineBreakEx,5492443,294,259)
{
Caption="EscCell"
}
Add(LineBreakEx,16159683,203,350)
{
Caption="Cell"
Type=3
link(_Data,14706494:Cell,[])
}
Add(CheckBox,645625,581,343)
{
Left=10
Top=260
Width=85
Color=-16777192
Font=[MS Sans Serif,12,1,0,1]
TabOrder=-1
Point(doLeft)
Point(doTop)
Point(doWidth)
Point(doHeight)
Point(doVisible)
Point(doBringToFront)
Point(onKeyUp)
Point(doCaption)
link(onCheck,3938954:onEnter,[(625,349)(625,359)(513,359)(513,370)])
link(onKeyUp,3938954:KeyUp,[(625,356)(625,344)(513,344)(513,356)])
}
Add(LineBreakEx,8747443,672,378)
{
Caption="SetData"
}
Add(LineBreakEx,14041054,91,91)
{
Caption="Gen_Colors"
Type=2
}
Add(LineBreakEx,3442475,210,371)
{
Caption="Gen_Colors"
Type=3
link(_Data,14706494:GenColors_MT,[])
}
Add(LineBreakEx,15842762,294,217)
{
Caption="MT_Data_1"
}
Add(MatrixRW,7574571,168,420)
{
link(Matrix,14706494:Matrix,[(174,358)(223,358)])
link(X,2230359:getVar,[])
link(Y,14706494:Index,[])
}
Add(MultiElementEx,3938954,525,343)
{
link(OutData,457242:doData,[(569,349)(569,331)(513,331)(513,314)])
link(hLeft,645625:doLeft,[])
link(hTop,645625:doTop,[])
link(hWidth,645625:doWidth,[])
link(hHeight,645625:doHeight,[])
link(Visible,645625:doVisible,[])
link(BringToFront,645625:doBringToFront,[(569,398)(569,391)])
link(SetData,14516440:doEvent,[(592,412)(592,384)])
link(SetTableFocus,4165332:doWork,[])
link(NextEscCell,6367634:doWork,[(569,426)(569,433)])
}
BEGIN_SDK
Add(EditMultiEx,14991752,21,21)
{
WorkCount=#7:MT_Data|5:KeyUp|7:EscCell|7:onEnter|
EventCount=#7:OutData|5:hLeft|4:hTop|6:hWidth|7:hHeight|7:Visible|8:SetFocus|12:BringToFront|8:Position|7:SetData|13:SetTableFocus|11:NextEscCell|
Width=391
Height=263
link(MT_Data,8293464:doEvent1,[(56,27)(56,41)])
link(KeyUp,3818572:doCase,[(75,34)(75,237)])
link(EscCell,341937:doEvent1,[(59,41)(59,139)])
link(onEnter,9717164:doEvent1,[(59,48)(59,195)])
}
Add(MT_Get,12496904,203,112)
{
link(onData,365198:doGet,[(247,118)(247,136)(191,136)(191,153)])
link(onGet,8134628:doOperation,[])
}
Add(MT_Get,365198,203,147)
{
link(onGet,14006946:doOperation,[])
}
Add(MT_Get,9187647,203,77)
{
link(onData,12496904:doGet,[(247,83)(247,101)(191,101)(191,118)])
link(onGet,16197283:doOperation,[])
}
Add(MT_Get,5543195,203,42)
{
link(onData,9187647:doGet,[(247,48)(247,66)(191,66)(191,83)])
link(onGet,3620842:doOperation,[])
}
Add(Hub,8293464,91,35)
{
OutCount=5
link(onEvent1,14991752:OutData,[(250,41)(250,27)])
link(onEvent2,5543195:doGet,[])
link(onEvent3,14991752:SetFocus,[(267,55)(267,69)])
link(onEvent4,14991752:BringToFront,[(267,62)(267,76)])
link(onEvent5,4200772:doData,[])
}
Add(Case,3818572,203,231)
{
Value=Integer(27)
DataOnTrue=Integer(0)
link(onTrue,13287938:doEvent1,[])
}
Add(DoData,483044,203,196)
{
Data=Integer(0)
link(onEventData,1022028:doWork2,[])
}
Add(Hub,13287938,259,238)
{
link(onEvent1,1022028:doWork3,[(354,244)])
link(onEvent2,14991752:SetTableFocus,[(379,251)(379,97)])
}
Add(HubEx,1022028,350,196)
{
Angle=3
link(onEvent,14991752:Visible,[(354,62)])
}
Add(HubEx,9909078,168,196)
{
link(onEvent,483044:doData,[])
}
Add(DoData,4200772,144,63)
{
Data=Integer(0)
link(onEventData,14991752:Position,[(294,69)(294,83)])
}
Add(Hub,9717164,98,189)
{
link(onEvent1,14991752:SetData,[(271,195)(271,90)])
link(onEvent2,9909078:doWork2,[])
}
Add(Hub,341937,98,133)
{
link(onEvent1,9909078:doWork1,[(172,139)])
link(onEvent2,14991752:NextEscCell,[(271,146)(271,104)])
}
Add(Math,3620842,256,49)
{
Op2=2
ResultType=0
link(onResult,14991752:hLeft,[(350,55)(350,34)])
}
Add(Math,16197283,256,84)
{
Op2=2
ResultType=0
link(onResult,14991752:hTop,[(350,90)(350,41)])
}
Add(Math,8134628,256,119)
{
OpType=1
Op2=4
ResultType=0
link(onResult,14991752:hWidth,[(350,125)(350,48)])
}
Add(Math,14006946,256,154)
{
OpType=1
Op2=4
ResultType=0
link(onResult,14991752:hHeight,[(350,160)(350,55)])
}
END_SDK
Add(LineBreakEx,3167286,245,189)
{
Caption="SubItem"
Type=2
}
Add(LineBreakEx,1084485,42,343)
{
Caption="SetFocus"
Type=1
link(OnEvent,14706494:doSetFocus,[(160,349)(160,293)])
}
Add(LineBreakEx,4165332,581,413)
{
Caption="SetFocus"
}
Add(MT_IndexToChanel,3579290,245,224)
{
Count=3
Point(Index)
link(onEvent1,15842762:doWork,[(285,230)(285,223)])
link(onEvent2,13130107:doWork,[])
link(onEvent3,11948546:doWork,[(285,244)(285,251)])
link(Index,3167286:getVar,[])
}
Add(LineBreakEx,6296065,406,357)
{
Caption="NexrEscCell_1"
Type=1
link(OnEvent,3938954:EscCell,[])
}
Add(LineBreakEx,6367634,581,427)
{
Caption="NexrEscCell_2"
}
Add(LineBreakEx,14840706,196,329)
{
Caption="SubItem"
Type=3
link(_Data,14706494:SubItem,[])
}
Add(InfoTip,9605650,392,21)
{
Info=#0:|4:Edit|
Font=[MS Sans Serif,12,1,255,1]
Frame=3
Width=351
Height=221
}
Add(LineBreakEx,2230359,182,392)
{
Caption="SubItem"
Type=2
}
Add(InfoTip,14064710,392,469)
{
Info=#0:|8:ComboBox|
Font=[MS Sans Serif,12,1,8421376,1]
Frame=3
Width=351
Height=228
}
Add(LineBreakEx,3854175,406,343)
{
Caption="MT_Data_1"
Type=1
link(OnEvent,3938954:MT_Data,[])
}
Add(LineBreakEx,13130107,294,231)
{
Caption="MT_Data_2"
}
Add(LineBreakEx,11948546,294,245)
{
Caption="MT_Data_3"
}
Add(InfoTip,13356219,28,21)
{
Info=#0:|13:StringTableMT|32:режим: TabGrid с EditControl-ами|
Font=[MS Sans Serif,12,1,8388608,1]
Frame=3
Width=358
Height=445
}
Add(InfoTip,6538180,28,469)
{
Info=#0:|329:в режиме TabGrid с EditControl-ами работают стрелки клавиатуры или выбор пункта мышью. Вход в режим редактирования -- либо Enter, либо F2, либо двойной клик мышью. Выход -- либо ESC, либо любой Scroll, либо выбор любой другой ячейки мышью без применения редакции. В режиме Edit, для применения изменений, необходимо нажать Enter.|
Font=[MS Sans Serif,12,1,32768,1]
Frame=3
Width=358
Height=228
}
Add(LineBreakEx,6197563,525,504)
{
Caption="Cell"
Type=2
}
Add(MultiElementEx,866868,525,567)
{
link(OutData,5354186:doData,[(569,573)(569,555)(513,555)(513,538)])
link(hLeft,3501412:doLeft,[(569,580)(569,566)])
link(hTop,3501412:doTop,[(569,587)(569,573)])
link(hWidth,3501412:doWidth,[(569,594)(569,580)])
link(Visible,3501412:doVisible,[(562,605)])
link(BringToFront,3501412:doBringToFront,[(569,622)(569,608)])
link(SetData,12464873:doData,[(576,636)(576,643)])
link(SetTableFocus,2092162:doWork,[(573,643)(573,678)])
}
BEGIN_SDK
Add(EditMultiEx,3242674,21,21)
{
WorkCount=#7:MT_Data|5:KeyUp|7:EscCell|7:onEnter|
EventCount=#7:OutData|5:hLeft|4:hTop|6:hWidth|7:hHeight|7:Visible|8:SetFocus|12:BringToFront|8:Position|7:SetData|13:SetTableFocus|
Width=391
Height=277
link(MT_Data,8096530:doEvent1,[(56,27)(56,41)])
link(KeyUp,10605974:doCase,[(75,34)(75,237)])
link(EscCell,13101722:doWork2,[(48,41)(48,202)])
link(onEnter,7055834:doEvent1,[(59,48)(59,174)])
}
Add(MT_Get,3572594,203,112)
{
link(onData,7737219:doGet,[(247,118)(247,136)(191,136)(191,153)])
link(onGet,3242674:hWidth,[(280,125)(280,48)])
}
Add(MT_Get,7737219,203,147)
{
link(onGet,3242674:hHeight,[(323,160)(323,55)])
}
Add(MT_Get,12516734,203,77)
{
link(onData,3572594:doGet,[(247,83)(247,101)(191,101)(191,118)])
link(onGet,3242674:hTop,[(280,90)(280,41)])
}
Add(MT_Get,1846166,203,42)
{
link(onData,12516734:doGet,[(247,48)(247,66)(191,66)(191,83)])
link(onGet,3242674:hLeft,[(280,55)(280,34)])
}
Add(Hub,8096530,91,35)
{
OutCount=5
link(onEvent1,3242674:OutData,[(250,41)(250,27)])
link(onEvent2,1846166:doGet,[])
link(onEvent3,3242674:SetFocus,[(267,55)(267,69)])
link(onEvent4,3242674:BringToFront,[(267,62)(267,76)])
link(onEvent5,1690703:doData,[])
}
Add(Case,10605974,203,231)
{
Value=Integer(27)
DataOnTrue=Integer(0)
link(onTrue,655426:doEvent1,[])
}
Add(DoData,11451274,203,196)
{
Data=Integer(0)
link(onEventData,9308833:doWork2,[])
}
Add(Hub,655426,259,238)
{
link(onEvent1,9308833:doWork3,[(354,244)])
link(onEvent2,3242674:SetTableFocus,[(379,251)(379,97)])
}
Add(HubEx,9308833,350,196)
{
Angle=3
link(onEvent,3242674:Visible,[(354,62)])
}
Add(HubEx,13101722,154,196)
{
link(onEvent,11451274:doData,[])
}
Add(DoData,1690703,144,63)
{
Data=Integer(0)
link(onEventData,3242674:Position,[(294,69)(294,83)])
}
Add(Hub,7055834,98,168)
{
link(onEvent1,3242674:SetData,[(271,174)(271,90)])
link(onEvent2,13101722:doWork1,[(158,181)])
}
END_SDK
Add(LineBreakEx,1417514,637,637)
{
Caption="SetData"
}
Add(DoData,12464873,588,637)
{
link(onEventData,1417514:doWork,[])
link(Data,3501412:String,[])
}
Add(DoData,5354186,525,532)
{
link(onEventData,3501412:doSelectString,[(569,538)(569,615)])
link(Data,6197563:getVar,[])
}
Add(ComboBox,3501412,581,532)
{
Left=10
Top=260
Width=150
Height=21
Color=-16777192
Font=[MS Sans Serif,12,1,0,1]
Visible=1
Ctl3D=0
Strings=#5:aaaaa|4:bbbb|4:cccc|5:ddddd|5:eeeee|5:fffff|4:gggg|4:hhhh|5:iiiii|6:jjjjjj|
Text=""
ReadOnly=0
Point(doLeft)
Point(doTop)
Point(doWidth)
Point(doHeight)
Point(doVisible)
Point(onKeyUp)
Point(doSelectString)
Point(doBringToFront)
link(onClick,866868:onEnter,[(625,545)(625,569)(513,569)(513,594)])
link(onKeyUp,866868:KeyUp,[(625,552)(625,566)(513,566)(513,580)])
}
Add(LineBreakEx,5588180,406,581)
{
Caption="NexrEscCell_2"
Type=1
link(OnEvent,866868:EscCell,[])
}
Add(LineBreakEx,2092162,588,672)
{
Caption="SetFocus"
}
Add(InfoTip,16709444,392,469)
{
Info=#0:|8:ComboBox|
Font=[MS Sans Serif,12,1,8421376,1]
Frame=3
Width=351
Height=228
}
Add(LineBreakEx,10628137,406,567)
{
Caption="MT_Data_3"
Type=1
link(OnEvent,866868:MT_Data,[])
}
Add(LineBreakEx,3516870,581,175)
{
Caption="SetFocus"
}
Add(Edit,8944797,581,84)
{
Left=10
Top=260
Width=85
Color=-16777192
Font=[MS Sans Serif,12,1,0,1]
Visible=1
Ctl3D=1
Text=""
Point(doLeft)
Point(doTop)
Point(doWidth)
Point(doHeight)
Point(doVisible)
Point(doSetFocus)
Point(doBringToFront)
Point(onKeyUp)
Point(doPosition)
link(onEnter,10463855:onEnter,[(625,97)(625,107)(513,107)(513,118)])
link(Str,1347128:getVar,[])
link(onKeyUp,10463855:KeyUp,[(625,104)(625,92)(513,92)(513,104)])
}
Add(MultiElementEx,10463855,525,91)
{
link(OutData,8944797:doText2,[])
link(hLeft,8944797:doLeft,[])
link(hTop,8944797:doTop,[])
link(hWidth,8944797:doWidth,[])
link(hHeight,8944797:doHeight,[])
link(Visible,8944797:doVisible,[])
link(SetFocus,8944797:doSetFocus,[])
link(BringToFront,8944797:doBringToFront,[])
link(Position,8944797:doPosition,[])
link(SetData,12048896:doWork,[(569,160)(569,167)])
link(SetTableFocus,3516870:doWork,[(569,167)(569,181)])
link(NextEscCell,14836581:doWork,[(569,174)(569,195)])
}
BEGIN_SDK
Add(EditMultiEx,13264431,21,21)
{
WorkCount=#7:MT_Data|5:KeyUp|7:EscCell|7:onEnter|
EventCount=#7:OutData|5:hLeft|4:hTop|6:hWidth|7:hHeight|7:Visible|8:SetFocus|12:BringToFront|8:Position|7:SetData|13:SetTableFocus|11:NextEscCell|
Width=391
Height=270
link(MT_Data,6220925:doEvent1,[(56,27)(56,41)])
link(KeyUp,1777653:doCase,[(75,34)(75,237)])
link(EscCell,16665400:doEvent1,[(59,41)(59,139)])
link(onEnter,15492628:doEvent1,[(59,48)(59,195)])
}
Add(MT_Get,2382797,203,112)
{
link(onData,4670381:doGet,[(247,118)(247,136)(191,136)(191,153)])
link(onGet,13264431:hWidth,[(280,125)(280,48)])
}
Add(MT_Get,4670381,203,147)
{
link(onGet,13264431:hHeight,[(323,160)(323,55)])
}
Add(MT_Get,12566475,203,77)
{
link(onData,2382797:doGet,[(247,83)(247,101)(191,101)(191,118)])
link(onGet,13264431:hTop,[(280,90)(280,41)])
}
Add(MT_Get,528165,203,42)
{
link(onData,12566475:doGet,[(247,48)(247,66)(191,66)(191,83)])
link(onGet,13264431:hLeft,[(280,55)(280,34)])
}
Add(Hub,6220925,91,35)
{
OutCount=5
link(onEvent1,13264431:OutData,[(250,41)(250,27)])
link(onEvent2,528165:doGet,[])
link(onEvent3,13264431:SetFocus,[(267,55)(267,69)])
link(onEvent4,13264431:BringToFront,[(267,62)(267,76)])
link(onEvent5,11234906:doData,[])
}
Add(Case,1777653,203,231)
{
Value=Integer(27)
DataOnTrue=Integer(0)
link(onTrue,7950987:doEvent1,[])
}
Add(DoData,14327129,203,196)
{
Data=Integer(0)
link(onEventData,16696880:doWork2,[])
}
Add(Hub,7950987,259,238)
{
link(onEvent1,16696880:doWork3,[(354,244)])
link(onEvent2,13264431:SetTableFocus,[(368,251)(368,97)])
}
Add(HubEx,16696880,350,196)
{
Angle=3
link(onEvent,13264431:Visible,[(354,62)])
}
Add(HubEx,14640009,168,196)
{
link(onEvent,14327129:doData,[])
}
Add(DoData,11234906,144,63)
{
Data=Integer(0)
link(onEventData,13264431:Position,[(294,69)(294,83)])
}
Add(Hub,15492628,98,189)
{
link(onEvent1,13264431:SetData,[(271,195)(271,90)])
link(onEvent2,14640009:doWork2,[])
}
Add(Hub,16665400,98,133)
{
link(onEvent1,14640009:doWork1,[(172,139)])
link(onEvent2,13264431:NextEscCell,[(271,146)(271,104)])
}
END_SDK
Add(LineBreakEx,1347128,581,56)
{
Caption="Cell"
Type=2
}
Add(LineBreakEx,12048896,581,161)
{
Caption="SetData"
}
Add(LineBreakEx,14836581,581,189)
{
Caption="NexrEscCell_1"
}
Add(LineBreakEx,16750978,413,105)
{
Caption="EscCell"
Type=1
link(OnEvent,10463855:EscCell,[])
}
Add(LineBreakEx,11523854,413,91)
{
Caption="MT_Data_2"
Type=1
link(OnEvent,10463855:MT_Data,[])
}


Редактировалось 2 раз(а), последний 2019-02-15 23:13:05
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 1291
Рейтинг: 47
#20: 2019-02-20 23:34:02 ЛС | профиль | цитата
Вот еще, но если это не странность, как выводить пути в компонент edit? Без экранирующих слешей он их коверкает, удаляет часть символов:

Add(Button,891740,420,245)
{
Left=175
Top=35
Caption="Show"
link(onClick,12908821:doData,[])
}
Add(Edit,4798345,476,182)
{
Left=80
Top=35
Width=80
Text="\\1.jpg"
}
Add(Message,8146178,532,245)
{
}
Add(DoData,12908821,476,245)
{
link(onEventData,8146178:doMessage,[])
link(Data,4798345:Text,[])
}


Попробуйте убрать один из слешей в Text="\\1.jpg" и скомпилируйте. Получится " .jpg"

--- Добавлено в 2019-02-20 23:37:45

Тоже самое с DoData - в нее нужно записывать путь в виде: D:\\HP_Probook\\Docs\\Hiasm\\Projects\\1.jpg
чтобы на выходе получить нормальный.


Add(Button,10902724,357,343)
{
@Hint=#27:Запуск диалога выбора файла|
Top=201
Width=354
Height=30
Align=4
Font=[MS Sans Serif,10,1,0,1]
TabOrder=-1
Caption="Viewe Image File"
link(onClick,10061268:doData,[])
}
Add(DoData,10061268,476,343)
{
Data=String(D:\\HP_Probook\\Docs\\Hiasm\\Projects\\1.jpg)
link(onEventData,5555859:doMessage,[])
}
Add(Message,5555859,581,343)
{
}


--- Добавлено в 2019-02-20 23:58:10

ВОт еще, никак невозможно с путями работать, можно как-то их автоматом экранировать? И вообще это нормально что строковому компоненту не все равно какая информация обрабатывается? Может я не с путем работаю а с текстом? В общем странно и неудобно. Или это только у меня такой глюк? Проверил на 2 Хиасмах.


Add(MainForm,5760284,217,210)
{
Left=20
Top=105
Width=370
Caption="Image Viewer"
Position=1
}
Add(Button,10902724,288,300)
{
@Hint=#27:Запуск диалога выбора файла|
Top=201
Width=354
Height=30
Align=4
Font=[MS Sans Serif,10,1,0,1]
TabOrder=-1
Caption="Viewe Image File"
link(onClick,11542208:doReplace,[(360,306)(360,307)])
}
Add(Memory,12373609,315,224)
{
Default=String(D:\HP_Probook\Docs\Hiasm\Projects\1.jpg)
}
Add(DoData,10061268,372,342)
{
Data=String(D:\HP_Probook\Docs\Hiasm\Projects\1.jpg)
}
Add(Message,5555859,442,300)
{
}
Add(Replace,11542208,371,301)
{
SubStr="\"
DestStr="\\"
link(onReplace,5555859:doMessage,[(433,307)(433,306)])
link(Str,6214190:Text,[])
}
Add(StrList,6214190,371,224)
{
Strings=#39:D:\HP_Probook\Docs\Hiasm\Projects\1.jpg|
}


Редактировалось 4 раз(а), последний 2019-02-20 23:58:10
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 1291
Рейтинг: 47
#21: 2019-02-21 00:34:05 ЛС | профиль | цитата
Немного прояснилось. Видимо, в Дельфи сочетание \1 (слеша с цифрой) - какая-то управляющая последовательность. Если без цифры у слеша писать то пути передаются. А если вдруг попадется файл с именем состоящим из цифр, или с первым символом -цифрой, как быть?
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#22: 2019-02-21 01:19:15 ЛС | профиль | цитата
Aziz писал(а):
А если вдруг попадется файл с именем состоящим из цифр, или с первым символом -цифрой, как быть?

Опять на справку забил, а там это есть -- двойной слэш спасет отца русской демократии
карма: 22

0
Ответов: 1291
Рейтинг: 47
#23: 2019-02-21 01:27:43 ЛС | профиль | цитата
nesco, я это уже опытным путем додумался) А как программную подстановку слеша организовать? Хочу массив с путями на картинки загруженные пользователем перебирать и выводить, а вдруг у пользователя картинка с цифры начинается? как ее программно тогда вывести?
Справку полистал чето не нашел там..

--- Добавлено в 2019-02-21 01:58:13

Короче я в ступоре( Уже и погуглил на английском даже "динамическое экранирование слеша" ничего не нашел. Неужели все выводят пользователю табличку с предупреждением "Имя файла не должно начинаться с цифры!" ?))

--- Добавлено в 2019-02-21 01:59:48

Где-то видел совет заключить в 2 набора кавычек: "'\2data\1.jpg'" но не помогло.

Редактировалось 3 раз(а), последний 2019-02-21 01:59:48
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#24: 2019-02-21 03:56:53 ЛС | профиль | цитата
Лучше всего словесные тезисы оформит какой-либо схемкой. Короче -- че конкретно надо-то?
карма: 22

0
Ответов: 1291
Рейтинг: 47
#25: 2019-02-21 05:58:35 ЛС | профиль | цитата
nesco, что надо в последнем посте написал. Перебирать массив с путями до фоток, среди которых есть пути с цифрами в имени файла или папок. Пример что надо в виде схемы - штук 3-4 уже накидал выше. В последней схеме например - чтобы dodata выводил в месседжбокс правил ный путь вида "папка1\1.jpg" хранимый в memory, без ручной подстановки \ экранирущего символа. Это просто тестовая схема, потом вместо memory будет чтение из массива.

--- Добавлено в 2019-02-21 06:00:52

Хорошо, чуть позже накидаю схему с чтением фоток чьи пути хранятся в массиве и чьи имена начинаются на цифры. То есть фотки вида 1.jpg, 2jpg и тд.

--- Добавлено в 2019-02-21 06:42:33

Вот глючная схема того что мне надо. Типа слайдшоу. Создайте рядом с прогой папку "фотки" и накидайте туда фоток с именами вида 1.jpg 2.jpg 3.jpg и попробуйте их добавить кнопкой добавления. И чтобы потом этот список сохранился в файл. Че-то не хочет сохраняться и грузиться потом при старте программы автоматом если есть такие имена. Еще странно что если из диалога выбора файлов имена попадают в список - то нормально отображаются, а если вручную тот же список им созданный прописать в компоненте Мемо до компиляции, то при старте там все пути искажены. Думаю лучге создать отдельную тему, тк это не глюк примера стандартного.

Add(InfoTip,14730098,245,294)
{
Info=#25:Глюк с цифрами в пути.sha|
Width=169
Height=53
}
Add(MainForm,5760284,483,301)
{
Left=20
Top=105
Width=466
Height=319
Caption="Image Viewer"
Position=1
link(onCreate,15221221:doLoad,[(527,321)(527,391)(324,391)(324,461)])
}
Add(Button,10902724,70,427)
{
@Hint=#27:Запуск диалога выбора файла|
Top=170
Width=450
Height=30
Align=4
Font=[MS Sans Serif,10,1,0,1]
TabOrder=-1
Caption="Добавить фото с цифрой в начале названия файла"
link(onClick,5049552:doExecute,[])
}
Add(ODialog,5049552,119,427)
{
Filter="Файлы рисунков( png )|*.png|Файлы рисунков( jpg )|*.jpg|Файлы рисунков( gif )|*.gif|Файлы рисунков( bmp )|*.bmp|All files|*.*|"
FileName=""
link(onExecute,9889022:doEvent1,[])
}
Add(AlphaImage,2282639,623,588)
{
Width=450
Height=170
Align=5
}
Add(Img_Loader,2555054,574,588)
{
link(onLoad,2282639:doLoad,[])
}
Add(Memo,15221221,336,427)
{
Top=200
Width=450
Align=4
FileName="paths.txt"
Strings=#45:D:\HP_Probook\Docs\Hiasm\Projects\фотки\1.jpg|45:D:\HP_Probook\Docs\Hiasm\Projects\фотки\2.jpg|45:D:\HP_Probook\Docs\Hiasm\Projects\фотки\3.jpg|
ScrollBars=3
Point(doLoad)
Point(doSave)
link(onChange,13533170:doEvent1,[])
}
Add(Timer,10725271,217,588)
{
link(onTimer,3525988:doNext,[])
}
Add(ArrayRW,7391299,448,588)
{
link(onRead,1534064:doEvent1,[])
link(Array,15221221:Array,[(454,482)(356,482)])
}
Add(CounterEx,3525988,357,588)
{
Point(doMax)
link(onNext,7391299:doRead,[])
}
Add(DoData,6873056,301,602)
{
link(onEventData,3525988:doMax,[(345,608)(345,601)])
link(Data,15221221:Count,[(307,488)(349,488)])
}
Add(Hub,1534064,504,588)
{
link(onEvent1,2555054:doLoad,[])
link(onEvent2,5760284:doCaption,[(530,601)(530,454)(471,454)(471,307)])
}
Add(Hub,13533170,406,427)
{
InCount=2
link(onEvent1,6873056:doData,[(432,433)(432,521)(289,521)(289,608)])
link(onEvent2,11743706:doEvent2,[(432,440)(432,458)(212,458)(212,475)])
}
Add(Hub,9889022,182,427)
{
link(onEvent1,15221221:doAdd,[])
link(onEvent2,11743706:doEvent1,[(210,440)(210,468)])
}
Add(DoData,2726866,273,462)
{
Data=String(paths.txt)
link(onEventData,15221221:doSave,[])
}
Add(Hub,11743706,224,462)
{
InCount=2
link(onEvent1,2726866:doData,[])
}


Редактировалось 4 раз(а), последний 2019-02-21 06:49:42
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#26: 2019-02-21 10:42:17 ЛС | профиль | цитата
Aziz писал(а):
Еще странно что если из диалога выбора файлов имена попадают в список - то нормально отображаются, а если вручную тот же список им созданный прописать в компоненте Мемо до компиляции, то при старте там все пути искажены.

Все правильно, если слэш и символ прописан в режиме Design Time, то при компиляции кодогенератор преобразует их, а если в Real Time, то кодогенератор никакого отношения к ним уже не имеет.

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

0
Ответов: 1291
Рейтинг: 47
#27: 2019-02-21 10:54:36 ЛС | профиль | цитата
nesco, ясно, спасибо. А как быть с задачкой ? Показывать пользователю месседж что файлы и папки должны быть без цифр после слеша? Как-то надуманно. Полно программ в винде спокойно список фоток хавают с цифрами в пути.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Главный модератор
Ответов: 2999
Рейтинг: 396
#28: 2019-02-21 11:58:03 ЛС | профиль | цитата
nesco писал(а):
Все правильно, если слэш и символ прописан в режиме Design Time, то при компиляции кодогенератор преобразует их, а если в Real Time, то кодогенератор никакого отношения к ним уже не имеет.


Почему было не переложить это на программу, а не пользователя? Допускаю, что у автора были на то причины. В проекте HiAsm.NET нет такой проблемы, так как среда сама разбирается со слешами, но появляется проблема вставки других специальных символов в редакторе свойств. Впрочем, она не настолько критична, так как до сих пор ни разу этого не потребовалось, но не исключаю этого в будущем.

Редактировалось 2 раз(а), последний 2019-02-21 18:17:51
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 1291
Рейтинг: 47
#29: 2019-02-25 03:45:03 ЛС | профиль | цитата
Вот еще странность откопал, потенциальный источник багов - Мемо при нулевом количестве строк пишет на нижней точке что есть одна строка.


Add(MainForm,2953706,21,105)
{
link(onCreate,9363807:doData,[(205,125)(205,216)])
}
Add(Message,10575560,413,210)
{
}
Add(Memo,13834096,350,147)
{
Left=410
Top=145
}
Add(DoData,9363807,357,210)
{
link(onEventData,10575560:doMessage,[])
link(Data,13834096:Count,[])
}

карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
29
Сообщение
...
Прикрепленные файлы
(файлы не залиты)