Вверх ↑
Ответов: 5446
Рейтинг: 323
#1: 2005-01-24 17:40:47 ЛС | профиль | цитата
Вот подправленные компоненты ArrayRw и ArrayEnum
(у ArrayRW добавил "тип" для точек index и array,
у ArrayEnum добавил V-точку Index и тип для точки array)

hiArrayEnum.pas
[code:1] unit hiArrayEnum;

interface

uses Kol,Share,Debug;

type
THIArrayEnum = class(TDebug)
private
FStop:boolean;
Item:TData;
eIndex:TData;
public
_data_Array:THI_Event;
_event_onItem:THI_Event;
_event_onEndEnum:THI_Event;

procedure _work_doEnum(var _Data:TData; Index:word);
procedure _work_doStop(var _Data:TData; Index:word);
procedure _var_Item(var _Data:TData; Index:word);
procedure _var_Index(var _Data:TData; Index:word);
end;

implementation

procedure THIArrayEnum._work_doEnum;
var dt:TData;
Ind:TData;
Arr:PArray;
begin
FStop := false;
Ind.Data_type := data_int;
Ind.idata := 0;
Arr := ReadArray(_data_Array);
if Arr <> nil then
while not FStop and Arr._Get(Ind,Item) do
begin
dt := Item;
_hi_OnEvent(_event_onItem,dt);
inc(Ind.idata);
eIndex := Ind;
end;
_hi_OnEvent(_event_onEndEnum);
end;

procedure THIArrayEnum._work_doStop;
begin
FStop := true;
end;

procedure THIArrayEnum._var_Item;
begin
_Data := Item;
end;

procedure THIArrayEnum._var_Index(var _Data:TData; Index:word);
begin
_Data := eIndex;
end;
end.
[/code:1]

ArrayEnum.ini
[code:1] [About]
Version=1.0
Author=Dilma
Mail=hiasm@mail.ru

[Type]
Class=Element
Info=Перебор всех элементов массива

[Methods]
doEnum=Начинает перебор элементов массива|1|
doStop=Останавливает перебор элементов|1|
onItem=Выдает в поток очередной элемент массива|2|
onEndEnum=Событие происходит всякий раз после завершения перебора элементов массива|2|
Array=Массив, элементы которого требуется перебрать|4|arr
Item=Содержит текущий элемент массива после вызова события onItem|3|
Index=Содержит индекс текущего элемента массива после вызова события onItem|3|int
[/code:1]

ArrayRW.ini
[code:1] [About]
Version=1.0
Author=Dilma
Mail=hiasm@mail.ru

[Type]
Class=Element
Info=Запись и чтение из массива

[Property]
+Index=Индекс элемента массива по-умолчанию|3|


[Methods]
doRead=Читает элемент массива с индексом Index|1|
doWrite=Записывает в элемент массива с индексом Index значение из поля Value|1|
doAdd=Добавляет элемент в конец массива|1|
onRead=Событие происходит всякий раз после чтения элемента массива и выдает его значение в поток|2|
Item=Содержит элемент массива после выполнения метода doRead|3|
*Count=Содержит кол-во элементов массива|3|int
Array=Определяет идентификатор массива|4|arr
Index=Определяет индекс элемента массива|4|int
Value=Определяет значение для записи в массив|4|
[/code:1]
карма: 1

0