Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XML, TComboBox, XML, TComboBox 
V
    Опции темы
095
Дата 25.10.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 3.10.2007

Репутация: нет
Всего: нет



Спасите проклятую бездарность!!!
есть парс, который сканит комбобоксы:

Код

  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] (и спасет ли) ??


M
Alexeis
Модератор: используйте подсветку кода читать тут

PM MAIL WWW   Вверх
pseud
Дата 25.10.2007, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



Delphi 6
Новый проект, Form1
на форму кидаем Button1
на форму кидаем XMLDocument1 (закладка Internet)
XMLDocument1 свойство XML задаем:
Код

<boxes>
  <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>
</boxes>

в обработчик нажатия кнопки Button1 пишем:
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  cmbTemp: TCombobox;
  i: Integer;
  j: Integer;
  nodeBox: IXMLNode;
  nodeLine: IXMLNode;
begin
  XMLDocument1.Active := True;
  for i := 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do
  begin
    nodeBox := XMLDocument1.DocumentElement.ChildNodes[i];
    cmbTemp := TComboBox.Create(Self);
    cmbTemp.Parent := Self;
    cmbTemp.Style := csDropDownList;
    cmbTemp.Name := nodeBox.Attributes['name'];
    cmbTemp.Top := nodeBox.Attributes['top'];
    cmbTemp.Left := nodeBox.Attributes['left'];
    cmbTemp.ItemIndex := nodeBox.Attributes['ind'];
    for j := 0 to nodeBox.ChildNodes.Count - 1 do
    begin
      nodeLine := nodeBox.ChildNodes[j];
      cmbTemp.Items.Add(nodeLine.NodeValue);
    end;
  end;
  XMLDocument1.Active := False;
end;




--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
095
  Дата 25.10.2007, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 3.10.2007

Репутация: нет
Всего: нет



Валшебнаааа!!!! Спасип!
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0424 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.