Вверх ↑
Ответов: 1528
Рейтинг: 57
#1: 2011-08-12 20:26:34 ЛС | профиль | цитата
как сделано сейчас: числа добавляются простой склейкой через StrCatDelim получается строка(числа с пробелами),
далее поиск, берётся полученная выше строка, оттуда первые шесть чисел (отсчитываем по пробелам, т.к. числа могут быть и двузначными), ищутся совпадение по всей строке (которая будет просто огромная).

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

а в StrCatDelim все числа уже в строке и переделывать ничего не нужно, но проблемно делать отмену неверно введённого числа.
------------ Дoбавленo в 20.26:
Add(Edit,904778,546,329){
Left=10
Top=17
Width=60
Height=35
Font=[Arial,18,1,0,1]
Text=""
Alignment=2
ClearAfterEnter=1
}
Add(BitBtn,2896208,462,371)
{
Left=70
Top=16
Width=60
Height=38
Caption="OK"
link(onClick,12886191:doEvent1,[])
}
Add(HilightMemo,6028793,896,357)
{
Left=130
Top=16
Width=231
Height=57
Color=16314690
Font=[Arial Black,18,1,0,204]
HilightStrings=#5:0=Red|7:1=Black|5:2=Red|7:3=Black|5:4=Red|7:5=Black|5:6=Red|7:7=Black|5:8=Red|7:9=Black|6:10=Red|8:11=Black|6:12=Red|8:13=Black|6:14=Red|8:15=Black|6:16=Red|8:17=Black|6:18=Red|8:19=Black|6:20=Red|8:21=Black|6:22=Red|8:23=Black|6:24=Red|8:25=Black|6:26=Red|8:27=Black|6:28=Red|8:29=Black|6:30=Red|8:31=Black|6:32=Red|8:33=Black|6:34=Red|8:35=Black|6:36=Red|0:|
HilightFont=[Courier New,8,0,0,1]
ReadOnly=0
SmartTabs=1
Indent=1
RightMargin=1
ColorRightMargin=536870911
AutoFocus=1
}
Add(DoData,6112955,546,371)
{
link(onEventData,10896206:doConvert,[])
link(Data,904778:Text,[])
}
Add(StrCatDelim,12412645,798,378)
{
@Hint=#10:Накопитель|
Delimiter=" "
link(onStrCatDlm,6028793:doText,[])
link(Str2,12412645:Result,[(811,366)(807,366)(807,422)(804,422)])
AddHint(60,63,76,13,@Hint)
}
Add(Hub,12886191,518,371)
{
link(onEvent1,6112955:doData,[])
link(onEvent2,904778:doText2,[(540,384)(540,342)])
}
Add(Hub,13112301,714,371)
{
link(onEvent1,6028793:doClear,[(748,377)(748,370)])
link(onEvent2,12412645:doStrCatDlm,[])
}
Add(If_else,10500283,665,371)
{
Type=2
Op2=Integer(37)
link(onFalse,13112301:doEvent1,[(705,384)(705,377)])
}
Add(Convertor,10896206,602,371)
{
Mode=1
link(onResult,10500283:doCompare,[])
}
карма: 0

0