Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#31: 2012-03-29 21:00:32 ЛС | профиль | цитата
RinniX писал(а):
мне кажется будет проще
Что я и сделал в http://forum.d2h.ru//getfile/27429
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26161
Рейтинг: 2127
#32: 2012-03-29 23:46:58 ЛС | профиль | цитата
Добавил в MultiSetParam поддержку пустого символа разделителя

code_27433.txt
карма: 22

0
файлы: 1code_27433.txt [2.8KB] [487]
Ответов: 8927
Рейтинг: 823
#33: 2012-03-30 00:03:15 ЛС | профиль | цитата
Kazbek17, Tad, nesco, хороший компонент получился! Как-то по нужде добавлял в IndexToChanel выдачу "0" в невыбранные каналы, а тут можно и так, и эдак, и через наискосяк
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#34: 2012-03-30 09:06:33 ЛС | профиль | цитата
Леонид,а я там каким боком ?
RinniX писал(а):
Это мне Vovan подсказал!
Для истории - первым связку из Math и IntToBits выложил Galkov в (если не ошибаюсь) 2005 году.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1061
Рейтинг: 22
#35: 2012-03-30 11:01:35 ЛС | профиль | цитата
Kazbek17 писал(а):
А можно справочку с IC или ссылку буду благодарен.
RinniX писал(а):
lnLineCode
Kazbek17 писал(а):
Это я уже читал,я думал может что новое есть.

"http://hiasm.com/wiki.html" далее "Тут пишем, что хотим" далее "InLine"
------------ Дoбавленo в 11.01:
188.16.195.193 писал(а):
RinniX писал(а)мне кажется будет проще!
nesco писал(а)у тебя чисто плавающая единица, а ведь иногда надо управлять несколькими включеними

тогда уж так
code_27431.txt

или так

Add(TabControl,14788027,77,105)
{
Width=488
Height=21
Align=2
Tabs=#1:0|1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|
Bitmaps=[]
HotTrack=0
Point(CurTabIndx)
Point(CurTabCaption)
Point(PageTab)
link(onChange,12616179:doGetIndex,[])
}
Add(MultiElementEx,12616179,126,105)
{
@Hint=#6:Логика|
link(onBit1,9841644:doVisible,[])
link(onBit2,1659481:doVisible,[])
link(onBit3,7238493:doVisible,[])
link(onBit4,3465787:doVisible,[])
link(onBit5,634997:doVisible,[])
link(onBit6,6983627:doVisible,[])
link(onBit7,10733219:doVisible,[])
link(onBit8,9010822:doVisible,[])
link(onBit9,5330074:doVisible,[])
link(onBit10,10476162:doVisible,[])
}
BEGIN_SDK
Add(EditMultiEx,704424,91,21)
{
WorkCount=#10:doGetIndex|
EventCount=#6:onBit1|6:onBit2|6:onBit3|6:onBit4|6:onBit5|6:onBit6|6:onBit7|6:onBit8|6:onBit9|7:onBit10|
Width=167
Height=186
VOffset=56
link(doGetIndex,652551:doWork,[])
}
Add(IntToBits,2080325,168,77)
{
Count=10
Data_0=Integer(0)
Data_1=Integer(1)
link(onBit1,704424:onBit1,[])
link(onBit2,704424:onBit2,[])
link(onBit3,704424:onBit3,[])
link(onBit4,704424:onBit4,[])
link(onBit5,704424:onBit5,[])
link(onBit6,704424:onBit6,[])
link(onBit7,704424:onBit7,[])
link(onBit8,704424:onBit8,[])
link(onBit9,704424:onBit9,[])
link(onBit10,704424:onBit10,[])
}
Add(InlineCode,652551,112,77)
{
WorkPoints=#6:doWork|
EventPoints=#7:onEvent|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|48:uses kol,Share,Debug; |0:|4:type|28: THiAsmClass = class(TDebug)|10: private|9: public|50: data: THI_Event; |53: onEvent: THI_Event; |49: Procedure doWork(var _Data:TData; Index:Word);|5: end;|0:|47:implementation |0:|30:Procedure THiAsmClass.doWork; |32:var op1,op2,result: integer; |30:begin |9: op1:= 1;|53: op2:= Readinteger(_Data,data); |36: result:= op1 shl op2; |30: _hi_OnEvent(onEvent,result); |30:end; |28:end. |
link(onEvent,2080325:doBits,[])
}
END_SDK
Add(Label,10476162,553,161)
{
Left=215
Top=165
Visible=1
Caption="9"
Point(doVisible)
}
Add(Label,5330074,511,154)
{
Left=215
Top=165
Visible=1
Caption="8"
Point(doVisible)
}
Add(Label,9010822,469,147)
{
Left=215
Top=165
Visible=1
Caption="7"
Point(doVisible)
}
Add(Label,10733219,427,140)
{
Left=215
Top=165
Visible=1
Caption="6"
Point(doVisible)
}
Add(Label,6983627,385,133)
{
Left=215
Top=165
Visible=1
Caption="5"
Point(doVisible)
}
Add(Label,634997,343,126)
{
Left=215
Top=165
Visible=1
Caption="4"
Point(doVisible)
}
Add(Label,3465787,301,119)
{
Left=215
Top=165
Visible=1
Caption="3"
Point(doVisible)
}
Add(Label,7238493,259,112)
{
Left=215
Top=165
Visible=1
Caption="2"
Point(doVisible)
}
Add(Label,1659481,217,105)
{
Left=215
Top=165
Visible=1
Caption="1"
Point(doVisible)
}
Add(Label,9841644,175,98)
{
Left=210
Top=165
Visible=1
Caption="0"
Point(doVisible)
}
если уж не нравится плавающая точка!
карма: 0

0
Разработчик
Ответов: 26161
Рейтинг: 2127
#36: 2012-03-30 12:26:04 ЛС | профиль | цитата
После обновления с SVN компонента MultiSetParam, он стал полностью заменять вот такое схемное решение на StrList-e



Add(StrList,13210892,189,154)
{
Strings=#2:aa|2:bb|2:cc|2:dd|2:ee|
Point(doGetString)
Point(onGetString)
link(onGetString,5455770:doWork,[])
}
Add(Check,7268896,91,196)
{
Caption="doGetString"
link(onEvent,13210892:doGetString,[])
}
Add(Check,5455770,252,161)
{
Caption="onGetString"
}


на MultiSetParam это выглядит так



Add(MultiSetParam,9688059,189,252)
{
Parameters=#2:aa|2:bb|2:cc|2:dd|2:ee|
Count=1
OutType=1
link(onSet1,15143704:doWork,[])
}
Add(Check,15143704,252,252)
{
Caption="onGetString"
}
Add(Check,8643566,91,252)
{
Caption="doGetString"
link(onEvent,9688059:doSet,[])
}

карма: 22

1
Голосовали:foksov
Ответов: 1376
Рейтинг: 197
#37: 2012-03-30 12:54:40 ЛС | профиль | цитата
nesco, а если несуществующий индекс на вход подастся, то события ни какого не произойдёт?
карма: 1

0
Разработчик
Ответов: 26161
Рейтинг: 2127
#38: 2012-03-30 13:15:36 ЛС | профиль | цитата
foksov писал(а):
а если несуществующий индекс на вход подастся, то события ни какого не произойдёт?

Нет, ничего не будет, ни один выход не активизируется. У нас нигде не выдается событие ошибочного индекса. К тому же, на мультивыходах этого реализовать нельзя
------------ Дoбавленo в 13.15:
Еще немного подправил и убрал выход по пустой строке параметров. Теперь появилась возможность выдавать пустую строку без наличия разделителя при одном выходе
карма: 22

0
Ответов: 1536
Рейтинг: 176
#39: 2012-03-30 13:28:09 ЛС | профиль | цитата
nesco,
[flood]
nesco писал(а):
После обновления с SVN компонента MultiSetParam, он стал полностью заменять вот такое схемное решение на StrList-e

Звучит, примерно так: "И увидел Бог, что это хорошо." [/flood]
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 16884
Рейтинг: 1239
#40: 2012-03-30 13:28:27 ЛС | профиль | цитата
Так как компонент получился очень заумный, то исключена и возможность автоформирования управляющей строки.
А применение делимитера вообще не оправдано. ИМХО.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26161
Рейтинг: 2127
#41: 2012-03-30 13:38:38 ЛС | профиль | цитата
Tad писал(а):
исключена и возможность автоформирования управляющей строки

Не понял, подробнее распиши, почему невозможно
Tad писал(а):
А применение делимитера вообще не оправдано

И как подать на разные выходы разные строковые параметры без разделителя

Еще раз -- это многофункциональный компонент, он может подавать на выход, как целочисленные значения, так и строковые параметры

И получается у нас "как всегда" -- всем понравилось, кроме Tad-а
карма: 22

0
Ответов: 1376
Рейтинг: 197
#42: 2012-03-30 13:51:47 ЛС | профиль | цитата
[flood]
nesco писал(а):
И получается у нас "как всегда" -- всем понравилось, кроме Tad-а
Чувствуется стабильность на форуме [/flood]
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#43: 2012-03-30 14:36:46 ЛС | профиль | цитата
1.
nesco писал(а):
Не понл, подробнее распиши, почему невозможно
А самому подумать влом ?
При заполненом листе параметров, можно на вход подать управляющую строку, сформированную в зависимости от ответов, например, в Edit-ах? Нет. Только ту, что определена во встренном листе, да и то нужно программисту помнить её индекс в этом самом списке.
StrList с параметрами должен быть внешним или должна быть точка у компонента, в обход встроенного List.
nesco писал(а):
И получается у нас "как всегда" -- всем понравилось, кроме Tad-а
И получается у нас - хотели, как лучше, а получилось как всегда (с) и "всем понравилось, кроме Tad-а" тут ни при чем.
2.
nesco писал(а):
он может подавать на выход, как целочисленные значения, так и строковые параметры

Целочисленные значения
В предложенном варианте управление визуальными компонентами возможно только по doVisible и doEnabled (1).
Наиболее часто используемое в многостраничных вариантах doBringToFront - тю-тю.
3. Строковые параметры
Это что ? Менять надписи на Label-ях ? Может и нужное дело. Не вникал.
------------ Дoбавленo в 14.36:
foksov, попробуй применить в деле MultiSetParam, а потом можно и о стабильности поговорить.
Для очередного плеера компонент может и хорош.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26161
Рейтинг: 2127
#44: 2012-03-30 15:21:58 ЛС | профиль | цитата
Tad писал(а):
Только ту, что определена во встренном листе, да и то нужно программисту помнить её индекс в этом самом списке
...
StrList с параметрами должен быть внешним или должна быть точка у компонента, в обход встроенного List

Че-че! А верхняя точка Parametrs или ARG(Parametrs, Index) ни о чем не говорит

Tad писал(а):
попробуй применить в деле MultiSetParam

Уже применил у себя, заместо того блока, что выкладывал. Пекрасно справился со своей целью
------------ Дoбавленo в 15.15:
Tad, а что IndexToChanel не подходит для управления doBringToFront



procedure THIIndexToChanel._work_doEvent;
var ind:integer;
begin
ind := ReadInteger(_Data,_data_Index);
_Data := ReadData(_Data,_data_Data,@_prop_Data);
if(ind >= 0)and(ind < FCount) then
_hi_CreateEvent_(_Data,@onEvent[ind]);
end;

Это разве не похоже на твой код



procedure THISwitchPages._work_doSelect1; // для doBringToFront
var i:integer;
begin
i:= ReadInteger(_data,_data_Data,0);
if(i >= 0)and(i< FOutCount) then
_hi_onEvent(onSelect[i]);
end;
------------ Дoбавленo в 15.21:
А вот прямое управление выходами строкой параметров, это интересно и можно добавить
карма: 22

0
Ответов: 8927
Рейтинг: 823
#45: 2012-03-30 15:27:42 ЛС | профиль | цитата
Tad писал(а):
Леонид,а я там каким боком ?
Без критики от Tad-а новые компоненты получаются "как всегда"
карма: 19

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