Ravilr писал(а): Дайте vovcheck-у, самому подумать
Его труды мы уже видели. Eму не хватает знаний по современному HiAsm-y, причем, сильно не хватает
Вот схема, с применением кабеля для протяжки на далекие расстояния
Add(MainForm,2953706,210,350) { Width=389 Point(onKeyUp) Point(onKeyDown) link(onKeyUp,5835597:doReset,[]) link(onKeyDown,5835597:doOn,[]) } Add(StrList,11831633,308,322) { @Hint=#12:KeyToMyIndex| Strings=#2:39|2:37|2:38|2:40| Point(doGetIndex) Point(onGetIndex) link(onGetIndex,9741103:doCase,[]) AddHint(-112,87,86,13,@Hint) } Add(StrList,99913,546,287) { @Hint=#11:One Handler| Strings=#13:One Memo Left|14:One Memo Right|11:One Memo Up|13:One Memo Down| Point(doGetString) Point(onGetString) link(onGetString,6149627:doWork2,[]) AddHint(61,-38,75,13,@Hint) } Add(Label,1341810,644,294) { Left=100 Top=240 Width=193 Height=20 Font=[MS Sans Serif,10,1,0,1] Caption="" AutoSize=1 Alignment=2 } Add(InfoTip,4770262,189,210) { Info=#18:KeyBoard Interface| Width=302 Height=221 } Add(Memo,10911404,91,224) { Left=5 Top=5 Width=180 Height=205 Point(onSetFocus) Point(onKillFocus) link(onSetFocus,8048729:Wire1,[]) link(onKillFocus,8048729:Wire2,[]) } Add(Memo,5326158,91,280) { Left=190 Top=5 Width=180 Height=205 Point(onSetFocus) Point(onKillFocus) link(onSetFocus,8048729:Wire3,[(137,293)(137,251)]) link(onKillFocus,8048729:Wire4,[(142,300)(142,258)]) } Add(ChanelToIndex,430789,350,231) { link(onIndex,12467797:doValue,[(394,237)(394,286)]) } Add(Memory,12467797,406,280) { Default=Integer(-1) } Add(Switch,5835597,259,364) { DataOff=Integer(-1) Point(doOn) link(onSwitch,11831633:doGetIndex,[]) } Add(Case,9741103,357,329) { Value=Integer(-1) link(onNextCase,1853116:doEvent,[]) } Add(IndexToChanel,1853116,406,329) { Point(Index) link(onEvent1,2313039:Wire1,[]) link(onEvent2,2313039:Wire2,[]) link(Index,12467797:Value,[]) } Add(Edit,5002529,42,224) { Left=5 Top=215 Width=180 Text="" } Add(StrList,8583602,546,364) { @Hint=#11:Tow Handler| Strings=#13:Two Memo Left|14:Two Memo Right|11:Two Memo Up|13:Two Memo Down| Point(doGetString) Point(onGetString) link(onGetString,6149627:doWork3,[(606,377)]) AddHint(62,67,76,13,@Hint) } Add(HubEx,6149627,602,294) { link(onEvent,1341810:doText,[]) } Add(CableWork,8048729,154,231) { Count=4 link(Cable,10481025:Cable,[]) } Add(CableEvent,10481025,301,231) { Count=4 link(Wire1,430789:doWork1,[]) link(Wire2,11011788:doWork1,[(326,244)]) link(Wire3,430789:doWork2,[(336,251)(336,244)]) link(Wire4,11011788:doWork2,[]) } Add(HubEx,11011788,322,252) { Angle=1 link(onEvent,12467797:doClear,[(326,293)]) } Add(CableWork,2313039,462,329) { link(Cable,1447001:Cable,[]) } Add(CableEvent,1447001,511,329) { link(Wire1,99913:doGetString,[]) link(Wire2,8583602:doGetString,[(535,342)(535,412)]) }
Здесь, четные индексы входного кабеля упраляют индексом обработчиков, нечетные -- сбросом, выходной кабель управляет обработчиками
|