Вверх ↑
Ответов: 16884
Рейтинг: 1239
#1: 2010-06-28 20:34:10 ЛС | профиль | цитата
nesco, "Вау!" лишнее.
Кабель поставил просто для облагораживания картинки , когда "утянул", мешающий кусок схемы, вниз.

------------ Дoбавленo в 20.34:
Assasin писал(а):
А кто сказал, что он должен выдавать в поток 0?
А почему бы и нет ?
Assasin писал(а):
так чего там тебе не хватает
В твоей схеме тебе пришлось установить два одинаковых значения (5) для Counter.Min и для Case.Value. Если считаешь это нормальным, то ...
Разберем мультик:
Первый компонент Memory (используемые процедуры)

procedure THIMemory._work_doValue;
begin
FData := ReadData(_Data,_data_Data);
_hi_CreateEvent(_Data,@_event_onData,FData);
end;
........................
procedure THIMemory._var_Value;
begin
_Data := FData;
end;
Второй компонент Case (используемые процедуры)

procedure THICase._work_doCase;
var dt:TData;
begin
dt := _Data;
if Compare(ReadFromThread(_Data),_prop_Value,0) then
_hi_OnEvent_(_event_onTrue, FData)
else
_hi_OnEvent(_event_onNextCase,dt);
end;

procedure THICase._work_doDataOnTrue; begin FData:= _Data; end;
Третий компонент Hub

procedure THIHub.doEvent;
var i:integer;
begin
for i := 0 to FOutCount-1 do
_hi_onEvent_(onEvent[i],Data);
end;
Четвёртый компонент doData

procedure THIDoData._work_doData;
begin
dtNull(_Data);
_hi_CreateEvent(_Data,@_event_onEventData,ReadData(_Data,_data_Data,@_prop_Data));
end;
Прикинь еще коды функций, исползуемых в этих процедурах + коды мультика !

Добавление If и _hi_CreateEvent в коды Counter-a намного и быстрее и менее "кодоемкое" применения предложеной тобой лабуды.
Извини, другого названия незнаю.
Правда это называется ещё ИНДУССКИМ кодом.

Для наглядности коды не свернул.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0