Вверх ↑
Этот топик читают: Гость
Ответов: 192
Рейтинг: 2
#1: 2018-02-05 11:44:23 ЛС | профиль | цитата
ошибка.JPG
программа компилируется без ошибки но вот когда ее закрываешь выскакивает это окно.

--- Добавлено в 2018-02-05 11:47:03

если удаляешь этот элемент все запускается работает и закрывается без ошибок, причем не имеет значения ты его копируешь или добавляешь новым.

Редактировалось 1 раз(а), последний 2018-02-05 11:47:03
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#2: 2018-02-05 12:00:36 ЛС | профиль | цитата
zhorik5 писал(а):
программа компилируется ...
Программа где ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#3: 2018-02-05 12:11:46 ЛС | профиль | цитата
zhorik5 писал(а):
программа компилируется без ошибки но вот когда ее закрываешь выскакивает это окно.

Для такого количества дочерних форм лучше всего использовать полиморфные формы ChildFormPoly
карма: 22

0
Ответов: 192
Рейтинг: 2
#4: 2018-02-05 12:58:27 ЛС | профиль | цитата
Tad писал(а):
Программа где ?

она у тебя есть. просто я ее расширяю и понадобилось расширить справочники. добавив несколько форм

--- Добавлено в 2018-02-05 13:01:20

nesco писал(а):
Для такого количества дочерних форм лучше всего использовать полиморфные формы ChildFormPoly

к своему сожалению я не знал и не понимал как это работает. буду переделывать по мере необходимости. спасибо.

--- Добавлено в 2018-02-05 13:26:44

вот добавил полиморфную форму и наполнил объектами
ошибка 2.JPG
все повторилось

--- Добавлено в 2018-02-05 13:51:29

ни фига не догоняю как это заставить работать
Add(MainForm,2953706,21,105)
{
}
Add(Menu,10429459,119,119)
{
Menu=#4:меню|1:(|4:base|1:1|1:2|1:)|
Point(onSelectNum)
link(onSelectNum,12173161:doEvent,[])
}
Add(ChildFormPoly,16443884,280,126)
{
Childrens=#1:1|1:2|
Selected="base"
WorkScheme=1
}
BEGIN_SDK
Add(EditPolyMulti,2288267,21,21)
{
WorkCount=#11:doShowModal|12:doShowModal1|12:doShowModal2|
Width=433
Height=326
link(doShowModal,3763227:doShowModal,[(28,27)(28,139)])
}
Add(MainForm,3763227,35,105)
{
Left=35
Top=105
Caption="1"
Point(doShowModal)
}
Add(Edit,5324052,210,112)
{
Left=210
Top=110
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,15565634,21,21)
{
WorkCount=#11:doShowModal|12:doShowModal1|12:doShowModal2|
Width=433
Height=326
link(doShowModal1,8761886:doShowModal,[(28,34)(28,139)])
}
Add(MainForm,8761886,35,105)
{
Left=35
Top=105
Caption="2"
Point(doShowModal)
}
Add(CheckBox,5258510,175,70)
{
Left=175
Top=70
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,949293,21,21)
{
WorkCount=#11:doShowModal|12:doShowModal1|12:doShowModal2|
Width=433
Height=326
link(doShowModal2,712013:doShowModal,[(28,41)(28,139)])
}
Add(MainForm,712013,35,105)
{
Left=35
Top=105
Caption="3"
Point(doShowModal)
}
Add(Button,8064647,147,63)
{
Left=185
Top=70
}
END_SDK
Add(Label,2470761,280,63)
{
Left=135
Top=55
Width=115
}
Add(IndexToChanel,12173161,189,126)
{
Count=4
link(onEvent1,16443884:doShowModal,[])
link(onEvent2,16443884:doShowModal1,[])
link(onEvent3,16443884:doShowModal2,[])
}



Редактировалось 3 раз(а), последний 2018-02-05 13:51:29
карма: 0

0
Ответов: 2236
Рейтинг: 676
#5: 2018-02-05 13:55:18 ЛС | профиль | цитата
zhorik5, попробуйте выделить непонятный вам компонент и нажать клавишу F1. Чтение справки дает +25 к пониманию.

Редактировалось 1 раз(а), последний 2018-02-05 13:55:33
карма: 11

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#6: 2018-02-05 14:22:45 ЛС | профиль | цитата
zhorik5 писал(а):
ни фига не догоняю как это заставить работать


Схема

Add(MainForm,2805201,168,196)
{
}
Add(Menu,10429459,238,238)
{
Menu=#4:меню|1:(|4:base|1:1|1:2|1:)|
Point(onSelectNum)
link(onSelectNum,10811022:doGetString,[])
}
Add(ChildFormPoly,16443884,371,210)
{
Childrens=#1:1|1:2|
Selected="2"
WorkScheme=1
}
BEGIN_SDK
Add(EditPolyMulti,2288267,14,14)
{
WorkCount=#5:##add|
Width=433
Height=326
Point(##add)
link(##add,3763227:doShowModal,[(67,20)(67,125)])
}
Add(MainForm,3763227,77,91)
{
Left=35
Top=105
Caption="1"
Point(doShowModal)
}
Add(Edit,5324052,203,105)
{
Left=210
Top=110
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,15565634,14,14)
{
WorkCount=#5:##add|
Width=433
Height=326
Point(##add)
link(##add,8761886:doShowModal,[(67,20)(67,104)])
}
Add(MainForm,8761886,77,70)
{
Left=35
Top=105
Caption="2"
Point(doShowModal)
}
Add(CheckBox,5258510,217,63)
{
Left=175
Top=70
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,949293,21,21)
{
WorkCount=#5:##add|
Width=433
Height=326
Point(##add)
link(##add,712013:doShowModal,[(81,27)(81,104)])
}
Add(MainForm,712013,91,70)
{
Left=35
Top=105
Caption="3"
Point(doShowModal)
}
Add(Button,8064647,147,63)
{
Left=185
Top=70
}
END_SDK
Add(Label,2470761,238,196)
{
Left=135
Top=55
Width=115
}
Add(StrList,10811022,308,203)
{
Strings=#0:|4:base|1:1|1:2|
Point(onGetString)
Point(doGetString)
link(onGetString,16443884:##add,[])
}

--- Добавлено в 2018-02-05 14:34:25

А правильнее будет вот так

Схема_2

Add(MainForm,2805201,203,259)
{
link(onCreate,7955623:doEnum,[(270,279)(270,244)])
}
Add(Menu,10429459,203,196)
{
Menu=#4:меню|1:(|4:base|1:1|1:2|1:)|
Point(onSelectNum)
link(onSelectNum,12250148:doOperation,[])
}
Add(ChildFormPoly,16443884,413,238)
{
Childrens=#1:1|1:2|
Selected="2"
WorkScheme=1
}
BEGIN_SDK
Add(EditPolyMulti,2288267,14,14)
{
WorkCount=#5:##add|8:##select|
Width=433
Height=326
Point(##add)
Point(##select)
link(##select,3763227:doShowModal,[(67,27)(67,125)])
}
Add(MainForm,3763227,77,91)
{
Left=35
Top=105
Visible=1
Caption="1"
Point(doShowModal)
}
Add(Edit,5324052,203,105)
{
Left=210
Top=110
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,15565634,14,14)
{
WorkCount=#5:##add|8:##select|
Width=433
Height=326
Point(##add)
Point(##select)
link(##select,8761886:doShowModal,[(67,27)(67,104)])
}
Add(MainForm,8761886,77,70)
{
Left=35
Top=105
Visible=1
Caption="2"
Point(doShowModal)
}
Add(CheckBox,5258510,217,63)
{
Left=175
Top=70
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,949293,21,21)
{
WorkCount=#5:##add|8:##select|
Width=433
Height=326
Point(##add)
Point(##select)
link(##select,712013:doShowModal,[(81,34)(81,104)])
}
Add(MainForm,712013,91,70)
{
Left=35
Top=105
Visible=1
Caption="3"
Point(doShowModal)
}
Add(Button,8064647,147,63)
{
Left=185
Top=70
}
END_SDK
Add(Label,2470761,203,147)
{
Left=135
Top=55
Width=115
}
Add(StrList,10811022,329,161)
{
Strings=#4:base|1:1|1:2|
Point(onGetString)
Point(doGetString)
link(onGetString,16443884:##select,[(382,174)(382,251)])
}
Add(ArrayEnum,7955623,343,238)
{
link(onItem,16443884:##add,[])
link(Array,10811022:Array,[])
}
Add(Math,12250148,259,203)
{
OpType=1
Op2=1
ResultType=0
link(onResult,10811022:doGetString,[])
}

Те активируем все формы с отключенным изображением, затем выбираем нужную. И да, надо учесть на будущее еще и тот факт, что режим модальности надо вызывать самым последним в цепи событий. Ну, это если захочется еще что-то прицепить к событию ##select внутри контейнера

Редактировалось 3 раз(а), последний 2018-02-05 14:36:44
карма: 22

0
Ответов: 192
Рейтинг: 2
#7: 2018-02-05 16:12:03 ЛС | профиль | цитата
А правильнее будет вот так да оно еще проще может.

Add(Menu,189565,287,70){
Menu=#4:меню|1:(|4:base|1:1|1:2|1:)|
Point(onSelectNum)
link(onSelectStr,7956846:##add,[])
}
Add(ChildFormPoly,7956846,434,70)
{
Childrens=#1:1|1:2|
Selected="base"
}
BEGIN_SDK
Add(EditPolyMulti,9718330,21,21)
{
WorkCount=#5:##add|0:|
Point(##add)
}
Add(MainForm,12032834,35,105)
{
Left=35
Top=105
Caption="base"
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,16656940,21,21)
{
WorkCount=#5:##add|0:|
Point(##add)
}
Add(MainForm,4936505,35,105)
{
Left=35
Top=105
}
Add(CheckBox,8851186,147,77)
{
Left=145
Top=75
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,4631149,21,21)
{
WorkCount=#5:##add|0:|
Point(##add)
}
Add(MainForm,5300278,35,105)
{
Left=35
Top=105
}
Add(Edit,3442170,147,84)
{
Left=145
Top=80
}
END_SDK


я не пойму что не так вот с этой схемой
Add(Menu,189565,141,98)
{
Menu=#4:Файл|1:(|6:Печать|9:Настройки|1:)|11:Справочники|1:(|10:Сотрудники|29:Справочники вгруппе Картриджи|1:(|30:Фирмы производителей принтеров|31:Фирмы производителей картриджей|31:Нименование и номера картриджей|12:Типы тонеров|24:Виды работ по картриджам|1:)|26:Справочники вгруппе Сервис|1:(|14:Группы техники|26:Фирмы изготовители техники|28:Виды работ и цена по сервису|14:Вознаграждение|1:)|11:Контрагенты|7:Расчеты|1:(|13:Категории цен|5:Прайс|1:)|1:)|6:Отчеты|1:(|24:Заприходованые картриджи|22:Заприходованая техника|11:Общий отчет|1:1|1:2|1:)|11:о программе|5:Выход|
Point(onSelectNum)
link(onSelectStr,9239453:##add,[])
}
Add(ChildFormPoly,9239453,246,98)
{
Childrens=#1:7|1:8|
Selected="base"
}
BEGIN_SDK
Add(EditPolyMulti,8056843,21,21)
{
WorkCount=#5:##add|
Point(##add)
}
Add(MainForm,3669715,35,105)
{
Left=35
Top=105
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,10828257,21,21)
{
WorkCount=#5:##add|
Width=951
Height=564
Point(##add)
}
Add(MainForm,8783970,168,231)
{
Left=35
Top=105
Width=437
Height=796
Visible=1
Caption="7"
Position=1
Point(doShowModal)
Point(onClose)
link(onCreate,14118872:doEvent1,[])
}
Add(Button,343726,322,175)
{
Left=10
Top=5
Width=140
Height=50
Caption="добавить"
link(onClick,12406138:doOperation,[])
}
Add(StringTableMT,707007,658,154)
{
Left=5
Top=60
Width=410
Height=690
Columns=#4:№=25|12:Название=370|
StrDelimiter="\9"
Redaction=0
TabGrid=0
Grid=0
IconsCheck=[]
MiscIcons=[]
Icons=[]
Point(doMT_Add)
Point(onLineChange)
Point(Strings)
Point(Index)
link(onLineChange,603746:doRead,[])
}
Add(Button,3029754,406,455)
{
Left=285
Top=5
Width=120
Height=50
Caption="Удалить фирму"
link(onClick,4750820:doMessage,[])
}
Add(DSC_Query,16753300,336,245)
{
SQL="SELECT * FROM proizvoditeli_printerov"
DSManager="parent.global"
link(onQuery,707007:doMT_Add,[(590,251)(590,195)])
}
Add(Hub,14118872,231,245)
{
link(onEvent1,16753300:doQuery,[])
link(onEvent2,11626114:doExec,[(249,258)(249,265)])
}
Add(DSC_Exec,11626114,252,259)
{
SQL="CREATE TABLE proizvoditeli_printerov (nomer int, naimenovanie char)"
DSManager="parent.global"
}
Add(Math,12406138,392,175)
{
Op2=1
ResultType=0
link(onResult,5637301:doEvent1,[])
link(Op1,707007:Count,[(398,163)(531,163)(531,211)(664,211)])
}
Add(FormatStr,3394691,497,91)
{
DataCount=1
Mask="INSERT INTO proizvoditeli_printerov (nomer) VALUES (%1)"
Point(FString)
link(onFString,11525825:doExec,[])
link(Str1,12406138:Result,[(503,86)(451,86)(451,219)(398,219)])
}
Add(Hub,5637301,455,175)
{
link(onEvent1,707007:doAdd,[(563,181)(563,160)])
link(onEvent2,3394691:doString,[(483,188)(483,97)])
}
Add(DSC_Exec,11525825,658,91)
{
DSManager="parent.global"
link(SQL,3394691:FString,[(664,79)(580,79)(580,135)(503,135)])
}
Add(ArrayRW,603746,756,161)
{
link(onRead,15198075:doSplit,[])
link(Array,8929716:Var3,[(762,156)(717,156)(717,211)])
}
Add(MultiStrPart,15198075,819,161)
{
Char="\9"
Count=3
link(onSplit,15143871:doString,[(863,167)(863,223)(807,223)(807,258)])
}
Add(FormatStr,15143871,819,252)
{
DataCount=3
Mask="UPDATE proizvoditeli_printerov SET naimenovanie='%2' WHERE nomer=%1"
Point(FString)
link(onFString,8164070:doExec,[])
link(Str1,15198075:Part1,[])
link(Str2,15198075:Part2,[])
link(Str3,15198075:Part3,[])
}
Add(DSC_Exec,8164070,889,252)
{
DSManager="parent.global"
link(SQL,15143871:FString,[(895,240)(860,240)(860,296)(825,296)])
}
Add(Hub,7964622,553,455)
{
link(onEvent1,5783049:doRead,[])
link(onEvent2,884112:doData,[(574,468)(574,384)])
}
Add(ArrayRW,5783049,714,455)
{
link(onRead,14461599:doSplit,[])
link(Array,8929716:Var2,[(720,345)(692,345)])
link(Index,901336:Var2,[(727,306)(685,306)])
}
Add(GetDataEx,8929716,686,206)
{
Angle=3
link(Data,707007:Strings,[(678,211)])
}
Add(MultiStrPart,14461599,791,455)
{
Char="\9"
Count=1
link(onSplit,12367899:doString,[])
}
Add(FormatStr,12367899,861,455)
{
DataCount=1
Mask="DELETE FROM proizvoditeli_printerov WHERE nomer=%1"
Point(FString)
link(onFString,13930488:doExec,[])
link(Str1,14461599:Part1,[(867,443)(825,443)(825,499)(797,499)])
}
Add(DSC_Exec,13930488,917,455)
{
DSManager="parent.global"
link(SQL,12367899:FString,[(923,443)(895,443)(895,499)(867,499)])
}
Add(DoData,884112,581,378)
{
link(onEventData,707007:doDelete,[(643,384)(643,174)])
link(Data,901336:Var1,[(587,278)])
}
Add(GetDataEx,901336,679,273)
{
link(Data,707007:Index,[])
}
Add(Message,4750820,483,455)
{
Message="Вы точно хотите удалить?"
Type=2
Icon=2
link(onMessage,7964622:doEvent1,[])
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,1180491,21,21)
{
WorkCount=#5:##add|
Width=881
Height=550
Point(##add)
}
Add(MainForm,11656789,77,210)
{
Left=35
Top=105
Width=437
Height=796
Visible=1
Caption="8"
Position=1
Point(doShowModal)
Point(onClose)
link(onCreate,4378555:doOpen,[(212,230)(212,251)])
link(onClose,4378555:doClose,[(212,237)(212,258)])
}
Add(Button,654477,231,154)
{
Left=10
Top=5
Width=140
Height=50
Caption="добавить"
link(onClick,10306245:doOperation,[])
}
Add(DS_SQLite,4378555,315,245)
{
Name="global"
FileName=".\global.db"
WaitClose=0
link(onOpen,6315190:doEvent1,[])
}
Add(StringTableMT,8023045,567,133)
{
Left=5
Top=60
Width=410
Height=690
Columns=#4:№=25|12:Название=370|
StrDelimiter="\9"
Redaction=0
TabGrid=0
Grid=0
IconsCheck=[]
MiscIcons=[]
Icons=[]
Point(doMT_Add)
Point(onLineChange)
Point(Strings)
Point(Index)
link(onLineChange,4803889:doRead,[])
}
Add(Button,6125418,315,434)
{
Left=285
Top=5
Width=120
Height=50
Caption="Удалить фирму"
link(onClick,12784021:doMessage,[])
}
Add(DSC_Query,6256169,399,203)
{
SQL="SELECT * FROM proizvoditeli_kartridgey"
DSManager="parent.global"
link(onQuery,8023045:doMT_Add,[(499,209)(499,174)])
}
Add(Hub,6315190,364,245)
{
link(onEvent1,6256169:doQuery,[(388,251)(388,209)])
link(onEvent2,16043418:doExec,[(392,258)(392,314)])
}
Add(DSC_Exec,16043418,406,308)
{
SQL="CREATE TABLE proizvoditeli_kartridgey (nomer int, naimenovanie char)"
DSManager="parent.global"
}
Add(Math,10306245,301,154)
{
Op2=1
ResultType=0
link(onResult,2352244:doEvent1,[])
link(Op1,8023045:Count,[(307,142)(440,142)(440,190)(573,190)])
}
Add(FormatStr,11509791,406,70)
{
DataCount=1
Mask="INSERT INTO proizvoditeli_kartridgey (nomer) VALUES (%1)"
Point(FString)
link(onFString,1294848:doExec,[])
link(Str1,10306245:Result,[(412,65)(360,65)(360,198)(307,198)])
}
Add(Hub,2352244,364,154)
{
link(onEvent1,8023045:doAdd,[(472,160)(472,139)])
link(onEvent2,11509791:doString,[(392,167)(392,76)])
}
Add(DSC_Exec,1294848,567,70)
{
DSManager="parent.global"
link(SQL,11509791:FString,[(573,58)(489,58)(489,114)(412,114)])
}
Add(ArrayRW,4803889,665,140)
{
link(onRead,2878059:doSplit,[])
link(Array,4911913:Var3,[(671,135)(626,135)(626,190)])
}
Add(MultiStrPart,2878059,728,140)
{
Char="\9"
Count=3
link(onSplit,2262753:doString,[(772,146)(772,202)(716,202)(716,237)])
}
Add(FormatStr,2262753,728,231)
{
DataCount=3
Mask="UPDATE proizvoditeli_kartridgey SET naimenovanie='%2' WHERE nomer=%1"
Point(FString)
link(onFString,9869522:doExec,[])
link(Str1,2878059:Part1,[])
link(Str2,2878059:Part2,[])
link(Str3,2878059:Part3,[])
}
Add(DSC_Exec,9869522,798,231)
{
DSManager="parent.global"
link(SQL,2262753:FString,[(804,219)(769,219)(769,275)(734,275)])
}
Add(Hub,693434,462,434)
{
link(onEvent1,8354633:doRead,[])
link(onEvent2,14062521:doData,[(483,447)(483,363)])
}
Add(ArrayRW,8354633,623,434)
{
link(onRead,14249452:doSplit,[])
link(Array,4911913:Var2,[(629,324)(601,324)])
link(Index,3868010:Var2,[(636,285)(594,285)])
}
Add(GetDataEx,4911913,595,185)
{
Angle=3
link(Data,8023045:Strings,[(587,190)])
}
Add(MultiStrPart,14249452,700,434)
{
Char="\9"
Count=1
link(onSplit,15406253:doString,[])
}
Add(FormatStr,15406253,770,434)
{
DataCount=1
Mask="DELETE FROM proizvoditeli_kartridgey WHERE nomer=%1"
Point(FString)
link(onFString,13593398:doExec,[])
link(Str1,14249452:Part1,[(776,422)(734,422)(734,478)(706,478)])
}
Add(DSC_Exec,13593398,826,434)
{
DSManager="parent.global"
link(SQL,15406253:FString,[(832,422)(804,422)(804,478)(776,478)])
}
Add(DoData,14062521,490,357)
{
link(onEventData,8023045:doDelete,[(552,363)(552,153)])
link(Data,3868010:Var1,[(496,257)])
}
Add(GetDataEx,3868010,588,252)
{
link(Data,8023045:Index,[])
}
Add(Message,12784021,392,434)
{
Message="Вы точно хотите удалить?"
Type=2
Icon=2
link(onMessage,693434:doEvent1,[])
}
END_SDK

какие я параметры тут только не задавал. не работает. есть подозрение что ему не нравятся русские буквы!
а они у меня в заголовке окна.

nesco писал(а):

Add(MainForm,2805201,168,196)
{
}
Add(Menu,10429459,238,238)
{
Menu=#4:меню1:(|4:base|1:1|1:2|1:)|
Point(onSelectNum)
link(onSelectNum,10811022:doGetString,[])
}
Add(ChildFormPoly,16443884,371,210)
{
Childrens=#1:1|1:2|
Selected="2"
WorkScheme=1
}
BEGIN_SDK
Add(EditPolyMulti,2288267,14,14)
{
WorkCount=#5:##add|
Width=433
Height=326
Point(##add)
link(##add,3763227:doShowModal,[(67,20)(67,125)])
}
Add(MainForm,3763227,77,91)
{
Left=35
Top=105
Caption="1"
Point(doShowModal)
}
Add(Edit,5324052,203,105)
{
Left=210
Top=110
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,15565634,14,14)
{
WorkCount=#5:##add|
Width=433
Height=326
Point(##add)
link(##add,8761886:doShowModal,[(67,20)(67,104)])
}
Add(MainForm,8761886,77,70)
{
Left=35
Top=105
Caption="2"
Point(doShowModal)
}
Add(CheckBox,5258510,217,63)
{
Left=175
Top=70
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,949293,21,21)
{
WorkCount=#5:##add|
Width=433
Height=326
Point(##add)
link(##add,712013:doShowModal,[(81,27)(81,104)])
}
Add(MainForm,712013,91,70)
{
Left=35
Top=105
Caption="3"
Point(doShowModal)
}
Add(Button,8064647,147,63)
{
Left=185
Top=70
}
END_SDK
Add(Label,2470761,238,196)
{
Left=135
Top=55
Width=115
}
Add(StrList,10811022,308,203)
{
Strings=#0:|4:base|1:1|1:2|
Point(onGetString)
Point(doGetString)
link(onGetString,16443884:##add,[])
}
[/quote]| это я на форуме видел. мне не удобна эта реализация.

Редактировалось 3 раз(а), последний 2018-02-05 16:23:03
карма: 0

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#8: 2018-02-05 16:23:27 ЛС | профиль | цитата
zhorik5 писал(а):
да оно еще проще может

Может, но не всегда простое правильно. По ##add добавлении каждый раз новый экземпляр контейнера с формой, и контейнер и форма не уничтожается по закрытию формы, а это жрет память. Правильнее все же создать один раз все экземпляры и вызывать их по необходимости, или удалять использованный контейнер с формой по закрытию формы, но это требует некоторой дополнительной обвески. В моей схеме есть одна ошибка -- ##select вызывает контейнер по индексу, и так удачно совпало, что конвертация имени привела к правильным индексам, правильнее использовать точку ##nselect. те вызывать контейнер по имени, тк не всегда индексы могут совпасть с вызовом нужной формы.
zhorik5 писал(а):
есть подозрение что ему не нравятся русские буквы!
а они у меня в заголовке окна.

Русские буквы категорически нельзя использовать в именах контейнеров. И в чем проблема перевести на латиницу?
карма: 22

0
Ответов: 192
Рейтинг: 2
#9: 2018-02-05 16:25:54 ЛС | профиль | цитата
nesco писал(а):
И в чем проблема перевести на латиницу?

Ну не красиво же в заголовке окна. или я не о том подумал подожди....!
карма: 0

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#10: 2018-02-05 16:32:57 ЛС | профиль | цитата
Из твоей схемы совершенно непонятно, какой экземпляр формы должен вызываться при каком пункте меню. Или изначально была поставлена задача вызывать на каждый чих свою форму, те они не типовые, я правильно понял? Но каждому пункту меню соответствует какой-то индекс этого меню. Так в чем проблема привязать эти имена к латинскому названию контейнера?
zhorik5 писал(а):
Ну не красиво же в заголовке окна. или я не о том подумал подожди....!

Имя контейнера никак не связано с заголовком формы.

Редактировалось 1 раз(а), последний 2018-02-05 16:33:22
карма: 22

0
Ответов: 192
Рейтинг: 2
#11: 2018-02-05 16:35:02 ЛС | профиль | цитата
ну вот смотри

Add(ChildFormPoly,9239453,358,63)
{
Childrens=#1:7|1:8|
Selected="base"
}
BEGIN_SDK
Add(EditPolyMulti,8056843,21,21)
{
WorkCount=#9:##nselect|
Point(##nselect)
}
Add(MainForm,3669715,35,105)
{
Left=35
Top=105
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,10828257,21,21)
{
WorkCount=#9:##nselect|
Width=951
Height=564
Point(##nselect)
}
Add(MainForm,8783970,168,231)
{
Left=35
Top=105
Width=437
Height=796
Visible=1
Caption="7"
Position=1
Point(doShowModal)
Point(onClose)
link(onCreate,14118872:doEvent1,[])
}
Add(Button,343726,322,175)
{
Left=10
Top=5
Width=140
Height=50
Caption="добавить"
link(onClick,12406138:doOperation,[])
}
Add(StringTableMT,707007,658,154)
{
Left=5
Top=60
Width=410
Height=690
Columns=#4:№=25|12:Название=370|
StrDelimiter="\9"
Redaction=0
TabGrid=0
Grid=0
IconsCheck=[]
MiscIcons=[]
Icons=[]
Point(doMT_Add)
Point(onLineChange)
Point(Strings)
Point(Index)
link(onLineChange,603746:doRead,[])
}
Add(Button,3029754,406,455)
{
Left=285
Top=5
Width=120
Height=50
Caption="Удалить фирму"
link(onClick,4750820:doMessage,[])
}
Add(DSC_Query,16753300,336,245)
{
SQL="SELECT * FROM proizvoditeli_printerov"
DSManager="parent.global"
link(onQuery,707007:doMT_Add,[(590,251)(590,195)])
}
Add(Hub,14118872,231,245)
{
link(onEvent1,16753300:doQuery,[])
link(onEvent2,11626114:doExec,[(249,258)(249,265)])
}
Add(DSC_Exec,11626114,252,259)
{
SQL="CREATE TABLE proizvoditeli_printerov (nomer int, naimenovanie char)"
DSManager="parent.global"
}
Add(Math,12406138,392,175)
{
Op2=1
ResultType=0
link(onResult,5637301:doEvent1,[])
link(Op1,707007:Count,[(398,163)(531,163)(531,211)(664,211)])
}
Add(FormatStr,3394691,497,91)
{
DataCount=1
Mask="INSERT INTO proizvoditeli_printerov (nomer) VALUES (%1)"
Point(FString)
link(onFString,11525825:doExec,[])
link(Str1,12406138:Result,[(503,86)(451,86)(451,219)(398,219)])
}
Add(Hub,5637301,455,175)
{
link(onEvent1,707007:doAdd,[(563,181)(563,160)])
link(onEvent2,3394691:doString,[(483,188)(483,97)])
}
Add(DSC_Exec,11525825,658,91)
{
DSManager="parent.global"
link(SQL,3394691:FString,[(664,79)(580,79)(580,135)(503,135)])
}
Add(ArrayRW,603746,756,161)
{
link(onRead,15198075:doSplit,[])
link(Array,8929716:Var3,[(762,156)(717,156)(717,211)])
}
Add(MultiStrPart,15198075,819,161)
{
Char="\9"
Count=3
link(onSplit,15143871:doString,[(863,167)(863,223)(807,223)(807,258)])
}
Add(FormatStr,15143871,819,252)
{
DataCount=3
Mask="UPDATE proizvoditeli_printerov SET naimenovanie='%2' WHERE nomer=%1"
Point(FString)
link(onFString,8164070:doExec,[])
link(Str1,15198075:Part1,[])
link(Str2,15198075:Part2,[])
link(Str3,15198075:Part3,[])
}
Add(DSC_Exec,8164070,889,252)
{
DSManager="parent.global"
link(SQL,15143871:FString,[(895,240)(860,240)(860,296)(825,296)])
}
Add(Hub,7964622,553,455)
{
link(onEvent1,5783049:doRead,[])
link(onEvent2,884112:doData,[(574,468)(574,384)])
}
Add(ArrayRW,5783049,714,455)
{
link(onRead,14461599:doSplit,[])
link(Array,8929716:Var2,[(720,345)(692,345)])
link(Index,901336:Var2,[(727,306)(685,306)])
}
Add(GetDataEx,8929716,686,206)
{
Angle=3
link(Data,707007:Strings,[(678,211)])
}
Add(MultiStrPart,14461599,791,455)
{
Char="\9"
Count=1
link(onSplit,12367899:doString,[])
}
Add(FormatStr,12367899,861,455)
{
DataCount=1
Mask="DELETE FROM proizvoditeli_printerov WHERE nomer=%1"
Point(FString)
link(onFString,13930488:doExec,[])
link(Str1,14461599:Part1,[(867,443)(825,443)(825,499)(797,499)])
}
Add(DSC_Exec,13930488,917,455)
{
DSManager="parent.global"
link(SQL,12367899:FString,[(923,443)(895,443)(895,499)(867,499)])
}
Add(DoData,884112,581,378)
{
link(onEventData,707007:doDelete,[(643,384)(643,174)])
link(Data,901336:Var1,[(587,278)])
}
Add(GetDataEx,901336,679,273)
{
link(Data,707007:Index,[])
}
Add(Message,4750820,483,455)
{
Message="Вы точно хотите удалить?"
Type=2
Icon=2
link(onMessage,7964622:doEvent1,[])
}
END_SDK
BEGIN_SDK
Add(EditPolyMulti,1180491,21,21)
{
WorkCount=#9:##nselect|
Width=881
Height=550
Point(##nselect)
}
Add(MainForm,11656789,77,210)
{
Left=35
Top=105
Width=437
Height=796
Visible=1
Caption="8"
Position=1
Point(doShowModal)
Point(onClose)
link(onCreate,4378555:doOpen,[(212,230)(212,251)])
link(onClose,4378555:doClose,[(212,237)(212,258)])
}
Add(Button,654477,231,154)
{
Left=10
Top=5
Width=140
Height=50
Caption="добавить"
link(onClick,10306245:doOperation,[])
}
Add(DS_SQLite,4378555,315,245)
{
Name="global"
FileName=".\global.db"
WaitClose=0
link(onOpen,6315190:doEvent1,[])
}
Add(StringTableMT,8023045,567,133)
{
Left=5
Top=60
Width=410
Height=690
Columns=#4:№=25|12:Название=370|
StrDelimiter="\9"
Redaction=0
TabGrid=0
Grid=0
IconsCheck=[]
MiscIcons=[]
Icons=[]
Point(doMT_Add)
Point(onLineChange)
Point(Strings)
Point(Index)
link(onLineChange,4803889:doRead,[])
}
Add(Button,6125418,315,434)
{
Left=285
Top=5
Width=120
Height=50
Caption="Удалить фирму"
link(onClick,12784021:doMessage,[])
}
Add(DSC_Query,6256169,399,203)
{
SQL="SELECT * FROM proizvoditeli_kartridgey"
DSManager="parent.global"
link(onQuery,8023045:doMT_Add,[(499,209)(499,174)])
}
Add(Hub,6315190,364,245)
{
link(onEvent1,6256169:doQuery,[(388,251)(388,209)])
link(onEvent2,16043418:doExec,[(392,258)(392,314)])
}
Add(DSC_Exec,16043418,406,308)
{
SQL="CREATE TABLE proizvoditeli_kartridgey (nomer int, naimenovanie char)"
DSManager="parent.global"
}
Add(Math,10306245,301,154)
{
Op2=1
ResultType=0
link(onResult,2352244:doEvent1,[])
link(Op1,8023045:Count,[(307,142)(440,142)(440,190)(573,190)])
}
Add(FormatStr,11509791,406,70)
{
DataCount=1
Mask="INSERT INTO proizvoditeli_kartridgey (nomer) VALUES (%1)"
Point(FString)
link(onFString,1294848:doExec,[])
link(Str1,10306245:Result,[(412,65)(360,65)(360,198)(307,198)])
}
Add(Hub,2352244,364,154)
{
link(onEvent1,8023045:doAdd,[(472,160)(472,139)])
link(onEvent2,11509791:doString,[(392,167)(392,76)])
}
Add(DSC_Exec,1294848,567,70)
{
DSManager="parent.global"
link(SQL,11509791:FString,[(573,58)(489,58)(489,114)(412,114)])
}
Add(ArrayRW,4803889,665,140)
{
link(onRead,2878059:doSplit,[])
link(Array,4911913:Var3,[(671,135)(626,135)(626,190)])
}
Add(MultiStrPart,2878059,728,140)
{
Char="\9"
Count=3
link(onSplit,2262753:doString,[(772,146)(772,202)(716,202)(716,237)])
}
Add(FormatStr,2262753,728,231)
{
DataCount=3
Mask="UPDATE proizvoditeli_kartridgey SET naimenovanie='%2' WHERE nomer=%1"
Point(FString)
link(onFString,9869522:doExec,[])
link(Str1,2878059:Part1,[])
link(Str2,2878059:Part2,[])
link(Str3,2878059:Part3,[])
}
Add(DSC_Exec,9869522,798,231)
{
DSManager="parent.global"
link(SQL,2262753:FString,[(804,219)(769,219)(769,275)(734,275)])
}
Add(Hub,693434,462,434)
{
link(onEvent1,8354633:doRead,[])
link(onEvent2,14062521:doData,[(483,447)(483,363)])
}
Add(ArrayRW,8354633,623,434)
{
link(onRead,14249452:doSplit,[])
link(Array,4911913:Var2,[(629,324)(601,324)])
link(Index,3868010:Var2,[(636,285)(594,285)])
}
Add(GetDataEx,4911913,595,185)
{
Angle=3
link(Data,8023045:Strings,[(587,190)])
}
Add(MultiStrPart,14249452,700,434)
{
Char="\9"
Count=1
link(onSplit,15406253:doString,[])
}
Add(FormatStr,15406253,770,434)
{
DataCount=1
Mask="DELETE FROM proizvoditeli_kartridgey WHERE nomer=%1"
Point(FString)
link(onFString,13593398:doExec,[])
link(Str1,14249452:Part1,[(776,422)(734,422)(734,478)(706,478)])
}
Add(DSC_Exec,13593398,826,434)
{
DSManager="parent.global"
link(SQL,15406253:FString,[(832,422)(804,422)(804,478)(776,478)])
}
Add(DoData,14062521,490,357)
{
link(onEventData,8023045:doDelete,[(552,363)(552,153)])
link(Data,3868010:Var1,[(496,257)])
}
Add(GetDataEx,3868010,588,252)
{
link(Data,8023045:Index,[])
}
Add(Message,12784021,392,434)
{
Message="Вы точно хотите удалить?"
Type=2
Icon=2
link(onMessage,693434:doEvent1,[])
}
END_SDK
Add(Menu,189565,127,56)
{
Menu=#4:Файл|1:(|6:Печать|9:Настройки|1:)|11:Справочники|1:(|10:Сотрудники|29:Справочники вгруппе Картриджи|1:(|30:Фирмы производителей принтеров|31:Фирмы производителей картриджей|31:Нименование и номера картриджей|12:Типы тонеров|24:Виды работ по картриджам|1:)|26:Справочники вгруппе Сервис|1:(|14:Группы техники|26:Фирмы изготовители техники|28:Виды работ и цена по сервису|14:Вознаграждение|1:)|11:Контрагенты|7:Расчеты|1:(|13:Категории цен|5:Прайс|1:)|1:)|6:Отчеты|1:(|24:Заприходованые картриджи|22:Заприходованая техника|11:Общий отчет|1:1|1:2|1:)|11:о программе|5:Выход|
Point(onSelectNum)
link(onSelectStr,16547828:doText,[(199,62)(199,27)])
link(onSelectNum,15510968:doEvent1,[])
}
Add(Edit,14607588,266,70)
{
Left=65
Top=85
Width=70
}
Add(Edit,16547828,238,21)
{
Left=65
Top=125
Width=235
}
Add(Hub,15510968,238,63)
{
link(onEvent1,9239453:##nselect,[])
link(onEvent2,14607588:doText,[])
}


имена контейнеров здесь BASE/7/8/ верно?
а caption - заголовок формы влияет на работу этой конструкции или нет?
и еще вопрос я должен использовать строку с блока меню для выбора контейнера или индекс с блока меню для выбора контейнера?

--- Добавлено в 2018-02-05 16:36:33

nesco писал(а):
те они не типовые

да они не типовые. я и хочу типовые объеденить. но проблема в том что никакой пункт не вызывает форму.

Редактировалось 1 раз(а), последний 2018-02-05 16:36:33
карма: 0

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#12: 2018-02-05 16:41:05 ЛС | профиль | цитата
zhorik5 писал(а):
имена контейнеров здесь BASE/7/8/ верно?

Верно
zhorik5 писал(а):
а caption - заголовок формы влияет на работу этой конструкции или нет?

Нет. Заголовок формы -- это заголовок формы в именном контейнере. Те, вызывая контейнер с именем 7, ты вызовешь форму с заголовком, который пропишешь в Caption формы, находящейся в контейнере с именем 7.
zhorik5 писал(а):
и еще вопрос я должен использовать строку с блока меню для выбора контейнера или индекс с блока меню для выбора контейнера?

Для вызова формы ты должен использовать либо имя нужного контейнера, либо его индекс в списке созданных экземпляров.
Учти, что имя контейнера может быть любое на латинице, не обязательно это должно быть число.

Редактировалось 2 раз(а), последний 2018-02-05 16:47:00
карма: 22

0
Ответов: 192
Рейтинг: 2
#13: 2018-02-05 17:44:33 ЛС | профиль | цитата
nesco писал(а):
либо его индекс в списке созданных экземпляров.

BASE/7/8/ соответственно
/base/ индекс 0
/7/ индекс 1
/8/ индекс 2
Так?
получается мне нужно создать пустых контейнеров необходимое количество что можно было вызывать по индексу
карма: 0

0
Разработчик
Ответов: 26113
Рейтинг: 2126
#14: 2018-02-05 18:50:49 ЛС | профиль | цитата
zhorik5 писал(а):

BASE/7/8/ соответственно
/base/ индекс 0
/7/ индекс 1
/8/ индекс 2
Так?

Да. Но создавать их надо поименно, как в моей схеме. Но учти, что при большом количестве форм, это вариант будет крайне неэкономичным. Лучший вариант будет, если использовать динамически созданный контейнер с нужной формой, который будет удаляться с закрытием формы.
карма: 22

0
Ответов: 192
Рейтинг: 2
#15: 2018-02-05 19:01:25 ЛС | профиль | цитата
еще и с форума постоянно выкидывает. как избежать ошибки в начале поста не используя полиморфные формы вообще?
карма: 0

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