Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо