Вверх ↑
Этот топик читают: Гость
Ответов: 8921
Рейтинг: 823
#16: 2024-01-22 16:55:15 ЛС | профиль | цитата
Serascer, если внутри панели всё одинаковое, различаются лишь "товары", может динамические панели применить?


Add(MainForm,2953706,98,98)
{
link(onCreate,11933764:doWork1,[(137,118)(137,104)])
}
Add(ChildPanel,11933764,161,98)
{
link(onEvent1,7037363:##add,[])
link(onEvent2,7037363:##select,[])
}
BEGIN_SDK
Add(EditMulti,10273408,21,21)
{
EventCount=2
WorkCount=1
link(doWork1,9542465:doFor,[(60,27)(60,48)])
}
Add(Panel,1445024,35,105)
{
Width=400
Align=2
}
Add(ComboBox,2383760,203,49)
{
Left=20
Top=15
Width=135
Height=21
link(onClick,10273408:onEvent2,[(277,62)(277,34)])
}
Add(StrCat,13810833,119,42)
{
Str1="Панель №"
link(onStrCat,13180811:doEvent1,[])
}
Add(Hub,13180811,168,42)
{
link(onEvent1,10273408:onEvent1,[(270,48)(270,27)])
link(onEvent2,2383760:doAdd,[])
}
Add(For,9542465,70,42)
{
End=79
link(onEvent,13810833:doStrCat,[])
}
END_SDK
Add(ChildPanelEx,7037363,224,98)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,3167596,21,21)
{
WorkCount=#5:##add|8:##select|8:##delete|
VarCount=#7:##count|7:##index|
Point(##add)
Point(##select)
Point(##delete)
Point(##count)
Point(##index)
link(##add,14796713:doText,[(116,27)(116,83)])
link(##select,16419244:doBringToFront,[(109,34)(109,146)])
}
Add(Panel,16419244,126,133)
{
Top=50
Width=375
Height=205
Align=5
Point(doBringToFront)
}
Add(Label,14796713,126,77)
{
Left=110
Top=75
Font=[MS Sans Serif,15,1,0,1]
}
END_SDK

карма: 19

0
Ответов: 133
Рейтинг: 0
#17: 2024-01-22 17:00:55 ЛС | профиль | цитата
Леонид, да вот в том то и дело, что панели только по размеру одинаковые, а внутри они все разные.
карма: 1

0
Ответов: 8921
Рейтинг: 823
#18: 2024-01-22 17:06:20 ЛС | профиль | цитата
Тогда нужно обратиться к БазеДанных, не заводить же на каждую булавку свою панель
карма: 19

0
Ответов: 133
Рейтинг: 0
#19: 2024-01-22 17:12:15 ЛС | профиль | цитата
Леонид писал(а):
Тогда нужно обратиться к БазеДанных, не заводить же на каждую булавку свою панель

Да это и не нужно ) Вот как я всё сделал
https://disk.yandex.ru/d/ccl_UjInKu-oUg

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

0
Ответов: 8921
Рейтинг: 823
#20: 2024-01-22 17:28:26 ЛС | профиль | цитата
Из облака не качается без пароля И на ЯндексДиск не перекидывается
карма: 19

0
Ответов: 133
Рейтинг: 0
#21: 2024-01-22 17:33:05 ЛС | профиль | цитата
Леонид писал(а):
Из облака не качается без пароля И на ЯндексДиск не перекидывается

Залил на яндекс. А на форуме как-то можно прикреплять файлы? Нигде не нашел
карма: 1

0
Ответов: 8921
Рейтинг: 823
#22: 2024-01-22 17:39:19 ЛС | профиль | цитата
Вверху "Пользавотели-->Файлы"
Ссылка на Яндекс
карма: 19

0
Ответов: 133
Рейтинг: 0
#23: 2024-01-22 17:42:01 ЛС | профиль | цитата
Леонид, поправил ссылку в том сообщении, но вот еще
https://disk.yandex.ru/d/ccl_UjInKu-oUg
Кстати на форуме тут пытаюсь залить файл и ругается
413 Request Entity Too Large
карма: 1

0
Ответов: 8921
Рейтинг: 823
#24: 2024-01-22 18:44:44 ЛС | профиль | цитата
Serascer, ух и ах, такой схемы я ещё не видел Хотя и сам не отличаюсь минимизацией
Если это для заказа, ещё можно принять, чтобы не забыть какую мелочь, а если для покупателя, так где его найти такого сверхграмотного, замучает вопросами "А это что?", ещё уйдёт, так и не выбрав.
Полагаю, что коллега Gunta прав насчёт пересмотра концепции Может всё перевести в текст с полями и галочками
Сжатая ZIP папка с вашим компасом 380 кБ.
карма: 19

0
Ответов: 133
Рейтинг: 0
#25: 2024-01-22 18:59:14 ЛС | профиль | цитата
Леонид, это мне для облегчения работы. Самое забавное, что в интернете просто нету программ похожей на мою ) Да и если честно, то вполне понятно всё, проверил на своих коллегах.
А на счёт концепции. Это уже наверное 5 версия ) Я много что пробовал, вот конкретно такая реализация самая удобная. Я сам делаю описание товара у нас на сайте и постоянно сталкиваюсь с трудностями, что чего-то не хватает в моей программе и постоянно приходится добавлять. Техника не стоит на месте.
Кстати на счёт 4 версии ) Только не пугайтесь )
https://forum.hiasm.com/getfile/39659

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

0
Ответов: 8921
Рейтинг: 823
#26: 2024-01-22 20:47:59 ЛС | профиль | цитата
Serascer писал(а):
Только не пугайтесь )
"Да уж!"
карма: 19

0
Ответов: 2236
Рейтинг: 676
#27: 2024-01-22 21:31:23 ЛС | профиль | цитата
Леонид писал(а):
Только не пугайтесь )
https://forum.hiasm.com/getfile/39659

IndexToChanel Count=89
Serascer, нужно точно пересмотреть интерфейс. Понимаю что делается для себя и главное чтобы работало, но такой интерфейс перегружен и сложен в дальнейшем изменении или доработки.
Обратите внимание как построены интерфейсы настроек во многих программах. Разбитие по разделам облегчает работу. Вот как вариант такого интерфейса:

Add(MainForm,2953706,168,224)
{
Width=729
Height=455
Position=1
link(onCreate,15883953:doDeferredEvent,[])
}
Add(ListBox,950783,287,196)
{
Left=15
Top=20
Width=170
Height=385
Strings=#17:Материнская плата|6:Память|12:Блок питания|7:Монитор|
Point(doSelect)
Point(onSelect)
link(onClick,7735874:doWork1,[(327,209)])
}
Add(ChildScrollBox,14298587,336,245)
{
}
BEGIN_SDK
Add(EditMulti,2731496,21,21)
{
WorkCount=1
Width=748
Height=452
link(doWork1,10423232:doEvent1,[(95,27)(95,209)])
}
Add(ScrollBox,12759885,434,210)
{
Left=195
Top=25
Width=510
Height=380
Point(doVisible)
}
Add(ChildPanelEx,4312227,462,266)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,12304519,21,21)
{
WorkCount=#7:##clear|5:##add|
Width=699
Height=375
Point(##clear)
Point(##add)
link(##add,7441863:doSeparateMT,[(115,34)(115,111)])
}
Add(Panel,660310,280,189)
{
Left=35
Top=105
Width=472
Height=25
Align=2
BevelInner=0
}
Add(Label,16253819,490,56)
{
Left=2
Top=2
Height=21
Align=1
}
Add(Edit,13655891,490,105)
{
Left=52
Top=2
Width=418
Height=21
Align=5
Text=""
}
Add(MT_MultiData,7441863,210,105)
{
link(onData1,16253819:doText,[(366,111)(366,62)])
link(onData2,13655891:doText2,[])
}
END_SDK
Add(StrList,1050296,189,91)
{
Strings=#18:0;Модель;Cуперская|13:0;Класс;Огого|16:1;С подсветкой;1|21:1;Выносные салфетки;0|20:1;Встроенный гриль;1|34:2;Дополнительно;Кино|Вино|Домино;2|
}
Add(GetIndexData,11074155,203,231)
{
Count=4
link(onIndex,9513665:doEnum,[(252,237)(252,271)(191,271)(191,286)])
link(Data1,1050296:Array,[])
link(Data2,4969286:Array,[(216,171)(251,171)])
link(Data3,16471120:Array,[(223,183)(293,183)])
link(Data4,13205958:Array,[(230,193)(335,193)])
}
Add(ArrayEnum,9513665,203,280)
{
link(onItem,11728108:doMT,[])
link(onEndEnum,8936176:doWork2,[(260,293)(260,237)])
link(Array,11074155:Var,[])
}
Add(MT_String,11728108,280,273)
{
link(onResult,1510613:doEvent,[])
}
Add(MT_IndexToChanel,1510613,322,273)
{
Count=3
link(onEvent1,4312227:##add,[])
link(onEvent2,14359284:##add,[(408,286)(408,321)])
link(onEvent3,1573817:##add,[(391,293)(391,363)])
}
Add(Hub,10423232,119,203)
{
OutCount=5
link(onEvent1,46445:In,[])
link(onEvent2,8129773:In,[])
link(onEvent3,6907:In,[])
link(onEvent4,8936176:doWork1,[])
link(onEvent5,11074155:doIndex,[])
}
Add(LineBreak,3651843,413,266)
{
Caption="cl"
link(Out,4312227:##clear,[])
Primary=[46445,-266,-63]
}
Add(ChildPanelEx,14359284,462,308)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,274132,21,21)
{
WorkCount=#7:##clear|5:##add|
Width=699
Height=375
Point(##clear)
Point(##add)
link(##add,9675051:doSeparateMT,[(115,34)(115,111)])
}
Add(Panel,8770620,280,189)
{
Left=35
Top=105
Width=472
Height=25
Align=2
BevelInner=0
}
Add(MT_MultiData,9675051,210,105)
{
link(onData1,11177366:doCaption,[])
link(onData2,11177366:doCheck,[(296,118)(296,104)])
}
Add(CheckBox,11177366,399,98)
{
Left=355
Top=145
Align=2
Point(doCaption)
}
END_SDK
Add(LineBreak,4871792,413,308)
{
Caption="cl"
link(Out,14359284:##clear,[])
Primary=[8129773,-266,-98]
}
Add(ChildPanelEx,1573817,462,350)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,15350753,21,21)
{
WorkCount=#7:##clear|5:##add|
Width=699
Height=375
Point(##clear)
Point(##add)
link(##add,663217:doSeparateMT,[(115,34)(115,104)])
}
Add(Panel,6861597,280,189)
{
Left=35
Top=105
Width=472
Height=25
Align=2
BevelInner=0
}
Add(MT_MultiData,663217,210,98)
{
Count=3
link(onData1,12097832:doText,[(300,104)(300,55)])
link(onData2,16338460:doReplace,[])
link(onData3,4547179:doSelect,[(320,118)(320,132)])
}
Add(ComboBox,4547179,399,84)
{
Left=290
Top=125
Align=5
Point(doSelect)
}
Add(Replace,16338460,350,105)
{
SubStr="|"
DestStr="\r\n"
link(onReplace,4547179:doText,[])
}
Add(Label,12097832,357,49)
{
Align=1
}
END_SDK
Add(LineBreak,14871305,413,350)
{
Caption="cl"
link(Out,1573817:##clear,[])
Primary=[6907,-266,-133]
}
Add(StrList,4969286,231,91)
{
Strings=#17:0;Дать имя;Гренка|46:2;Классс;DDR1|DDR2|DDR3|DDR4|DDR5|DDR6|DDR7|;5|30:2;Цвет;Сининькая|Красненькая;1|
}
Add(StrList,16471120,273,91)
{
Strings=#34:2;Мощность;500W|600W|5600W|7853W;2|21:1;Встроенный тостер;1|20:1;Лавандовый запах;0|
}
Add(StrList,13205958,315,91)
{
Strings=#16:0;Модель;Большой|22:2;Диаганаль;23|24|54;2|
}
Add(ChanelToIndex,8936176,385,224)
{
link(onIndex,12759885:doVisible,[])
}
END_SDK
Add(Hub,2620461,259,238)
{
link(onEvent1,950783:doSelect,[])
link(onEvent2,7735874:doWork2,[])
}
Add(HubEx,7735874,323,245)
{
link(onEvent,14298587:doWork1,[])
}
Add(DeferredEvent,15883953,217,238)
{
Data=Integer(0)
link(onDeferredEvent,2620461:doEvent1,[])
}
карма: 11

0
Ответов: 8921
Рейтинг: 823
#28: 2024-01-22 23:00:26 ЛС | профиль | цитата
Именно так, а списки строк хранить и редактировать в текстовых файлах ххх*ini.
карма: 19

0
Ответов: 133
Рейтинг: 0
#29: 2024-01-23 06:22:55 ЛС | профиль | цитата
sla8a, Спасибо конечно, но такое зверское колдунство это слишком для меня )) Я на самом деле не программист, а кладовщик, поэтому я могу понять для чего вы использовали какой-то элемент, но не как он работает, поэтому в будущем сложно будет что-то менять.
Кстати я сделал 5 версию, о которой в этой теме разговор как раз для удобства редактирования. Теперь я могу просто добавить еще одну панельку товара в нужную группу и всё. В плане архитектуры проекта минимальные телодвижения буду.
Задумка у вас весьма интересная, но кстати как группы то сделать в списке? Нужно использовать TreeView получается.

Леонид, я думал уже об этом, но в будущем моей программой будут пользоваться другие сотрудники и чем меньше файлов, тем лучше ) Я список процессоров то скрипя сердцем ввёл.

P.S. Вообще интерфейс создавался в кооперации с менеджерами, так что для человека понимающего в компьютерной технике, всё довольно понятно )
карма: 1

0
Ответов: 2236
Рейтинг: 676
#30: 2024-01-23 12:14:47 ЛС | профиль | цитата
Serascer писал(а):
как группы то сделать в списке? Нужно использовать TreeView получается.
Да TreeView для этого лучше всего подойдёт.
А так в схеме нет ничего сложного. И проще будет один раз разабратся и дальше будет проще. По многим компонентам есть примеры в справке, да и на форуме можно спросить.
карма: 11

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