Вверх ↑
Этот топик читают: Гость
Ответов: 133
Рейтинг: 0
#1: 2024-01-22 10:20:15 ЛС | профиль | цитата
Всем добрый день. Пытаюсь переделать свою программу с кучей ChildPanel так, чтобы не приходилось постоянно переделывать связи в IndexToChanel при добавлении новой панели.
Пока решил остановиться на таком

Add(MainForm,2953706,21,105)
{
Width=886
Height=555
}
Add(ComboBox,8141628,84,105)
{
Left=10
Top=10
Width=190
Height=21
Strings=#1:f|1:d|1:s|
Text=""
Point(Index)
link(onClick,5620890:doEvent,[])
}
Add(IndexToChanel,5620890,147,112)
{
Point(Index)
link(onEvent1,10869289:doVisible,[])
link(Index,8141628:Index,[(153,100)(129,100)(129,149)(104,149)])
}
Add(ComboBox,10869289,217,84)
{
Left=210
Top=10
Width=190
Height=21
Visible=1
Strings=#5:11111|5:22222|5:33333|
Text=""
Point(Index)
Point(doVisible)
link(onClick,15792902:doEvent,[])
}
Add(IndexToChanel,15792902,273,91)
{
Point(Index)
link(onEvent1,3270800:doWork1,[])
link(Index,10869289:Index,[(279,79)(258,79)(258,134)(237,134)])
}
Add(ChildPanel,3270800,322,91)
{
}
BEGIN_SDK
Add(EditMulti,817340,21,21)
{
WorkCount=1
link(doWork1,48191:doVisible,[(28,27)(28,118)])
}
Add(Panel,48191,35,105)
{
Top=40
Width=870
Height=475
Visible=1
Point(doVisible)
}
END_SDK
Подскажите пожалуйста, почему оно не работает то? С панелями всё работает, а с ComboBox нет?
карма: 1

0
Ответов: 875
Рейтинг: 322
#2: 2024-01-22 10:47:25 ЛС | профиль | цитата
пощелкай и увидишь.

Add(MainForm,8191146,343,182)
{
Width=518
Height=224
}
Add(ComboBox,8141628,462,168)
{
Left=10
Top=10
Width=190
Height=21
Strings=#1:f|1:d|1:s|
Text=""
Point(Index)
link(onClick,5620890:doEvent,[])
}
Add(IndexToChanel,5620890,525,175)
{
Point(Index)
link(onEvent1,263428:doNext,[])
link(Index,8141628:Index,[(531,163)(507,163)(507,212)(482,212)])
}
Add(Label,9489094,665,175)
{
Left=315
Top=70
}
Add(CounterEx,263428,588,175)
{
link(onNext,9489094:doText,[])
}

карма: 1

0
Ответов: 133
Рейтинг: 0
#3: 2024-01-22 10:50:52 ЛС | профиль | цитата
kamakama, мне нужно, чтобы моя схема заработала )
карма: 1

0
Ответов: 787
Рейтинг: 168
#4: 2024-01-22 11:24:40 ЛС | профиль | цитата
Serascer писал(а):
мне нужно, чтобы моя схема заработала

Не очень понятно что тебе нужно. Это?
Add(MainForm,8526863,210,161)
{
Width=886
Height=555
}
Add(ComboBox,8141628,273,161)
{
Left=10
Top=10
Width=190
Height=21
Strings=#1:f|1:d|1:s|
Text=""
Point(Index)
link(onClick,5620890:doEvent,[])
}
Add(IndexToChanel,5620890,357,168)
{
Point(Index)
link(onEvent1,10619456:doData,[])
link(Index,8141628:Index,[(363,159)(349,159)(349,201)(293,201)])
}
Add(ComboBox,10869289,462,140)
{
Left=210
Top=10
Width=190
Height=21
Visible=1
Strings=#5:11111|5:22222|5:33333|
Text=""
Point(Index)
Point(doVisible)
link(onClick,15792902:doEvent,[])
}
Add(IndexToChanel,15792902,518,147)
{
Point(Index)
link(onEvent1,547148:doData,[])
link(Index,10869289:Index,[(524,135)(503,135)(503,190)(482,190)])
}
Add(ChildPanel,3270800,616,147)
{
}
BEGIN_SDK
Add(EditMulti,817340,21,21)
{
WorkCount=1
link(doWork1,48191:doVisible,[(28,27)(28,118)])
}
Add(Panel,48191,35,105)
{
Top=40
Width=870
Height=475
Visible=1
Point(doVisible)
}
END_SDK
Add(DoData,10619456,406,168)
{
Data=Integer(1)
link(onEventData,10869289:doVisible,[])
}
Add(DoData,547148,567,147)
{
Data=Integer(1)
link(onEventData,3270800:doWork1,[])
}


Редактировалось 1 раз(а), последний 2024-01-22 11:25:43
карма: 15

0
Ответов: 133
Рейтинг: 0
#5: 2024-01-22 11:35:24 ЛС | профиль | цитата
Gunta, именно! Спасибо большое ) А теперь вопрос. Почему это реализовано именно так? Почему при использовании TreeViewEx, IndexToChanel и ChildPanel не нужен элемент DoData, а при использовании ComboBox нужен, хотя так же с индексами и работает? Я иногда вообще процесса логики не понимают.

Редактировалось 1 раз(а), последний 2024-01-22 11:36:21
карма: 1

0
Ответов: 787
Рейтинг: 168
#6: 2024-01-22 12:09:05 ЛС | профиль | цитата
Serascer писал(а):
Почему это реализовано именно так? Почему при использовании TreeViewEx, IndexToChanel и ChildPanel не нужен элемент DoData, а при использовании ComboBox нужен, хотя так же с индексами и работает?

Потому что
"1" = "true" а "0" = "false"
Именно это и хотел показать kamakama. В твоей схеме на точку "doVisible" всегда приходил "0".

--- Добавлено в 2024-01-22 12:20:54

Можно использовать "Memory"

Add(MainForm,8526863,217,161)
{
Width=886
Height=555
}
Add(ComboBox,8141628,280,161)
{
Left=10
Top=10
Width=190
Height=21
Strings=#1:f|1:d|1:s|
Text=""
Point(Index)
link(onClick,5620890:doEvent,[])
}
Add(IndexToChanel,5620890,343,168)
{
Count=3
Point(Data)
link(onEvent1,10869289:doVisible,[])
link(onEvent2,438878:doVisible,[(445,181)(445,223)])
link(Data,10884225:Value,[])
link(onEvent3,16674706:doVisible,[(438,188)(438,279)])
}
Add(ComboBox,10869289,455,140)
{
Left=210
Top=10
Width=190
Height=21
Visible=1
Strings=#5:11111|5:22222|5:33333|
Text=""
Point(Index)
Point(doVisible)
link(onClick,15792902:doEvent,[])
}
Add(IndexToChanel,15792902,511,147)
{
link(onEvent1,547148:doData,[])
}
Add(ChildPanel,3270800,609,147)
{
}
BEGIN_SDK
Add(EditMulti,817340,21,21)
{
WorkCount=1
link(doWork1,48191:doVisible,[(28,27)(28,118)])
}
Add(Panel,48191,35,105)
{
Top=40
Width=870
Height=475
Visible=1
Point(doVisible)
}
END_SDK
Add(DoData,547148,560,147)
{
Data=Integer(1)
link(onEventData,3270800:doWork1,[])
}
Add(Memory,10884225,343,119)
{
Default=Integer(1)
}
Add(ComboBox,438878,455,189)
{
Left=415
Top=10
Width=190
Height=21
Visible=1
Strings=#5:11111|5:22222|5:33333|
Text=""
Point(Index)
Point(doVisible)
}
Add(ComboBox,16674706,455,245)
{
Left=620
Top=10
Width=190
Height=21
Visible=1
Strings=#5:11111|5:22222|5:33333|
Text=""
Point(Index)
Point(doVisible)
}


Редактировалось 1 раз(а), последний 2024-01-22 12:20:54
карма: 15

0
Ответов: 133
Рейтинг: 0
#7: 2024-01-22 12:54:28 ЛС | профиль | цитата
Gunta, аааа, теперь принцип понятен. Спасибо. А просто выставить в Data = 1 (integer) у элемента IndexToChanel будет тоже самое или не совсем?
P.S. Счётчик у kamakama лишний был, поэтому и не понятно было, что он сказать хотел то

--- Добавлено в 2024-01-22 13:02:26

И еще, почему тогда DoVisible у ChildPanel срабатывает? В моей текущей версии схемы при выборе элемента в TreeViewEX через IndexToChanel делается видимой и переводится на передний план нужная панель. И там нет ничего между IndexToChanel и ChildPanel.

Редактировалось 2 раз(а), последний 2024-01-22 13:02:26
карма: 1

0
Ответов: 787
Рейтинг: 168
#8: 2024-01-22 13:14:04 ЛС | профиль | цитата
Serascer писал(а):
Data = 1 (integer) у элемента IndexToChanel будет тоже самое или не совсем?

Да, тоже самое. я специально memory вставил, чтобы понятней было.
Serascer писал(а):
И еще, почему тогда DoVisible у ChildPanel срабатывает? В моей текущей версии схемы при выборе элемента в TreeViewEX через IndexToChanel делается видимой и переводится на передний план нужная панель. И там нет ничего между IndexToChanel и ChildPanel.

Потому что на выходе "null" или другое значение, оно просто переключает точку "doVisible" c "false" в "true" .

Редактировалось 1 раз(а), последний 2024-01-22 13:14:52
карма: 15

0
Ответов: 133
Рейтинг: 0
#9: 2024-01-22 13:22:00 ЛС | профиль | цитата
Gunta писал(а):
Потому что на выходе "null" или другое значение, оно просто переключает точку "doVisible" c "false" в "true" .

а что, с ComboBox иначе дело обстоит? Этому элементу надо обязательно 1 или 0 посылать?
карма: 1

0
Ответов: 8923
Рейтинг: 823
#10: 2024-01-22 13:42:10 ЛС | профиль | цитата
Serascer, специально для целей переключения подработал компонент IndexToChanel в hiIndexToChanelAll, который выдаёт "1" на выбранный канал и "0" на остальные выходы. Выкладывал здесь, не нашёл Ещё раз: https://forum.hiasm.com/getfile/39658
карма: 19

0
Ответов: 133
Рейтинг: 0
#11: 2024-01-22 13:46:10 ЛС | профиль | цитата
Леонид, спасибо большое! Весьма полезная вещь )
P.S. добавил элемент в программу, компиляция не происходит ) Вообще ничего не происходит.

Редактировалось 1 раз(а), последний 2024-01-22 14:11:33
карма: 1

0
Ответов: 787
Рейтинг: 168
#12: 2024-01-22 14:00:54 ЛС | профиль | цитата
Леонид писал(а):
IndexToChanel в hiIndexToChanelAll, который выдаёт "1" на выбранный канал и "0" на остальные выходы.

А почему не использовать MultiSetParam? Он как раз для этого предназначен.
Add(MainForm,8526863,217,161)
{
Width=886
Height=555
}
Add(ComboBox,8141628,280,161)
{
Left=10
Top=10
Width=190
Height=21
Strings=#1:f|1:d|1:s|
Text=""
Point(Index)
link(onClick,1269547:doSet,[])
}
Add(ComboBox,10869289,455,140)
{
Left=210
Top=10
Width=190
Height=21
Visible=1
Strings=#5:11111|5:22222|5:33333|
Text=""
Point(Index)
Point(doVisible)
link(onClick,15792902:doEvent,[])
}
Add(IndexToChanel,15792902,511,147)
{
Data=Integer(1)
link(onEvent1,3270800:doWork1,[])
}
Add(ChildPanel,3270800,609,147)
{
}
BEGIN_SDK
Add(EditMulti,817340,21,21)
{
WorkCount=1
link(doWork1,48191:doVisible,[(28,27)(28,118)])
}
Add(Panel,48191,35,105)
{
Top=40
Width=870
Height=475
Visible=1
Point(doVisible)
}
END_SDK
Add(ComboBox,438878,455,189)
{
Left=415
Top=10
Width=190
Height=21
Visible=1
Strings=#5:11111|5:22222|5:33333|
Text=""
Point(Index)
Point(doVisible)
}
Add(ComboBox,16674706,455,245)
{
Left=620
Top=10
Width=190
Height=21
Visible=1
Strings=#5:11111|5:22222|5:33333|
Text=""
Point(Index)
Point(doVisible)
}
Add(MultiSetParam,1269547,343,168)
{
Parameters=#5:1;0;0|5:0;1;0|5:0;0;1|
link(onSet1,10869289:doVisible,[])
link(onSet2,438878:doVisible,[(445,181)(445,223)])
link(onSet3,16674706:doVisible,[(438,188)(438,279)])
}


Редактировалось 1 раз(а), последний 2024-01-22 14:01:11
карма: 15

0
Ответов: 133
Рейтинг: 0
#13: 2024-01-22 14:10:48 ЛС | профиль | цитата
Gunta, для большого количества не подойдет. У меня штук 80 панелей ) Я ж замучаюсь там всё прописывать.
карма: 1

0
Ответов: 787
Рейтинг: 168
#14: 2024-01-22 14:49:24 ЛС | профиль | цитата
Serascer писал(а):
У меня штук 80 панелей ) Я ж замучаюсь там всё прописывать.

Если это правда, то советую поработать над логикой твоей программы.
Уверен, что такое количество панелей просто не нужно. Если панели не видно, то это не значит что их нет в памяти. В крайнем случае использовать ChildPanelPoly.
карма: 15

0
Ответов: 133
Рейтинг: 0
#15: 2024-01-22 15:23:02 ЛС | профиль | цитата
Gunta, к сожалению по-другому никак, много товаров приходится обрабатывать и так стараюсь компоновать на одной панели разные группы товаров
карма: 1

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