Tad
Спасибо, хорошая схема буду развивать дальше
------------ Дoбавленo в 18.30:
Tad Вот вариант схемы .Часть взял твою, особенно понравилась организация счетчика . Вопрос Стоит-ли расширять таблицу вправо для занесения дополнительных данных или лучше создать новую таблицу.Сомнения в том , что если таблица одна ,ее можно записать в один файл (как на примере), а если таблицы две (как записать в один файл)
Add(MainForm,13533940,273,154) { Width=670 Height=740 BorderStyle=1 Position=1 link(onCreate,13531138:doEvent2,[(317,174)(317,118)]) } Add(Button,53310,896,161) { Left=180 Top=35 Width=80 Font=[Arial,8,0,0,1] Hint="Записать в файл" Caption="Сохранить" link(onClick,4511240:doSave,[(936,167)(936,202)]) } Add(Label,85963,273,210) { Left=225 Top=90 Height=18 Font=[Arial,10,0,0,1] Caption="Высота" AutoSize=1 Alignment=1 } Add(Edit,70870,504,252) { Left=225 Top=110 Width=90 Height=21 Font=[Arial,10,0,0,1] TabOrder=1 Hint="Введите высоту фасада" Text="" Alignment=1 DataType=1 Point(doSetFocus) Point(doSelectAll) link(onEnter,8598128:doEvent1,[]) } Add(Label,64905,280,224) { Left=225 Top=170 Width=70 Font=[Arial,10,0,0,1] Caption="Количество" AutoSize=1 Alignment=1 } Add(Edit,65912,504,154) { Left=225 Top=150 Width=90 Height=21 Font=[Arial,10,0,0,1] TabOrder=2 Hint="Введите ширину фасада" Text="" Alignment=1 DataType=1 Point(doSetFocus) Point(doSelectAll) link(onEnter,3458436:doEvent1,[]) } Add(Label,21476,273,203) { Left=225 Top=130 Font=[Arial,10,0,0,1] Caption="Ширина" AutoSize=1 Alignment=1 } Add(Button,55985,896,301) { Left=95 Top=35 Width=80 Font=[Arial,8,0,0,1] Hint="Открыть сохраненный список" Caption="Открыть" link(onClick,3556273:doEvent1,[]) } Add(Button,91075,273,378) { Left=225 Top=220 Width=90 Height=110 Font=[Arial,12,0,0,1] TabOrder=4 Hint="Внести данный фасад в таблицу" Caption="Добавить" Point(doSetFocus) link(onClick,15065934:doEvent1,[]) } Add(Edit,97742,623,105) { Left=225 Top=190 Width=75 Font=[Arial,10,0,0,1] TabOrder=3 Hint="Введите колличество фасадов" Text="" Alignment=1 DataType=1 Point(doSetFocus) Point(doSelectAll) link(onChange,160199:doWork1,[(661,111)(661,99)(466,99)]) link(onEnter,11553050:doEvent1,[]) } Add(UpDown,6192076,483,112) { Left=300 Top=190 Width=15 Font=[Arial,10,0,0,1] TabOrder=4 Max=100 Min=1 Point(onMouseDown) link(onPosition,6241274:doWork2,[]) } Add(Hub,15065934,329,378) { OutCount=6 link(onEvent1,10103446:doWork2,[]) link(onEvent2,11801876:doNext,[(381,391)(381,321)]) link(onEvent3,14112277:doAdd,[]) link(onEvent4,10103446:doWork3,[(361,405)]) link(onEvent5,12034547:doAdd,[(392,412)(392,216)]) link(onEvent6,1038788:doEvent2,[(403,419)(403,279)]) } Add(Counter,7381743,420,154) { } Add(LineBreak,12528569,364,168) { Caption="Clear" link(Out,7381743:doReset,[]) Primary=[10627494,0,-63] } Add(HubEx,7122155,602,392) { link(onEvent,12985991:doRowAction,[]) } Add(GetDataEx,3201953,630,189) { link(Data,3207110:reCalc,[]) } Add(Button,1305043,273,105) { Left=10 Top=35 Width=80 Font=[Arial,8,0,0,1] Hint="Создать новый список" Caption="Новый" link(onClick,13531138:doEvent1,[]) } Add(Hub,13531138,329,105) { InCount=3 OutCount=4 link(onEvent1,10627494:In,[]) link(onEvent2,160199:doWork2,[]) link(onEvent3,12519356:In,[]) link(onEvent4,1038788:doEvent1,[(353,132)(353,272)]) } Add(LineBreak,6561929,595,14) { Caption="Clear" link(Out,8265910:doClear,[]) Primary=[12519356,-231,105] } Add(GetDataEx,3521198,420,189) { link(Data,7381743:Count,[]) } Add(HubEx,10103446,357,378) { Angle=3 link(onEvent,7381743:doNext,[(361,160)]) } Add(HubEx,160199,462,112) { link(onEvent,6192076:doPosition,[]) } Add(MathParse,3207110,623,154) { MathStr="%1*2" Point(reCalc) link(X1,14092384:Var2,[]) } Add(Hub,1038788,462,266) { InCount=2 link(onEvent1,70870:doSetFocus,[]) link(onEvent2,70870:doSelectAll,[]) } Add(Hub,2932688,469,168) { link(onEvent1,65912:doSetFocus,[]) link(onEvent2,65912:doSelectAll,[]) } Add(Hub,8598128,546,259) { link(onEvent1,70870:doText2,[(572,265)(572,245)(492,245)(492,265)]) link(onEvent2,2932688:doEvent1,[(581,272)(581,224)(457,224)(457,174)]) } Add(Hub,3458436,546,161) { OutCount=3 link(onEvent1,65912:doText2,[(571,167)(571,149)(492,149)(492,167)]) link(onEvent2,97742:doSetFocus,[(592,174)(592,125)]) link(onEvent3,97742:doSelectAll,[(605,181)(605,132)]) } Add(Hub,11553050,679,112) { link(onEvent1,6241274:doWork1,[(707,118)(707,87)(585,87)]) link(onEvent2,91075:doSetFocus,[(717,125)(717,57)(261,57)(261,384)]) } Add(HubEx,6241274,581,112) { link(onEvent,97742:doText2,[]) } Add(GetDataEx,14092384,623,140) { link(Data,97742:Text,[]) } Add(Math,2287857,581,315) { OpType=1 Op2=96 ResultType=0 link(Op1,5720355:Var3,[(587,201)]) } Add(Math,7970954,462,315) { OpType=1 Op2=96 ResultType=0 link(onResult,2287857:doOperation,[]) link(Op1,3274682:Var1,[(468,306)]) } Add(Label,5462686,280,217) { Left=10 Top=345 Width=430 Height=17 Caption="Детали профиля Детали наполнения" } Add(Label,13339545,290,230) { Left=10 Top=70 Width=442 Height=17 Caption="Размеры Параметры профиля" } Add(Label,6368157,288,227) { Left=340 Top=195 Width=143 Height=20 Font=[Arial,10,0,0,1] Caption="Параметры наполнения" AutoSize=1 Alignment=1 } Add(MTStrTbl,2452207,840,56) { Left=5 Top=370 Width=650 Height=310 Font=[MS Sans Serif,10,1,0,1] Name="tab" ModeSp=1 Columns=#4:№=50|10:Размер=130|9:Кол-во=70|4: =60|10:Высота=130|10:Ширина=130|9:Кол-во=70| ColumnWidth=70 TextAlign=1 Grid=0 } Add(InfoTip,6675968,798,21) { Info=#7:Таблица| Font=[MS Sans Serif,8,1,0,1] Width=127 Height=95 } Add(MST_Clear,8265910,658,14) { MSTControl="tab" } Add(MST_RowAction,12985991,651,392) { MSTControl="tab" link(onChange,1992671:doWork2,[]) } Add(MST_Save,4511240,945,196) { FileName="probe.tab" SaveColumn=1 MSTControl="tab" Point(doDelimiter) link(onSaveToStream,810760:doCompress,[]) } Add(MST_Load,476788,1078,371) { FileName="probe.tab" ColNameHeader=1 MSTControl="tab" Point(doDelimiter) } Add(Button,16023419,896,203) { Left=335 Top=30 Width=100 TabOrder=-1 Caption="SaveToStream" link(onClick,4511240:doSaveToStream,[]) } Add(Button,11515267,896,385) { Left=440 Top=30 Width=100 TabOrder=1 Caption="LoadFromStream" link(onClick,6854200:doEvent1,[]) } Add(ZLIB,810760,987,203) { link(onStream,3778120:doCopyFromStream,[]) } Add(FileStream,3778120,1029,189) { FileName="probe.pak" Mode=1 AutoCopy=0 Point(doCopyFromStream) } Add(FileStream,12435322,987,385) { FileName="probe.pak" Point(doCopyFromStream) link(onLoad,1283012:doDeCompress,[]) } Add(Hub,6854200,945,385) { link(onEvent1,12435322:doOpen,[]) link(onEvent2,12435322:doClose,[]) } Add(ZLIB,1283012,1029,378) { link(onStream,476788:doLoadFromStream,[]) } Add(InfoTip,3820112,889,140) { Info=#32:Запись в файл или файловый поток| Width=246 Height=123 } Add(InfoTip,10017316,889,273) { Info=#36:Чтение из файла или файлового потока| Width=246 Height=158 } Add(Hub,2749219,833,392) { link(onEvent1,4511240:doDelimiter,[(880,398)(880,216)]) link(onEvent2,476788:doDelimiter,[(882,405)(882,427)(1068,427)(1068,391)]) } Add(Edit,8583535,777,329) { Left=545 Top=5 Font=[MS Sans Serif,8,1,0,1] Text=";" link(onChange,1992671:doWork1,[(821,335)(821,313)(732,313)]) } Add(DoData,3961529,777,392) { link(onEventData,2749219:doEvent1,[]) link(Data,8583535:Text,[]) } Add(HubEx,1992671,728,392) { link(onEvent,3961529:doData,[]) } Add(MT_AddData,14112277,497,392) { Count=7 link(onAdd,7122155:doWork2,[]) link(Data1,3521198:Var1,[(503,291)(415,291)(415,194)]) link(Data2,3274682:Var2,[]) link(Data3,3201953:Var3,[(517,291)(646,291)(646,194)]) link(Data4,11801876:Count,[(524,373)(419,373)]) link(Data5,7970954:Result,[(531,362)(468,362)]) link(Data6,2287857:Result,[(538,357)(587,357)]) link(Data7,14092384:Var3,[(545,364)(664,364)(664,145)]) } Add(MT_AddData,12034547,497,210) { Count=3 link(onAdd,7122155:doWork1,[(606,216)]) link(Data1,3521198:Var3,[(503,194)]) link(Data2,5720355:Var2,[]) link(Data3,3201953:Var1,[(517,194)]) } Add(Hub,3556273,966,301) { link(onEvent1,13531138:doEvent3,[(1123,307)(1123,96)(317,96)(317,125)]) link(onEvent2,476788:doLoad,[(1068,314)(1068,377)]) } Add(GetDataEx,5720355,504,196) { link(Data,65912:Text,[]) } Add(GetDataEx,3274682,504,301) { link(Data,70870:Text,[]) } Add(Counter,11801876,413,315) { link(onNext,7970954:doOperation,[]) }
И еще вопрос. Куда лучше запоминать таблицу в файл или в поток?
|