Вверх ↑
Этот топик читают: Гость
Ответов: 288
Рейтинг: 4
#1: 2010-02-17 23:26:42 ЛС | профиль | цитата
Народ, а как точка doGetString получает строку по индэксу?code_16965.txt
карма: 2

0
файлы: 1code_16965.txt [1.6KB] [467]
Ответов: 5446
Рейтинг: 323
#2: 2010-02-17 23:36:31 ЛС | профиль | цитата
Sova-Kmv, что-то я совсем не понял, что в твоей схеме происходит. Поэтому поясню на пальцах: при вызове doGetString надо указать, какую (по порядку) строку из имеющихся в списке ты хочешь получить. Указать это можно либо в потоке, либо с помощью точки doGetString. После вызова возникнет событие onGetString, содержащее полученную строку (если, конечно, строка с таким индексом есть).
карма: 1

0
Ответов: 288
Рейтинг: 4
#3: 2010-02-17 23:55:18 ЛС | профиль | цитата
iarspider, А как указать, какую (по порядку) строку из имеющихся в списке я хочу получить при вызове doGetString. Мне Вообщето нужно собрать разбитое предложение полученное в разнобой (1-3-5-4-2).
карма: 2

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#4: 2010-02-18 00:08:08 ЛС | профиль | цитата
Sova-Kmv, может вот так пойдет



Add(MainForm,11366362,161,126)
{
Width=380
Height=356
}
Add(DoData,10270666,315,245)
{
link(onEventData,9113597:doEvent1,[])
link(Data,2382690:Text,[])
}
Add(Button,5362479,161,175)
{
link(onClick,8986985:doEvent1,[])
}
Add(Edit,2382690,315,203)
{
Left=55
Width=315
Text="Строка-1"
}
Add(Memo,10952611,532,294)
{
Left=55
Top=60
Width=315
Height=265
ScrollBars=2
Point(onChar)
link(Str,12730185:Var2,[])
}
Add(DoData,2117444,315,329)
{
link(onEventData,9113597:doEvent2,[(363,335)(363,258)])
link(Data,5740590:Text,[])
}
Add(Edit,5740590,315,287)
{
Left=55
Top=20
Width=315
Text="Строка-3"
}
Add(DoData,7251448,315,420)
{
link(onEventData,9113597:doEvent3,[(363,426)(363,265)])
link(Data,16503857:Text,[])
}
Add(Edit,16503857,315,378)
{
Left=55
Top=40
Width=315
Text="Строка-2"
}
Add(StrList,2025813,476,203)
{
Strings=#0:|6:Привет|4:Васи|2:от|
Point(doGetString)
Point(onGetString)
link(onGetString,7864283:doStrCatDlm,[])
}
Add(DoData,9343465,273,245)
{
Data=Integer(1)
link(onEventData,10270666:doData,[])
}
Add(DoData,5235921,273,329)
{
Data=Integer(3)
link(onEventData,2117444:doData,[])
}
Add(DoData,1558745,273,420)
{
Data=Integer(2)
link(onEventData,7251448:doData,[])
}
Add(Hub,8986985,203,175)
{
OutCount=4
link(onEvent1,7864283:doClear,[(517,181)(517,223)])
link(onEvent2,9343465:doData,[(245,188)(245,251)])
link(onEvent3,5235921:doData,[(245,195)(245,335)])
link(onEvent4,1558745:doData,[(245,202)(245,426)])
}
Add(Hub,9113597,378,245)
{
InCount=3
OutCount=1
link(onEvent1,6430725:doSplit,[])
}
Add(Button,10233106,483,294)
{
Top=60
link(onClick,10952611:doAdd,[])
}
Add(GetDataEx,12730185,532,259)
{
link(Data,7864283:Result,[])
}
Add(StrPart,6430725,406,245)
{
Char="-"
link(onSplit,2025813:doGetString,[])
}
Add(StrCatDelim,7864283,532,210)
{
Delimiter=" "
Point(doClear)
link(Str1,12730185:Var1,[(538,198)(529,198)(529,264)])
}

карма: 22

0
Ответов: 288
Рейтинг: 4
#5: 2010-02-18 00:23:45 ЛС | профиль | цитата
nesco, не работает, у меня твой PointElement перечоркнут.
карма: 2

0
Разработчик
Ответов: 26153
Рейтинг: 2127
#6: 2010-02-18 00:25:37 ЛС | профиль | цитата
Sova-Kmv писал(а):
у меня твой PointElement перечоркнут

Это будущий штатный компонент StrCatDelim, скачай его с SVN

На всякий случай, пямые ссылки
http://hiasm.com/svn/elements/delphi/code/hiStrCatDelim.pas
http://hiasm.com/svn/elements/delphi/conf/StrCatDelim.ini
http://hiasm.com/svn/elements/delphi/icon/StrCatDelim.ico
карма: 22

0
Ответов: 288
Рейтинг: 4
#7: 2010-02-18 00:30:46 ЛС | профиль | цитата
nesco, понял.
------------ Дoбавленo в 02.29:
Да nesco, работает, но есле честно то ему просто катострофически нехватает функции сборки предложения по Integer-у. Я думаю что лучше 1-н элемент впихнуть в место 3-х. Да и вот этот элемент (с которым ты мне помогал) я бы тоже добавил в HiAsm.

Add(InlineCode,7084589,1988,525)
{
WorkPoints=#38:doConvert=Входящая не разбитая строка |
EventPoints=#34:onResult=Выходящая разбитая строка|
DataPoints=#4:Data|5:Count|3:Str|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|9: public|0:|18: Data:THI_Event;|19: Count:THI_Event;|17: Str:THI_Event;|22: onResult:THI_Event;|3: |52: procedure doConvert(var _Data:TData; Index:word);|5: end;|0:|14:implementation|61:procedure THiAsmClass.doConvert(var _Data:TData; Index:word);|20:var i, l: Integer;|21: txt, st:string;|18: cnt:integer;|5:begin|35: txt := ReadString(_Data, Data);|34: st := ReadString(_Data, Str);|37: cnt := ReadInteger(_Data, Count);|24: Replace(txt, ,');|3:TRY|20: l := Length(txt);|25: if l <= cnt then exit;|16: i := cnt + 1;|24: while i <= l do begin|25: Insert(st, txt, i);|13: Inc(l);|22: Inc(i, cnt + 1);|7: end;|7:FINALLY|42: _hi_CreateEvent(_Data, @onResult, txt);|4:END;|4:end;|4:end.|
}

Только к нему бы я бы добавил бы ещо и функцию "Реверс" (Т.Е. начинать вставлять с лева или с права и с 0-й и с последней позиции). Прикольные бы получились элеменьтики для работы со строками. nesco, если вдруг задумаеш сотворить такое, дай знать.
карма: 2

0
Ответов: 16884
Рейтинг: 1239
#8: 2010-02-18 10:24:34 ЛС | профиль | цитата
Sova-Kmv писал(а):
Да и вот этот элемент
А что он делает ? На вскидку - сразу и не поймешь
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1328
Рейтинг: 69
#9: 2010-02-18 23:21:06 ЛС | профиль | цитата
Tad писал(а):
А что он делает ? На вскидку - сразу и не поймешь

вставляет вроде

Add(MainForm,2953706,224,273)
{
link(onCreate,4000610:doData,[])
}
Add(InlineCode,7084589,420,287)
{
WorkPoints=#38:doConvert=Входящая не разбитая строка |
EventPoints=#34:onResult=Выходящая разбитая строка|
DataPoints=#4:Data|5:Count|3:Str|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|9: public|0:|18: Data:THI_Event;|19: Count:THI_Event;|17: Str:THI_Event;|22: onResult:THI_Event;|3: |52: procedure doConvert(var _Data:TData; Index:word);|5: end;|0:|14:implementation|61:procedure THiAsmClass.doConvert(var _Data:TData; Index:word);|20:var i, l: Integer;|21: txt, st:string;|18: cnt:integer;|5:begin|35: txt := ReadString(_Data, Data);|34: st := ReadString(_Data, Str);|37: cnt := ReadInteger(_Data, Count);|24: Replace(txt, ,');|3:TRY|20: l := Length(txt);|25: if l <= cnt then exit;|16: i := cnt + 1;|24: while i <= l do begin|25: Insert(st, txt, i);|13: Inc(l);|22: Inc(i, cnt + 1);|7: end;|7:FINALLY|42: _hi_CreateEvent(_Data, @onResult, txt);|4:END;|4:end;|4:end.|
link(onResult,3589592:doMessage,[])
link(Count,3096900:Value,[])
link(Str,13981389:Value,[(440,265)(510,265)])
}
Add(DoData,4000610,280,287)
{
Data=String(ADFGKJULO)
link(onEventData,6058813:doValue,[])
}
Add(Memory,3096900,427,175)
{
Default=Integer(5)
}
Add(Message,3589592,525,287)
{
link(Caption,6058813:Value,[(538,275)(491,275)(491,335)(356,335)])
}
Add(Memory,6058813,350,287)
{
link(onData,7084589:doConvert,[])
}
Add(Memory,13981389,504,210)
{
Default=String(dddd)
}


карма: 2

0
файлы: 1code_16970.txt [2.3KB] [570]
Ответов: 16884
Рейтинг: 1239
#10: 2010-02-18 23:26:18 ЛС | профиль | цитата
Konst писал(а):
вставляет вроде

code_16978.txt
ну и какая разница ?
Тоже вставляет.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_16978.txt [645B] [313]
Ответов: 1328
Рейтинг: 69
#11: 2010-02-18 23:51:28 ЛС | профиль | цитата
Tad писал(а):
ну и какая разница ?
Тоже вставляет.
я разницы тоже не понял...
карма: 2

0
Ответов: 16884
Рейтинг: 1239
#12: 2010-02-19 00:36:10 ЛС | профиль | цитата
Konst писал(а):
я разницы тоже не понял...
может автор объяснит...
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1328
Рейтинг: 69
#13: 2010-02-19 01:10:58 ЛС | профиль | цитата
вставляет и удаяет пробелы text

Add(InlineCode,7084589,420,287)
{
WorkPoints=#38:doConvert=Входящая не разбитая строка |
EventPoints=#34:onResult=Выходящая разбитая строка|
DataPoints=#4:Data|5:Count|3:Str|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|9: public|0:|18: Data:THI_Event;|19: Count:THI_Event;|17: Str:THI_Event;|22: onResult:THI_Event;|3: |52: procedure doConvert(var _Data:TData; Index:word);|5: end;|0:|14:implementation|61:procedure THiAsmClass.doConvert(var _Data:TData; Index:word);|20:var i, l: Integer;|21: txt, st:string;|18: cnt:integer;|5:begin|35: txt := ReadString(_Data, Data);|34: st := ReadString(_Data, Str);|37: cnt := ReadInteger(_Data, Count);|24: Replace(txt, ,');|3:TRY|20: l := Length(txt);|25: if l <= cnt then exit;|16: i := cnt + 1;|24: while i <= l do begin|25: Insert(st, txt, i);|13: Inc(l);|22: Inc(i, cnt + 1);|7: end;|7:FINALLY|42: _hi_CreateEvent(_Data, @onResult, txt);|4:END;|4:end;|4:end.|
link(onResult,3589592:doMessage,[])
link(Data,7331343:Value,[(426,233)(384,233)])
link(Count,3096900:Value,[])
link(Str,13981389:Value,[(440,265)(510,265)])
}
Add(Memory,3096900,427,175)
{
Default=Integer(2)
}
Add(Message,3589592,504,287)
{
}
Add(Memory,13981389,504,210)
{
Default=String(dddd)
}
Add(MainForm,4064596,350,273)
{
link(onCreate,7084589:doConvert,[])
}
Add(Memory,7331343,378,147)
{
Default=String(i i i i)
}


карма: 2

0
Ответов: 288
Рейтинг: 4
#14: 2010-02-22 13:12:36 ЛС | профиль | цитата
Tad, Konst, ну если вам так интересно то скачайте архив WinRAR-Project17 в файлообменнике.
Посмотреть работу элементов можно в конттейнерах (UD Сообщение).
карма: 2

0
Ответов: 16884
Рейтинг: 1239
#15: 2010-02-22 16:14:47 ЛС | профиль | цитата
Sova-Kmv, Предположим, что сделан компонент и определить его назначение одной строчкой можешь ? (а не скачивая архив WinRAR-Project17 )
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)