Обновление combobox после редактирования

Привет всем. Моя проблема заключается в следующем:есть хмл-файл, в который я заношу некоторые данные изатем часть этих данных заносится в combobox.Если закрыть программу, а затем запустить по новой, результат будет налицо - в выпадающем списке добавилсяновый(е) элемент(ы).Подскажите, как сделать обновление комбо непосредственнопосле редактирования?Refresh не помогаетСпасибо заранее
10 ответов

Вызови процедуру загрузки итемов комбобокса непосредственно после редактирования...


а что за процедура?


Avada, О как.... ну это там где должно быть что нить вроде ComboBox1.Items.Add('бда-бла-бла').... Код покажи...


вот форм криэйтprocedure TForm1.FormCreate(Sender: TObject);vars: string;i, j: integer;begin// добавить в выпадающий список пункт"блабла"// теперь открываем хмл документXMLDocument1.LoadFromFile('index.xml');// и заносим в список названия блаблаXMLDocument1.Active := true;j := XMLDocument1.DocumentElement.ChildNodes.Count;i := 0;while i <> j dobegins := VarToStr(XMLDocument1.DocumentElement.ChildNodes[i].Attributes['name']);ComboBox1.Items.Add(s);inc(i);end;вот само редактирование, кликprocedure TForm1.Button1Click(Sender: TObject);vari, j: integer;s: string;begin  if ComboBox1.Text = 'Создать ' then  begin  XMLDocument1.LoadFromFile('index.xml');  XMLDocument1.Active := true;  XMLDocument1.DocumentElement.AddChild('group');  stringgrid1.Enabled := true;  i := XMLDocument1.DocumentElement.ChildNodes.Count;  XMLDocument1.DocumentElement.ChildNodes[i-1].Attributes['name'] := edit1.text;  XMLDocument1.DocumentElement.ChildNodes[i-1].Attributes['form-master'] := edit2.Text;  XMLDocument1.DocumentElement.ChildNodes[i-1].Text := #13;  XMLDocument1.SaveToFile('index.xml');  XMLDocument1.Active := false;  end


Avada, ну так и вызови свои Add еще раз...


Торможу, сказывается недосыпание)исправил предыдущее сообщение


Используйте теги кода. В конце выполнения клика добавь вызов FormCreate
procedure TForm1.Button1Click(Sender: TObject);vari, j: integer;s: string;begin  if ComboBox1.Text = 'Создать ' then  begin    XMLDocument1.LoadFromFile('index.xml');    XMLDocument1.Active := true;    XMLDocument1.DocumentElement.AddChild('group');    stringgrid1.Enabled := true;    i := XMLDocument1.DocumentElement.ChildNodes.Count;    XMLDocument1.DocumentElement.ChildNodes[i-1].Attributes['name'] := edit1.text;    XMLDocument1.DocumentElement.ChildNodes[i-1].Attributes['form-master'] := edit2.Text;    XMLDocument1.DocumentElement.ChildNodes[i-1].Text := #13;    XMLDocument1.SaveToFile('index.xml');    XMLDocument1.Active := false;  end;  FormCreate(Sender);end;


спасибо вам большое!была еще проблема с дублированием элементов списка,т.е. к текущим добавлялись ниже их копии + свежедобавленное.поставил проверку чтобы если есть такой элемент, его не ставить,а сначала в тупик поставило.Задача решена!


поставил проверку чтобы если есть такой элемент, его не ставить,
А не проще ComboBox1.Items.Clear сделать и не морочиться с проверками? 
procedure TForm1.FormCreate(Sender: TObject);vars: string;i, j: integer;begin  // добавить в выпадающий список пункт"блабла"  // теперь открываем хмл документ  XMLDocument1.LoadFromFile('index.xml');  // и заносим в список названия блабла  XMLDocument1.Active := true;  j := XMLDocument1.DocumentElement.ChildNodes.Count;  i := 0;  ComboBox1.Items.Clear; //<-----  while i <> j do begin     s := VarToStr(XMLDocument1.DocumentElement.ChildNodes[i].Attributes['name']);     ComboBox1.Items.Add(s);     inc(i);  end;end;


в моем случае нет, т.к. значения фиксированные, стандартные пункты "создать" и "удалить"это после них уже все вводится