![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
XML, TComboBox
timekiller © (2007-10-25 16:58:00)Спасите проклятую бездарность!!!
есть парс, который сканит комбобоксы:
for i:=0 to FNode.selectNodes('//box').length-1 do
begin
CoBox:=TComboBox.Create(MainFRM);
CoBox.Parent:=MainFRM;
CoBox.Style:=csDropDownList;
CoBox.Name:=FNode.selectNodes('//box').item[i].attributes.getNamedItem('name').nodeValue;
CoBox.Top:=StrToInt(FNode.selectNodes('//box').item[i].attributes.getNamedItem('top').nodeValue);
CoBox.left:=StrToInt(FNode.selectNodes('//box').item[i].attributes.getNamedItem('left').nodeValue);
for j:=0 to FNode.selectNodes('//line').length-1 do
CoBox.Items.Add(FNode.selectNodes('//line').item[j].text);
CoBox.ItemIndex:=FNode.selectNodes('//box').item[i].attributes.getNamedItem('ind').nodeValue;
вот XML
<box name="Blin" top="56" left="352" ind="1">
<line>18</line>
<line>19</line>
<line>20</line>
<line>21</line>
<line>22</line>
<line>24</line>
<line>25</line>
<line>26</line>
<line>27</line>
<line>28</line>
<line>29</line>
<line>30</line>
</box>
<box name="Blin1" top="100" left="352" ind="1">
<line>11</line>
<line>22</line>
<line>33</line>
<line>44</line>
<line>55</line>
<line>66</line>
<line>77</line>
<line>88</line>
<line>99</line>
</box>
Проблема : если комбобоксов больше одного то ITEMS в боксах начинают налезать друг на друга!! тоесть в обоих комбах сершенно одинаково вылезает 18,11,19,22,20,33,21,44
Как исправить? чтобы в разных комбах были СВОИ значения? как обратиться к childnodes[line] (и спасет ли) ??
timekiller (2007-10-25 17:52:00) [1]ок спасип! я понял что заставляешь думать, но уже паника и паранойа (бесполезно)
тогда пойду на другие форумы просить тожесамое, всеголишь пральный синтаксис
убейте меня :)
Reindeer Moss Eater (2007-10-25 17:36:00) [2]FNode.selectNodes('//box') возвращает список
тебе нужен элемент этого списка
timekiller (2007-10-25 17:33:00) [3]я синтаксиса не знаю, с XML работал ровно 1 день , я бездарность тут
Reindeer Moss Eater (2007-10-25 17:31:00) [4]а что, самому не видно что совсем не так "штоле"?
Сцылку на элемент списка нужно поиметь внутри первого цикла.
timekiller (2007-10-25 17:31:00) [5]FNode.selectNodes('//box').childNodes.length-1 тож не хавает
timekiller (2007-10-25 17:28:00) [6]for i:=0 to FNode.selectNodes('//box').length-1 do
for j:=0 to FNode.childNodes.length-1 do
Таг штоле?
Reindeer Moss Eater (2007-10-25 17:21:00) [7]в верхнем цикле у тебя есть доступ к очередному узлу box
вот от него и пляши, а не от документа в целом
timekiller (2007-10-25 17:20:00) [8]Reindeer Moss Eater аха Спасип!
По теме : Проблема в силе, люди помогите СТРОЧКОЙ глупому програмёру!!
Reindeer Moss Eater (2007-10-25 17:17:00) [9]да и чайлды просить надо не так.
Reindeer Moss Eater (2007-10-25 17:16:00) [10]"Не хавает", потому что просишь чайлды не у узла box
timekiller (2007-10-25 17:14:00) [11]с циклом синтаксиса не знаю ..
for j:=0 to FNode.childNodes('//box').items length-1 do
for j:=0 to FNode.childNodes('//lines').items length-1 do
не хавает
Reindeer Moss Eater (2007-10-25 17:07:00) [12]так и обратиться MyBoxNode.ChildNodes
timekiller (2007-10-25 17:04:00) [13]>>>либо ищи от узла box
Как к childNodes узла BOX обратиться? я просто всю башку поламал ниче не сображаё
Reindeer Moss Eater (2007-10-25 17:01:00) [14]если line ищешь от всего документа, то ограничивай box по имени.
либо ищи от узла box