Вверх ↑
Этот топик читают: Гость
Ответов: 5446
Рейтинг: 323
#31: 2006-10-21 16:16:19 ЛС | профиль | цитата
Вячеслав, этот кусок (в принципе) завязан на пока не написанный кусок по hub-ам. Если придерживаться придуманной аналогии, то можно написать примерно

Hub (HubEx) - это (сложная) стрелка с семафором.(...) GetData - это развилка со светофором


тогда можно написать так


Так как "рельсы" (связь) есть, то состав отправляется по ним, причём при своём движении он блокирует все семафоры на своём пути, в результате чего другой поезд не может через соответствующую стрелку проехать до тех пор, пока первый не разблокирует семафор на этой стрелке. При этом никакой поезд не может тронуться в путь до тех ппор, пока хотя бы одна стрелка на пути его следования заблокирована.
(...)
Так как дальше ехать некуда, а по пути не всретилось ничего интересного (например, развилок), то состав по тому же пути возвращается на станцию отправления, игнорируя все промежуточные станцииЮ кром етех, которые указаны в его "путевом листе". По возврашении на станцию отправления происходит разблокировка всех заблокированных данным составом стрелок.
(... где-то в части про красные потоки ...)
Замечу, что автомобили также не могут начинать движение до тех пор, пока хотя бы один перекрётсок на пути их следования закрыт.


По поводу "кто блокирует": идея с диспетчером мне нравится, будем считать, что семафоры переключает именно он. Диспетчером в данном случае выступает ОС (?)

Ещё кусок про Hub (под Hub-ом я понимаю 4 компонента: Hub, HubEx, GetData, GetDataEx), пока набросок

Hub - это разъезд (сложная конструкция из нескольких стрелок, внутри которой поезд может переходить с одного пути на другой). Когда поезд прибывает на разъезд, он получает отметку в своём "путевом листе" о том, что ему надо вернуться (на "обратном пути") на это разъезд и там перейти на следующий выходной путь. После исчерпания всех выходных путей информация о разъезде удаляется из путевого листа, и поезд продолжает обратное движение по тому входному пути, с которого он изначально прибыл.


карма: 1

0
Ответов: 9906
Рейтинг: 351
#32: 2006-10-21 16:27:41 ЛС | профиль | цитата
Да не "телепортируется" никто...
А возвращается постепенно.
Вернулся на одну ветку, а там бах: Hub оказывается надо ехать по следующей ветке..
Или For - надо повторять эту же

А все до этого продолжает быть блокировано...
Хотя блокировано... Ехать то с нарушениями правил никто физически не запрещает. Безаварийность не гарантирует просто...
карма: 9

0
Ответов: 5446
Рейтинг: 323
#33: 2006-10-21 16:39:25 ЛС | профиль | цитата
Galkov, лучше в подобном тексте местами "перегибать палку": раз заболкировано - значит нельзя, и точка; а не "ну заблокировано, но можно и забить на блокировку...".

[size=-2] а вообще, тема поездов-автомобилей у меня (видимо) вылезла после лёкого загама в Transport Tycoon Deluxe и Locomotion
карма: 1

0
Ответов: 3514
Рейтинг: 184
#34: 2006-10-21 16:42:02 ЛС | профиль | цитата
Чот я нихрена не понял..путают все эти паровозы и машины)))
Может легче?)
Эта хрень идёт от этой хрени в эту. При этом "правая" хрень может идти токо к "левой"
карма: 0
0
Ответов: 9906
Рейтинг: 351
#35: 2006-10-21 16:55:20 ЛС | профиль | цитата
iarspider, ну не простой это вопрос....
Подумать еще надо.
Но НАДО
карма: 9

0
Ответов: 3655
Рейтинг: 69
#36: 2006-10-21 16:55:59 ЛС | профиль | цитата
Астрамак, А это потому что нет изначального понятия что по синим путям ездят паровозы а по красным машины а в компанентах перегружаются или разгружаются.
И конечно нужна Анимация (лучше один раз увидеть).
Паровозы ездят только в одном направлении ,а машины могут в обоих.
карма: 0

0
Ответов: 9906
Рейтинг: 351
#37: 2006-10-21 17:09:27 ЛС | профиль | цитата
1) В том то и дело, что все ездят в обоих направлениях. Просто основное назначение паровозов - это возить "туда", а автомобилей - "обратно". Между прочим, водителя автомобиля можно уговорить захватить дополнительно с собой кое-чего и "туда". Все равно ведь едет... Правда, за очень дополнительные деньги

2) Вот мне и представляется, что такой анимацией должен заниматься отладочный режим
Т.е., выполнять роль учителя
Осталось Dilma уговорить

карма: 9

0
Ответов: 3655
Рейтинг: 69
#38: 2006-10-21 17:16:22 ЛС | профиль | цитата
Galkov,
должен заниматься отладочный режим
Классно бы было.

Осталось Dilma уговорить

за очень дополнительные деньги

карма: 0

0
Ответов: 9906
Рейтинг: 351
#39: 2006-10-21 17:35:29 ЛС | профиль | цитата
Ну вот...
Взял и опошлил все мероприятие ...
карма: 9

0
Гость
Ответов: 17029
Рейтинг: 0
#40: 2006-10-21 17:40:56 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2021-05-21 12:16:58
карма: 0

0
Ответов: 9906
Рейтинг: 351
#41: 2006-10-21 17:43:54 ЛС | профиль | цитата
Да вот еще.
Мы иногда уговариваем машиниста захватить кое чего обратно. Мало кто знает правда
Типа возвращается машинист и говорит: "Мне надо было дальше ехать, но я не поехал. Давай ты съездишь - вот маршрут и данные".

И едут. Причем напрямую, мимо предыдущей ветки. Которая остается свободной для других паровозиков.
Смысл делать такие фокусы имеет смысл, когда в элементе этот вызов последний и делать больше ничего не надо...
карма: 9

0
Ответов: 5446
Рейтинг: 323
#42: 2006-10-21 18:30:09 ЛС | профиль | цитата


Урок 5. Черновик. Версия 0.9.0 . Помещается для обсуждения!
Исправления:
21.10.2006: порядок чтения точек (ошибку нашёл Tad)
21.10.2006: модифицировано описание GetData (идея подсказана Вячеславом)
22.10.2006: поправлен пример 5.2.2 - убрана лишняя кнопка (в свете замечания о порядке чтения точек);
22.10.2006: начата 3 часть
22.10.2006: модифицировано описание Hub (автор - Tad)
23.10.2006: большАя правка, смена концепции. Спасибо всем, кто высказывал свои пожелания и преложения!
4.11.2006: Вроде придумал, как доделать 3 часть. Обсуждение приветствуется!



[size=+1]Урок 5. Потоки и иже с ними
Этот урок посвящён одному из фундаментальных понятий HiAsm: потоку, и методам работы с ним.
Уровень: Начальный
Необходимые навыки: Основы работы в среде (добавление компонентов, изменение свойств компонент, создание связей, редактирование формы и схемы), копирование схем из форума, знание основных элементов интерфейса Windows (кнопки, надписи, флажки (CheckBox), переключатели (RadioButton)

Часть 1. Введение. Типы потоков. "Синий" поток. Hub

Что же такое "поток"? Заглянем в !Глоссарий!:

Поток (связь) - линия, соединяющая две точки компонент (или компонента). Так же существует понятие Поток-Данные, означающее, что вместе с потоком от одного компонента другому были переданы какие-то данные. В этом случае компонент может "извлечь данные из потока" и использовать их для своей работы.


Не очень-то понятно, не так ли? Давайте представим, что программа на HiAsm - это транспортная система.

Потоки - это железные (синие) и автомобильные (красные) дороги.

Компоненты при таком подходе - это станции, но не простые: функционирование станции сводится отправлению других (своих персональных) составов и
автомобилей по маршрутам, определяемым связями элемента, подключенными справа и сверху. Но
только в ответ на пришедший транспорт слева или снизу. Приходящий поезд (или автомобиль) ожидает на станции, куда он прибыл, окончания всех транспортных операций на станции, заказ на которые он привез. После чего обязательно возвращается назад тем же путем, которым прибыл, с сообщением о выполнении сего ответственного задания.

Данные, которые передаются в потоке - это груз, перевозимым составом. Обычный состав может перевозить только 1 единицу груза: «ничего» (Null) или одно целое число или одно действительное число или одну строку (вне зависимости от длины) или один массив (вне зависимости от длины) и т.п.

Очевидно, что поезд не может проехать по автомобильной дороге, а автомобиль --- по железной...

Рассмотрим с помощью этих аналогий простейший пример (схема 5.1.1):


Add(Button,693842,28,35)
{
Left=25
Top=35
Caption="Кнопка"
Data=String(Привет, Мир!)
link(onClick,12405783:doText,[])
}
Add(Label,12405783,112,35)
{
Left=90
Top=40
Width=195
}

Здесь имеются 2 станции – отправитель Button (Кнопка) и получатель Надпись (Label). Имеется и груз – это содержимое поля Data кнопки. При нажатии на кнопку формируется состав (происходит событие onClick), везущий строку «Привет, Мир!», взятую из свойства Data. Так как "рельсы" (связь) есть, то состав отправляется по ним. По прибытии на станцию Label на путь doText состав отгружает копию товара (вызывает метод с данными из потока), в ответ на появление товара на платформе doLabel компонент Label меняет свою надпись (свойство Caption) на привезённую. Так как дальше ехать некуда, то состав возвращается на станцию отправления тем же путём, но без остановок на промежуточных станциях.

Построим более сложную схему, в которой надпись будет зависеть от того, какую кнопку нажал пользователь (схема 5.1.2)


Add(Button,12494952,91,56)
{
Left=10
Top=5
Caption="Первая"
Data=String(Надпись номер один)
link(onClick,3810058:doEvent1,[(152,62)(152,83)])
}
Add(Button,13680843,91,105)
{
Left=10
Top=35
Caption="Вторая"
Data=String(Надпись номер два)
link(onClick,3810058:doEvent2,[(152,111)(152,90)])
}
Add(Label,14429757,245,77)
{
Left=75
Top=20
Width=270
}
Add(Hub,3810058,182,77)
{
InCount=2
OutCount=1
link(onEvent1,14429757:doText,[])
}

Здесь появился новый элемент - Hub.
Hub - это узловая станция у которой может быть несколько режимов работы:

1. Один входящий путь -> несколько выходящих
При прибытии на такую станцию с поезда снимается груз (данные).
По выходящим путям, в порядке очередности (правые точки сверху-вниз), отправляются поезда с копией груза (данными). Каждый следующий поезд отправляется только по возвращении предыдщего.

2. Несколько входящих -> один выходящий
Станция может быть "зарезервирована", это значит, что она примет поезд толко с определённой входной ветки, и пока поезд с этой ветки не будет обслужен, другие входные ветки блокируются
(не обслуживаются). Снятие резерва происходит по возращении поезда, запросившего резервирование, на станцию отправления

3. Несколько входящих -> несколько выходящих
Комбинация 1. и 2.: поезда по очереди прибывают на станцию, откуда по очереди отправляются поезда по выходным веткам.

При отправлении поезда со станции "диспетчер" резервирует все узловые станции на пути следования поезда. При этом никакой поезд не может тронуться в путь до тех пор, пока хотя бы одна станция на пути его следования заблокирована (для него). По возвращении поезда на станцию отправления все зарезервированные для него станции освобождаются.

Конец 1 части 5 урока
Часть 2. "Красный" поток. GetData, Memory. Очерёдность потоков.

Рассмотрим теперь вертикальные потоки (красные) на примере следующеё схемы (схема 5.2.1):


Add(Button,693842,154,196)
{
Left=25
Top=35
Caption="Кнопка"
link(onClick,12405783:doText,[])
}
Add(Label,12405783,238,196)
{
Left=90
Top=40
Width=195
link(Text,1932628:Value,[])
}
Add(Memory,1932628,238,119)
{
Default=String(Превед, Миръ!)
}

Отличий этой схемы от предыдущей несколько:

  • Добавлен компонент Memory, в котором лежит строка «Превед, Миръ!»
  • Нижняя точка Data компонента Memory соединена с верхней точкой Text компонента Label
  • Содержимое свойства Data компонента Button установлено в NULL. Смысл этого действия будет ясен позднее

В этой схеме появился новый для нас компонент Memory. Этот компонент можно рассматривать как «склад» на одну «привозную» единицу товара (Value) и одну фиксированную единицу (Default, значение по умолчанию). У этой станции 2 входных пути: doValue и doClear, и одни выходной onData. Поезд, прибывающий на путь doValue, заменяет содержимое склада Value на привезённый товар; а поезд, прибывающий на путь doClear, - на (копию) товара со склада Default. В обоих случаях с пути onData отправляется поезд с копией нового содержимого "привозного" склада. Кроме того, этот склад имеет погрузочную зону для автомобилей – нижняя точка Value, и поэтому может служить как зона переноса груза из сотава в грузовик.

Что же изменилось в функционировании схемы? Теперь при нажатии кнопки в путь отправляется пустой состав. По прибытии на путь doText станции Label пустого состава станция отправляет со «стоянки» (верхней точки) Label "грузовик" по имеющейся автомобильной дороге (красному потоку). По прибытии на станцию Memory в погрузочную зону Value он получает копию товара со склада Value и возвращается с этим товаром обратно на станцию Label. Далее с разгруженным товаром поступают точно так же, как если бы его привёз железнодорожный состав.

Аналогом Hub-а для автодорог является компонент GetData, который можно рассматривать как дополнительные погрузочные зоны для грузовиков без расширения склада. Напомню, что при "погрузке" товар со склада не исчезает Автомобили так же, как и поезда, не могут начинать движение до тех пор, пока хотя бы одна развилка на пути их следования закрыта.
(тут нужен пример, но придумать его не могу!)

Для реализации "GetData наоборот" используется компонент GetIndexData (схема 5.2.2):


Add(Button,12494952,231,154)
{
Left=75
Top=5
Caption="Первая"
Data=Integer(0)
link(onClick,3810058:doEvent1,[(271,160)(271,181)])
}
Add(Button,13680843,231,203)
{
Left=135
Top=5
Caption="Вторая"
Data=Integer(1)
link(onClick,3810058:doEvent2,[(271,209)(271,188)])
}
Add(Label,14429757,343,231)
{
Left=5
Top=30
Width=185
link(Text,8509863:Var,[])
}
Add(Hub,3810058,280,175)
{
InCount=2
link(onEvent1,8509863:doIndex,[(334,181)(334,181)])
link(onEvent2,14429757:doText,[(327,188)(327,237)])
}
Add(Memory,13356512,322,126)
{
Default=String(Надпись номер один)
}
Add(Memory,14669312,371,126)
{
Default=String(Надпись номер 2)
}
Add(GetIndexData,8509863,343,175)
{
link(Data1,13356512:Value,[(349,167)(328,167)])
link(Data2,14669312:Value,[(356,167)(377,167)])
}
Add(Label,10628788,238,105)
{
Left=5
Top=10
Caption="Выбрать"
}

Как работает GetIndexData?

  • По прибытии состава на платформу doIndex соединяет верхнюю точку, номер которой "привёз" состав, с нижней точкой; если состав привёз неверный индекс: меньше 0 или больше, чем число верхних точек - 1), то закрывает проезд: любой "грузовик", прибывший на эту станцию, немедленно отправляется назад "пустым" (везущим Null). До первого переключения проезд через компонент является закрытым.
  • По прибытии "грузовик" на нижнюю точку Var, если проезд открыт, грузовик направляется на соответствующий путь, как если бы никакой "развилки" не было (блокировка-разблокировка при этом всё равно выполняется)

Внимательный читатель может задать вопрос: а что произойдёт, если поезд в схеме 5.2.1 (или 5.2.2) не будет пустым? В таких случаях нужно руководствоваться нехитрым правилом приоритетов:

  • Наивысшим приоритетом обладают данные, доставленные грузовиком по автодороге
  • Если грузовик ничего не доставил (NULL) или вообще не дороги (не подключена точка), то используются данные, привезённые по ЖД (переданные при вызове метода)
  • Наконец, если и по ЖД ничего не было привезено, используются данные из соответствующего свойства "по умолчанию" элемента, если оно есть

Замечу, что этот порядок используется тогда, когда нет других указаний относительно порядка чтения данных. Примеры обратного будут рассмотрены в следующих частях. Здесь же замечу, что свойство Caption компонента Label не является свойством "по умолчанию" (в качестве значения свойства "по умолчанию" используется пустая строка).

Конец части 2 урока 5
Часть 3. DoData, IndexToChannel, ChannelToIndex
(в разработке)
В прошлой части мы затронули один из элементов, связывающих красные и синие потоки -- Memory. Но это не единственный такой компонент.

Поставим такую задачу: пусть по нажатии на кнопку "Первая" текст надписи меняется на "Это раз", на кнопку "Вторая" -- на "Это два", а по щелчку по надписи -- на "клац". Как же это реализовать? Можно воспользоваться жульническим методом (схема 5.3.1) :

Add(Button,12494952,217,154)
{
Left=75
Top=5
Caption="Первая"
Data=String(Это раз)
link(onClick,3810058:doEvent1,[(264,160)(264,181)])
}
Add(Button,13680843,217,203)
{
Left=135
Top=5
Caption="Вторая"
Data=String(Это два)
link(onClick,3810058:doEvent2,[(264,209)(264,188)])
}
Add(Label,14429757,336,175)
{
Left=5
Top=30
Width=185
link(onClick,2522918:doClear,[])
}
Add(Hub,3810058,280,175)
{
InCount=3
OutCount=1
link(onEvent1,14429757:doText,[(327,181)(327,181)])
}
Add(Memory,2522918,399,168)
{
Default=String(Клац!)
link(onData,3810058:doEvent3,[(441,174)(441,158)(270,158)(270,195)])
}
но это некрасиво.

А теперь рассмотрим корректный метод решения поставленной задачи (схема 5.3.2):

Add(Button,12494952,217,154)
{
Left=75
Top=5
Caption="Первая"
Data=String(Это раз)
link(onClick,3810058:doEvent1,[(264,160)(264,181)])
}
Add(Button,13680843,217,196)
{
Left=135
Top=5
Caption="Вторая"
Data=String(Это два)
link(onClick,3810058:doEvent2,[(264,202)(264,188)])
}
Add(Label,14429757,336,175)
{
Left=5
Top=30
Width=185
link(onClick,7251959:doData,[])
}
Add(Hub,3810058,280,175)
{
InCount=3
OutCount=1
link(onEvent1,14429757:doText,[(327,181)(327,181)])
}
Add(DoData,7251959,385,175)
{
Data=String(Клац!)
link(onEventData,3810058:doEvent3,[(427,181)(427,165)(270,165)(270,195)])
}

В этом примере мы видим новый элемент - DoData. DoData - это второй тип станции-связки между ЖД и автодорогами, позволяющий груз с автодороги погрузить на ЖД. При этом, если автодороги нет, или грузовик вернулся пустым (NULL), то на поезд погружается "значение по умолчанию" из свойства Data. В нашем примере реализуется последняя возможность - дороги нет, поэтому состав получает строку "Клац!", которую благополучно доставляет на станцию Label. Ещё раз напомню, что станции в нашей транспортной системе не сквозные, прибытие поезда на станцию вызывает отправление уже другого поезда .

Рассмотрим, наконец, дав элемента, очень похожих на Hub - это ChannelToIndex и IndexToChannel на следующем примере (схема 5.3.3):

Add(RadioButton,522844,238,98)
{
Left=5
Top=10
Width=30
Caption="0"
link(onSelect,6224976:doWork1,[(289,104)(289,139)])
}
Add(RadioButton,4209694,238,140)
{
Left=40
Top=10
Width=35
Caption="1"
link(onSelect,6224976:doWork2,[])
}
Add(RadioButton,14433966,238,182)
{
Left=75
Top=10
Width=35
Caption="2"
link(onSelect,6224976:doWork3,[(289,188)(289,153)])
}
Add(ChanelToIndex,6224976,308,133)
{
Count=3
link(onIndex,4600533:doText,[])
}
Add(Label,750749,301,84)
{
Top=35
Height=17
Caption="Опция №"
}
Add(Edit,4600533,413,133)
{
Left=55
Top=30
Text=""
}

Чем же отличается ChanbelToIndex от Hub? Отвечу: по прибытии состава на один из входных путей с выходного пути отправляется состав не копией входных данных, а с номером пути (отсчитываемым сверху вниз, номер верхнего пути - 0). ЩЗамечу, что вхходные данные можно получить с точки Data.

Расширим пример, добавив обратную связь:

Add(RadioButton,522844,168,56)
{
Left=5
Top=10
Width=30
Caption="0"
link(onSelect,6224976:doWork1,[(219,62)(219,97)])
}
Add(RadioButton,4209694,168,98)
{
Left=40
Top=10
Width=35
Caption="1"
link(onSelect,6224976:doWork2,[])
}
Add(RadioButton,14433966,168,140)
{
Left=75
Top=10
Width=35
Caption="2"
link(onSelect,6224976:doWork3,[(219,146)(219,111)])
}
Add(ChanelToIndex,6224976,238,91)
{
Count=3
link(onIndex,4600533:doText,[])
}
Add(Label,750749,231,42)
{
Top=35
Height=17
Caption="Опция №"
}
Add(Edit,4600533,343,91)
{
Left=55
Top=30
Text=""
}
Add(IndexToChanel,9921775,343,189)
{
Count=3
Data=Integer(1)
Point(Index)
link(onEvent1,522844:doSelect,[(410,195)(410,140)(140,140)(140,62)])
link(onEvent2,4209694:doSelect,[(400,202)(400,159)(150,159)(150,104)])
link(Index,4600533:Text,[(349,156)(349,156)])
link(onEvent3,14433966:doSelect,[(390,209)(390,180)(160,180)(160,146)])
}
Add(Button,9379850,273,189)
{
Left=5
Top=55
Width=100
Caption="Выбрать"
link(onClick,9921775:doEvent,[])
}

IndexToChannel работает следующим образом: он отправляет данные с точки Data (или из свойства Data) по пути, указанному во входящем потоке (или с помощью точки Index).

Откуда взялась точка "Index" у IndexToChannel? Очень просто: с закладки "Точки"!


Наконец, финальный штрих - "протаскивание" данных через ChannelToIndex

Add(RadioButton,522844,168,56)
{
Left=5
Top=10
Width=30
Caption="0"
link(onSelect,6224976:doWork1,[(219,62)(219,97)])
}
Add(RadioButton,4209694,168,98)
{
Left=40
Top=10
Width=35
Caption="1"
link(onSelect,6224976:doWork2,[])
}
Add(RadioButton,14433966,168,140)
{
Left=75
Top=10
Width=35
Caption="2"
link(onSelect,6224976:doWork3,[(219,146)(219,111)])
}
Add(ChanelToIndex,6224976,238,91)
{
Count=3
Point(Data)
link(onIndex,15299371:doEvent1,[])
}
Add(Label,750749,231,42)
{
Top=35
Height=17
Caption="Опция №"
}
Add(Edit,4600533,343,91)
{
Left=55
Top=30
Text=""
}
Add(IndexToChanel,9921775,357,189)
{
Count=3
Data=Integer(1)
Point(Index)
link(onEvent1,522844:doSelect,[(410,195)(410,140)(140,140)(140,62)])
link(onEvent2,4209694:doSelect,[(400,202)(400,159)(150,159)(150,104)])
link(onEvent3,14433966:doSelect,[(397,209)(397,180)(160,180)(160,146)])
link(Index,4600533:Text,[(363,156)(349,156)])
}
Add(Button,9379850,273,189)
{
Left=5
Top=55
Width=100
Caption="Выбрать"
link(onClick,9921775:doEvent,[])
}
Add(Edit,2873425,343,245)
{
Left=55
Top=55
link(Str,6224976:Data,[(349,184)(244,184)])
}
Add(Label,1437291,287,35)
{
Top=60
Caption="Данные"
}
Add(Hub,15299371,287,91)
{
link(onEvent1,4600533:doText,[])
link(onEvent2,2873425:doText,[(334,104)(334,251)])
}

На этом 5 урок закончен, всем кто слушал и комментировал - спасибо.



[size=-2]------ Добавлено в 18:28
galkov писал(а):

Да вот еще.
Мы иногда уговариваем машиниста захватить кое-чего обратно. Мало кто знает правда [Image]
Типа возвращается машинист и говорит: "Мне надо было дальше ехать, но я не поехал. Давай ты съездишь - вот маршрут и данные".

И едут. Причем напрямую, мимо предыдущей ветки. Которая остается свободной для других паровозиков.
Смысл делать такие фокусы имеет смысл, когда в элементе этот вызов последний и делать больше ничего не надо...


Э-э... А мона примерчик? Если это что-то простое, то можно будет поправить текст урока

[size=-2]------ Добавлено в 18:30
Про "автомобиль" я понимаю, это когда обращение к массиву идёт (прочитал в справке). А паровоз?

карма: 1

0
Ответов: 16884
Рейтинг: 1239
#43: 2006-10-21 18:37:06 ЛС | профиль | цитата
    Наивысшим приоритетом обладают данные, переданные при вызове метода (привезённые по ЖД)

    Если по ЖД ничего не пришло (или пришёл NULL), то используются данные с соответствующей верхней точки (доставленные курьером по автодороге)

    Наконец, если и курьер ничего не доставил (или вообще не ездил, т.к. не было дороги -- не подключена точка), используются данные из соответствующего свойства "по умолчанию" элемента, если оно есть

А у меня,почему-то,
Наивысшим приоритетом обладают данные
с верхней точки
Add(Button,3468630,35,77)
{
Left=15
Top=55
Data=String(Button)
link(onClick,14867859:doText,[(89,83)(89,83)])
}
Add(Edit,5442829,112,21)
{
Left=110
Top=20
}
Add(Label,14867859,112,77)
{
Left=110
Top=60
link(Text,5442829:Text,[])
}
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 3655
Рейтинг: 69
#44: 2006-10-21 18:41:35 ЛС | профиль | цитата
iarspider, Хорошо написано но думаю мало понятно.
GetData - это склад одинаковых товаров.Каждый берёт себе по одному экземпляру.
карма: 0

0
Ответов: 5446
Рейтинг: 323
#45: 2006-10-21 19:01:14 ЛС | профиль | цитата
Вячеслав, я бы скорее сказал "GetData - это дополнительные зоны погрузки для одного и того же склада

Tad, исправляюсь
карма: 1

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