Вверх ↑
Ответов: 1058
Рейтинг: 76
#1: 2011-01-27 09:13:53 ЛС | профиль | цитата
За примерчик спасибо, токо Вы бы зарегистрировались, а то даже спасибо некому сказать.

Постараюсь прояснить ситуацию.
Создаю программу точнее сам костыль.В проге к примеру имеем всплывающую панель "выбор категории или типа деталей" к примеру "транзисторы" с под категориями "биполярные" и "полевые".Со временем пользователь захочет добавить еще одну базу к примеру "диоды", после прописывание которой в программе, появляется в вкладке возможность выбора новой категории "диоды" с под категориями "диоды выпрямительные", "стабилитроны", "варикапы".
Тоесть, после добавления новых баз нет необходимости изменять код программы.
Также имеем другую вкладку для поиска в которой в зависимости от выбранной категории появляются пункты:
искать по названию (стандартная присутствует всегда),
к примеру для под категории "стабилитроны" появится новый пункт "искать по напряжению стабилизации",
а к примеру для транзисторов "тип перехода" npn или pnp и т.п.
Тоесть проблема токо в том чтобы после добавления новых баз не было необходимости каждый раз изменять код программы.
Также количество и название категорий создавалось бы автоматом на основе записей в отдельном файле, в который по мере добавления баз будут
новые записи.


------------ Дoбавленo в 02.23:
Добавлю еще что поля:
edit -для ввода названия или параметра поиска
label - для заголовка
combobox -для уточнения к примеру на транзисторы npn или pnp
обязательны.
По возможности можно и checkbox для отметки нескольких параметров. Но не обязательно, можно вывести необходимое к-во edit и анализируя их содержимое производить поиск.
------------ Дoбавленo в 09.13:
Леонид, 8.123.119.180 вот примерчик реализации задуманного, точнее так я его вижу.
Может кому пригодится, а может Вы знаете способ и по проще, буду токо рад.

Add(MainForm,2953706,406,112)
{
Width=458
link(onCreate,11018623:doSelect,[])
}
Add(ChildScrollBox,856901,595,217)
{
link(onEvent1,9261939:doText,[])
}
BEGIN_SDK
Add(EditMulti,6862855,21,21)
{
EventCount=1
WorkCount=2
Width=615
Height=445
link(doWork1,2480717:doEvent1,[])
link(doWork2,9548422:doEvent1,[(35,34)(35,90)])
}
Add(ScrollBox,970841,42,287)
{
Left=210
Top=5
Width=230
Height=230
}
Add(ChildPanelEx,9544596,413,28)
{
Mode=1
link(onChange,8219298:doWork1,[(495,34)(495,48)])
}
BEGIN_SDK
Add(EditMultiEx,3317896,21,21)
{
WorkCount=#5:##add|7:##clear|
EventCount=#8:onChange|
VarCount=#3:Top|
Point(##add)
Point(##clear)
link(##add,4336649:doTop,[(53,27)(53,76)])
link(Top,4336649:Top,[(27,158)(90,158)])
}
Add(Panel,4336649,84,63)
{
Left=5
Width=205
Height=19
Point(doTop)
Point(Top)
}
Add(Edit,2259127,238,63)
{
Width=205
link(onChange,3317896:onChange,[(296,69)(296,27)])
}
END_SDK
Add(Math,12750693,413,392)
{
link(onResult,8395810:doData,[(457,398)(457,240)(219,240)(219,83)])
link(Op1,3220634:Result,[])
link(Op2,12259630:Value,[(426,384)(538,384)])
}
Add(ChildPanelEx,9119886,434,70)
{
Mode=1
link(onClick,8219298:doWork2,[(506,76)(506,55)])
}
BEGIN_SDK
Add(EditMultiEx,2297766,21,21)
{
WorkCount=#5:##add|7:##clear|
EventCount=#7:onClick|
VarCount=#3:Top|
Point(##add)
Point(##clear)
link(##add,16085762:doTop,[(53,27)(53,76)])
link(Top,16085762:Top,[(27,158)(90,158)])
}
Add(Panel,16085762,84,63)
{
Left=5
Width=210
Height=19
Point(doTop)
Point(Top)
}
Add(Label,12979196,217,70)
{
Width=210
link(onClick,2297766:onClick,[(285,76)(285,27)])
}
END_SDK
Add(ChildPanelEx,16021294,455,112)
{
Mode=1
link(onCheck,8219298:doWork3,[(517,118)(517,62)])
}
BEGIN_SDK
Add(EditMultiEx,4701158,21,21)
{
WorkCount=#5:##add|7:##clear|
EventCount=#7:onCheck|
VarCount=#3:Top|
Point(##add)
Point(##clear)
link(##add,13928558:doTop,[(53,27)(53,76)])
link(Top,13928558:Top,[(27,158)(90,158)])
}
Add(Panel,13928558,84,63)
{
Left=5
Width=205
Height=19
Point(doTop)
Point(Top)
}
Add(CheckBox,14088612,203,56)
{
Width=205
link(onCheck,4701158:onCheck,[(278,62)(278,27)])
}
END_SDK
Add(ChildPanelEx,12606530,476,154)
{
Mode=1
link(onClick,8219298:doWork4,[(527,160)(527,69)])
}
BEGIN_SDK
Add(EditMultiEx,546627,21,21)
{
WorkCount=#5:##add|7:##clear|
EventCount=#7:onClick|
VarCount=#3:Top|
Point(##add)
Point(##clear)
link(##add,12298063:doTop,[(53,27)(53,76)])
link(Top,12298063:Top,[(27,158)(90,158)])
}
Add(Panel,12298063,84,63)
{
Left=5
Width=205
Height=19
Point(doTop)
Point(Top)
}
Add(ComboBox,9927996,252,56)
{
Width=205
Height=21
Point(onMouseDown)
link(onMouseDown,546627:onClick,[(302,76)(302,27)])
}
END_SDK
Add(Math,10976685,336,252)
{
OpType=39
link(Op1,9998433:Var3,[(342,222)])
link(Op2,8621102:Var2,[])
}
Add(Math,16134100,294,245)
{
OpType=38
link(Op1,9998433:Var2,[])
link(Op2,8621102:Var1,[(307,231)])
}
Add(Hub,15969813,231,245)
{
InCount=2
OutCount=7
link(onEvent1,16134100:doOperation,[])
link(onEvent2,10976685:doOperation,[])
link(onEvent3,16580575:doOperation,[])
link(onEvent4,14035297:doOperation,[])
link(onEvent5,3818766:doOperation,[(294,279)(294,356)])
link(onEvent6,3220634:doOperation,[(315,286)(315,349)])
link(onEvent7,12750693:doOperation,[(270,293)(270,398)])
}
Add(GetDataEx,9998433,294,217)
{
link(Data,9544596:Top,[(300,139)(419,139)])
}
Add(GetDataEx,8621102,343,226)
{
link(Data,9119886:Top,[(349,164)(440,164)])
}
Add(Math,14035297,420,266)
{
OpType=39
link(Op1,7162415:Var3,[(426,243)])
link(Op2,1648573:Var2,[])
}
Add(Math,16580575,378,259)
{
OpType=38
link(Op1,7162415:Var2,[])
link(Op2,1648573:Var1,[(391,238)])
}
Add(GetDataEx,1648573,427,233)
{
link(Data,12606530:Top,[(433,217)(482,217)])
}
Add(Math,3220634,413,343)
{
OpType=39
link(Op1,15100531:Var3,[(419,327)])
link(Op2,2697240:Var2,[])
}
Add(Math,3818766,336,350)
{
OpType=38
link(Op1,15100531:Var2,[])
link(Op2,2697240:Var1,[(349,315)])
}
Add(GetDataEx,15100531,336,322)
{
link(Data,10976685:Result,[])
}
Add(GetDataEx,2697240,420,310)
{
link(Data,14035297:Result,[])
}
Add(Hub,2480717,56,21)
{
link(onEvent1,11482689:doSplit,[(130,27)(130,34)])
}
Add(MultiStrData,11482689,126,28)
{
link(onPart1,10649674:doValue,[])
link(onPart2,13958365:doValue,[])
}
Add(For,2036960,175,77)
{
Start=1
link(onEvent,15969813:doEvent1,[(219,83)(219,251)])
link(End,13958365:Value,[])
}
Add(Memory,13958365,182,35)
{
link(onData,2036960:doFor,[(226,41)(226,62)(163,62)(163,83)])
}
Add(IndexToChanel,13688642,350,28)
{
Count=4
Point(Data)
link(onEvent1,9544596:##add,[])
link(onEvent2,9119886:##add,[(408,41)(408,76)])
link(Data,12750693:Result,[(356,23)(606,23)(606,446)(419,446)])
link(onEvent3,16021294:##add,[(418,48)(418,118)])
link(onEvent4,12606530:##add,[(429,55)(429,160)])
}
Add(GetDataEx,7162415,378,238)
{
link(Data,16021294:Top,[(384,201)(461,201)])
}
Add(Memory,10649674,231,28)
{
}
Add(DoData,8395810,231,77)
{
link(onEventData,11488774:doEvent1,[])
link(Data,10649674:Value,[])
}
Add(ChanelToIndex,8219298,546,42)
{
Count=4
link(onIndex,6862855:onEvent1,[(607,48)(607,27)])
}
Add(Memory,12259630,532,336)
{
}
Add(Hub,11488774,273,77)
{
link(onEvent1,13688642:doEvent,[(307,83)(307,34)])
link(onEvent2,10286914:doData,[(389,90)(389,342)])
}
Add(DoData,10286914,490,336)
{
Data=Integer(25)
link(onEventData,12259630:doValue,[])
}
Add(Hub,9548422,56,84)
{
OutCount=4
link(onEvent1,9544596:##clear,[(242,90)(242,41)])
link(onEvent2,9119886:##clear,[(252,97)(252,83)])
link(onEvent3,16021294:##clear,[(262,104)(262,125)])
link(onEvent4,12606530:##clear,[(273,111)(273,167)])
}
END_SDK
Add(Button,4308831,406,161)
{
Left=5
Top=240
Width=95
Caption="Добавить"
link(onClick,4909438:doStrCatDlm,[])
}
Add(StringTable,3056692,525,161)
{
Left=5
Top=30
Width=200
Height=205
Columns=#11:елемент=100|14:количество=100|
Point(Strings)
}
Add(Edit,1214517,504,105)
{
Left=165
Top=5
Width=40
Text=""
DataType=1
}
Add(ComboBox,11018623,462,84)
{
Left=10
Top=5
Width=150
Height=21
Strings=#4:Edit|5:Label|8:CheckBox|8:ComboBox|
Point(doSelect)
Point(Index)
}
Add(Button,9824837,407,217)
{
Left=110
Top=240
Width=90
Caption="Создать"
link(onClick,9843485:doEnum,[])
}
Add(StrCatDelim,4909438,483,161)
{
Delimiter=";"
link(onStrCatDlm,3056692:doAdd,[])
link(Str1,11018623:Index,[(489,149)(482,149)])
link(Str2,1214517:Text,[(496,149)(510,149)])
}
Add(ArrayEnum,9843485,539,217)
{
link(onItem,856901:doWork1,[])
link(Array,3056692:Strings,[])
}
Add(Button,13123796,406,266)
{
Left=210
Top=240
Width=165
Caption="Сброс"
link(onClick,16703644:doEvent1,[])
}
Add(Hub,16703644,455,266)
{
link(onEvent1,3056692:doClear,[(497,272)(497,174)])
link(onEvent2,856901:doWork2,[(532,279)(532,230)])
}
Add(Edit,9261939,644,217)
{
Left=380
Top=240
Text=""
}


карма: 0

0