sla8a писал(а):
связан он скорее всего не с таймером, а с "скриншотером"В другой моей схеме нет скриншотера - и проблема с таймером тоже случается. Правда, гораздо реже, отловить её трудно, но зато если случается - программа просто после остановки таймера вылетает с ошибкой.
Всю схему приводить не буду, она громоздкая, но сам таймер, который останавливается, вот здесь:
Add(MainForm,2953706,84,84)
{
Position=1
}
Add(LineBreak,11950086,686,329)
{
Primary=[9335126,161,126]
}
Add(Debug,11006711,1036,469)
{
WEName=""
VDName="Hnd_Новой устройство"
link(Data,12340606:Handle,[(1042,457)(976,457)(976,548)(909,548)])
}
Add(Timer,9404548,721,455)
{
@Color=255
Interval=555
Point(doStopAll)
link(onTimer,12345997:doData,[])
}
Add(WinEnum,12340606,903,504)
{
link(onFindWindow,9898042:doCompare,[])
}
Add(StrMask,9898042,952,504)
{
Mask="*№1:*Новое устройство*"
link(onTrue,3343538:doEvent,[])
AddHint(-118,57,139,13,Mask)
}
Add(WinEnum,3139963,1029,490)
{
Point(doEnumChildWindows)
Point(onEnumChildWindows)
Point(ParentHandle)
link(onEnumChildWindows,15547222:doEvent1,[])
link(ParentHandle,11006711:Var,[])
}
Add(MT_MultiData,2410918,1113,504)
{
Count=3
link(onData1,7591861:doValue,[(1167,510)(1167,377)])
link(onData2,1195684:doValue,[(1199,517)(1199,433)])
link(onData3,12655600:doCompare,[])
}
Add(StrMask,12655600,1169,518)
{
Mask="*Цилиндр 1*"
link(onTrue,8665165:doEvent1,[])
AddHint(-43,43,76,13,Mask)
}
Add(Memory,1195684,1253,427)
{
}
Add(WinEnum,14196862,1246,504)
{
Point(doEnumChildWindows)
Point(onEnumChildWindows)
Point(ParentHandle)
link(onEnumChildWindows,12231873:doSeparateMT,[])
link(ParentHandle,1969951:Var2,[])
}
Add(MT_MultiData,12231873,1295,518)
{
Count=3
link(onData2,10139534:doValue,[(1377,531)(1377,461)])
link(onData3,9252605:doCompare,[])
}
Add(StrMask,9252605,1351,532)
{
Mask="*Давление, МПа*"
CaseSensitive=0
link(onTrue,689687:doEvent1,[])
AddHint(-70,43,103,13,Mask)
}
Add(Memory,10139534,1428,455)
{
}
Add(WinEnum,12197207,1484,518)
{
Point(doEnumChildWindows)
Point(onEnumChildWindows)
Point(ParentHandle)
link(onEnumChildWindows,9693248:doValue,[])
link(ParentHandle,10981643:ParentHandle,[(1497,506)(1473,506)(1473,583)(1448,583)])
}
Add(WinInfo,10981643,1428,539)
{
Point(ParentHandle)
link(onWinInfo,12197207:doEnumChildWindows,[])
link(Handle,3250456:Var2,[])
}
Add(StrMask,14001210,1582,532)
{
Mask="*EDIT*"
link(Str,2218951:Var,[])
AddHint(-7,48,48,13,Mask)
}
Add(MT_MultiMem,9693248,1533,532)
{
Count=3
link(onData,14001210:doCompare,[])
}
Add(LineBreak,8580112,1533,588)
{
Type=1
link(Data,9693248:Value1,[])
Primary=[2218951,49,-84]
}
Add(GetDataEx,3250456,1428,490)
{
link(Data,10139534:Value,[])
}
Add(LineBreak,11434118,1435,504)
{
Type=1
link(Data,3250456:Var3,[(1441,495)])
Primary=[4627593,35,140]
}
Add(GetDataEx,1969951,1253,462)
{
link(Data,1195684:Value,[])
}
Add(LineBreak,13767917,1540,581)
{
Type=1
link(Data,9693248:Value2,[])
Primary=[9443384,147,-70]
}
Add(Hub,3699844,819,455)
{
OutCount=12
link(onEvent1,9335126:In,[])
link(onEvent7,8838451:doData,[(889,503)(889,349)])
link(onEvent8,12340606:doEnum,[])
}
Add(DoData,12345997,770,455)
{
Data=String()
link(onEventData,3699844:doEvent1,[])
}
Add(Hub,15547222,1071,504)
{
link(onEvent1,13472677:doEvent,[])
}
Add(Memory,7591861,1190,371)
{
}
Add(LineBreak,6143039,1190,413)
{
Caption="cls"
Type=1
link(Data,7591861:Value,[])
Primary=[7229095,-371,203]
}
Add(LineBreak,14684287,1274,476)
{
Caption="hnd"
Type=1
link(Data,16612898:Var3,[(1280,467)])
Primary=[10136257,-413,147]
}
Add(GetDataEx,16612898,1260,462)
{
Angle=3
link(Data,1969951:Var3,[])
}
Add(ChildForm,7130770,1057,343)
{
}
BEGIN_SDK
Add(EditMulti,14591547,21,21)
{
WorkCount=1
DataCount=1
link(doWork1,8474755:doEvent,[(70,27)(70,111)])
}
Add(MainForm,6879658,238,42)
{
Left=35
Top=70
Height=313
Caption="отладка пресса"
MakeExt(Visible,,Visible)
}
Add(Memo,10329430,189,112)
{
Width=390
Height=250
ScrollBars=3
}
Add(Button,9825353,105,140)
{
Top=250
Caption="Clear"
link(onClick,10329430:doClear,[])
}
Add(CheckBox,8476138,105,63)
{
Left=60
Top=250
}
Add(IndexToChanel,8474755,105,105)
{
Point(Index)
link(onEvent2,10329430:doAdd,[])
link(Index,8476138:Checked,[])
}
END_SDK
Add(DoData,8838451,945,343)
{
Data=String(таймер)
link(onEventData,11328233:doWork2,[])
}
Add(DoData,12035896,945,357)
{
Data=String(№1 Новой устройство)
link(onEventData,8293071:doWork2,[])
}
Add(HubEx,11328233,987,343)
{
link(onEvent,13058571:doWork2,[])
}
Add(DoData,570125,945,378)
{
Data=String(цилиндр 1)
link(onEventData,7275431:doWork2,[])
}
Add(HubEx,8293071,987,357)
{
Angle=3
link(onEvent,11328233:doWork3,[])
}
Add(Hub,8665165,1218,581)
{
link(onEvent1,1031497:In,[])
link(onEvent2,14196862:doEnumChildWindows,[(1239,594)(1239,531)])
}
Add(LineBreak,8520033,903,378)
{
link(Out,570125:doData,[])
Primary=[1031497,350,203]
}
Add(Hub,689687,1400,574)
{
link(onEvent1,5497996:In,[(1424,580)(1424,594)])
link(onEvent2,10981643:doWinInfo,[(1421,587)(1421,545)])
}
Add(DoData,15592739,945,399)
{
Data=String(цилиндр 1 давление)
link(onEventData,13409399:doWork2,[])
}
Add(HubEx,7275431,987,378)
{
Angle=3
link(onEvent,8293071:doWork3,[])
}
Add(LineBreak,11337177,903,399)
{
link(Out,15592739:doData,[])
Primary=[5497996,532,189]
}
Add(DoData,10248567,945,420)
{
Data=String(цилиндр 1 давление EDIT)
link(onEventData,13409399:doWork3,[(991,426)])
}
Add(HubEx,13409399,987,399)
{
Angle=3
link(onEvent,7275431:doWork3,[])
}
Add(LineBreak,1945735,903,420)
{
link(Out,10248567:doData,[])
Primary=[2766439,756,105]
}
Add(LineBreak,2970515,679,469)
{
Caption="off"
link(Out,9404548:doStopAll,[])
Primary=[2431234,119,-91]
}
Add(LineBreak,5295872,679,455)
{
Caption="on"
link(Out,9404548:doTimer,[])
Primary=[15182845,119,-63]
}
Add(Debug,13472677,1092,504)
{
WEName="MBS_OnChild"
VDName=""
link(onEvent,2410918:doSeparateMT,[])
}
Add(Hub,10280714,770,378)
{
link(onEvent1,2431234:In,[])
link(onEvent2,15182845:In,[(791,391)(791,398)])
}
Add(Debug,3343538,1001,511)
{
WEName="MBS_Новой устройство"
VDName=""
link(onEvent,3139963:doEnumChildWindows,[])
}
Add(HubEx,9948682,1001,343)
{
link(onEvent,7130770:doWork1,[])
}
Add(Button,7005794,791,322)
{
Left=115
Top=120
link(onClick,10280714:doEvent1,[(835,328)(835,356)(758,356)(758,384)])
}
Add(HubEx,13058571,994,343)
{
link(onEvent,9948682:doWork2,[])
}
Но на этом кусочке кода ошибка вряд ли проявится, тем более что возникает нечасто и не при каждом запуске программы. Не знаю, от чего это зависит. Просто сообщаю, что и без скриншота таймер, бывает, глючит.