Вверх ↑
Этот топик читают: Гость
Ответов: 109
Рейтинг: 5
#1: 2020-06-05 15:20:09 ЛС | профиль | цитата
Пытаюсь всунуть CharArray + ArrayRW в свой IC. Помогите избавиться от точек ar и arrays

Add(MainForm,2953706,147,222)
{
Width=235
Height=204
link(onCreate,12001692:doEnum,[])
}
Add(InlineCode,10273744,310,236)
{
WorkPoints=#5:doAdd|8:doGetStr|0:|
EventPoints=#8:onGetStr|0:|
VarPoints=#6:arrays|
DataPoints=#2:ar|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses Kol,Share,Debug;|0:|4:type|28: THiAsmUnit = class(TDebug)|10: private|15: Arr:PArray;|16: FStr:string;|0:|50: procedure _Set(var Item:TData; var Val:TData);|57: function _Get(Var Item:TData; var Val:TData):boolean;|28: function _Count:integer;|34: procedure _Add(var Val:TData);|9: public|17: Ar:THI_Event;|23: onGetStr:THI_Event;|0:|52: procedure doGetStr(var _Data:TData; Index:word);|50: procedure Arrays(var _Data:TData; Index:word);|46: procedure doAdd(var _Data:TData; Index:word);|1: |6: end;|0:|14:implementation|0:|26:procedure THiAsmUnit._Set;|16:var ind:integer;|13: s:string;|5:begin|27: ind := ToIntIndex(Item);|36: if(ind ›= 0)and(ind ‹ _Count)then|10: begin|31: s := Share.ToString(Val);|30: if s = '' then s := ' ';|26: FStr[ind+1] := s[1];|9: end;|4:end;|0:|26:procedure THiAsmUnit._Add;|5:begin|38: FStr := FStr + Share.ToString(val);|4:end;|0:|25:function THiAsmUnit._Get;|16:var ind:integer;|5:begin|27: ind := ToIntIndex(Item);|36: if(ind ›= 0)and(ind ‹ _Count)then|10: begin|23: Result := true;|34: dtString(Val,FStr[ind+1]);|8: end|24: else Result := false;|4:end;|0:|27:function THiAsmUnit._Count;|5:begin|26: Result := length(FStr);|4:end;|0:|30:procedure THiAsmUnit.doGetStr;|5:begin|30: _hi_OnEvent(onGetStr,Fstr);|4:end;|0:|28:procedure THiAsmUnit.Arrays;|5:begin|20: if Arr = nil then|49: Arr := CreateArray(_Set, _Get, _Count, _Add);|22: dtArray(_Data,Arr);|4:end;|0:|27:procedure THiAsmUnit.doAdd;|15:var Arr:PArray;|5:begin|22: Arr := ReadArray(Ar);|23: if Arr=nil then exit;|19: Arr._Add(_Data);|5:end; |0:|4:end.|
link(onGetStr,1194867:doAdd,[])
link(ar,10273744:arrays,[(316,224)(304,224)(304,280)(316,280)])
}
Add(StrList,6340415,231,161)
{
Strings=#5:Текст|
}
Add(Str_Enum,12001692,231,236)
{
Delimiter=""
link(onEnum,10273744:doAdd,[])
link(onEndEnum,10273744:doGetStr,[])
link(String,6340415:Text,[])
}
Add(RichEdit,1194867,392,236)
{
Left=5
Top=25
Width=210
Height=135
}
Add(CharArray,13823044,268,336)
{
}
Add(ArrayRW,15423875,268,397)
{
link(Array,13823044:Array,[])
}

карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 4568
Рейтинг: 494
#2: 2020-06-05 15:53:35 ЛС | профиль | цитата
Joiner, не знаю то не то но твой пример не собирается

Add(MainForm,12650515,77,112)
{
Width=235
Height=204
link(onCreate,8588016:doEvent1,[])
}
Add(InlineCode,10273744,203,126)
{
WorkPoints=#5:doAdd|6:doAdd1|
EventPoints=#8:onGetStr|0:|
DataPoints=#6:strArr|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses Kol,Share,Debug;|0:|4:type|28: THiAsmUnit = class(TDebug)|10: private|0:|9: public|30: onGetStr,strArr:THI_Event;|46: procedure doAdd(var _Data:TData; Index:word);|51: procedure doAdd1(var _Data:TData; Index:word); |6: end;|0:|14:implementation|0:|27:procedure THiAsmUnit.doAdd;|3:var|16: lst: PStrlist;|13: i: integer;|5:begin|19: lst := NewStrList;|35: lst.Text := ToStringEvent(strArr);|30: for i := 0 to lst.Count -1 do|38: _hi_onEvent(onGetStr,lst.Items[i]);|14: lst.Free; |5:end; |0:|57:procedure THiAsmUnit.doAdd1(var _Data:TData; Index:word);|4:var |13: i: integer;|12: s: string;|5:begin|29: s := ToStringEvent(strArr);|28: for i := 1 to Length(s) do|31: _hi_onEvent(onGetStr,s[i]);|4:end;|0:|0:|4:end.|
link(onGetStr,1194867:doAdd,[])
link(strArr,6340415:Text,[])
}
Add(StrList,6340415,203,56)
{
Strings=#4:Коза|4:Волк|7:Капуста|0:|
}
Add(RichEdit,1194867,301,126)
{
Left=5
Top=25
Width=210
Height=135
ScrollBars=2
}
Add(Hub,8588016,147,126)
{
link(onEvent1,10273744:doAdd,[])
link(onEvent2,10273744:doAdd1,[])
}

карма: 6

1
Голосовали:Joiner
Ответов: 109
Рейтинг: 5
#3: 2020-06-05 15:58:10 ЛС | профиль | цитата
andrestudio, там символы в IC '<','>' форум поменял.
карма: 0

0
Ответов: 4568
Рейтинг: 494
#4: 2020-06-05 16:01:27 ЛС | профиль | цитата
да я понял, можно сделать просто массив FDataArr: TData;
карма: 6

0
Ответов: 109
Рейтинг: 5
#5: 2020-06-05 16:15:51 ЛС | профиль | цитата
andrestudio, Спасибо, дошло до меня.
карма: 0

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