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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обновление combobox после редактирования 
V
    Опции темы
Avada
Дата 24.11.2010, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет всем. Моя проблема заключается в следующем:
есть хмл-файл, в который я заношу некоторые данные и
затем часть этих данных заносится в combobox.

Если закрыть программу, а затем запустить по новой, 
результат будет налицо - в выпадающем списке добавился
новый(е) элемент(ы).

Подскажите, как сделать обновление комбо непосредственно
после редактирования?

Refresh не помогает

Спасибо заранее
PM MAIL   Вверх
~FoX~
Дата 24.11.2010, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

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



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


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Avada
Дата 24.11.2010, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а что за процедура?
PM MAIL   Вверх
~FoX~
Дата 24.11.2010, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

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



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


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Avada
Дата 24.11.2010, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



вот форм криэйт

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

вот само редактирование, клик

procedure TForm1.Button1Click(Sender: TObject);
var
i, 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 - 24.11.2010, 02:07
PM MAIL   Вверх
~FoX~
Дата 24.11.2010, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

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



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


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Avada
Дата 24.11.2010, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

Это сообщение отредактировал(а) Avada - 24.11.2010, 02:08
PM MAIL   Вверх
~FoX~
Дата 24.11.2010, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

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



Используйте теги кода. В конце выполнения клика добавь вызов FormCreate
Код

procedure TForm1.Button1Click(Sender: TObject);
var
i, 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;


Это сообщение отредактировал(а) ~FoX~ - 24.11.2010, 11:46


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Avada
Дата 24.11.2010, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо вам большое!

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

Задача решена!
PM MAIL   Вверх
~FoX~
Дата 24.11.2010, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

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



Цитата(Avada @  24.11.2010,  14:22 Найти цитируемый пост)
поставил проверку чтобы если есть такой элемент, его не ставить,

А не проще ComboBox1.Items.Clear сделать и не морочиться с проверками? 

Код

procedure TForm1.FormCreate(Sender: TObject);
var
s: 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;



--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Avada
Дата 24.11.2010, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



в моем случае нет, т.к. значения фиксированные, стандартные пункты "создать" и "удалить"
это после них уже все вводится
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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