Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Combobox


Автор: kwotz 21.7.2007, 16:21
У меня вопрос по Combobox. При активации формы он заполняется значениями из БД. Все хорошо, но после следующей активации формы он заново заполняется значениями из БД. Проблема в следующем: как сделать так, чтобы заполнение происходило с самого начала, а не дополняла ранее заполненные значения?
Процедура: 
Combobox.Items.Add
Как удалить значения из бокса (все значения, оставив только «-1»)?

Автор: Yanis 21.7.2007, 16:22
Вызвать
Код
ComboBox.Clear
очевидно.

Автор: Rodman 21.7.2007, 16:40
Цитата(kwotz @  21.7.2007,  15:21 Найти цитируемый пост)
как сделать так, чтобы заполнение происходило с самого начала,

повесить заполнение кобобокса не на активацию формы, а на ее создание!

Автор: ivan219 22.7.2007, 11:09
Или проверять ComboBox перед заполнением.

Автор: Telepyz 22.7.2007, 15:46
kwotz, Вот заполнение...
Код

procedure TForm1.FormCreate(Sender: TObject);
begin
if ComboBox1.Items.Count = 0 then
 begin
  //Заполнение из БД
 end;
end;


вот удалить все...
Код

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
 for i:=ComboBox1.Items.Count downto 0 do
  ComboBox1.Items.Delete(i);
end;

насчет "-1" не знаю подумать нада 
а удалить определенную запись 
Код

  ComboBox1.Items.Delete(i); // вместо i пишешь номер записи не забудь что нумерация начинается с нуля

Автор: ALeXandrK 22.7.2007, 16:48
Telepyz: А зачем такое садо-маза устраивать? smile 

Код

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
 for i:=ComboBox1.Items.Count downto 0 do
  ComboBox1.Items.Delete(i);
end;


Если уже предложили красивый и правильный вариант:
Код

ComboBox.Clear


На счет: 
Цитата
Как удалить значения из бокса (все значения, оставив только «-1»)?


Что значит оставив только "-1"?  smile  "-1" введен спициально для обозначения того, что в
списке ничего нет. Ведь 0 использовать нильзя, т.к. в Pascal это номер 1го элемента!  smile 

P.s.: А чтобы не возникало подобных вопросов, нужно просто спроектировать заранее то,
что собираешься писать (блок схемы, UML и собственная память тебе в помощь smile ).
Тут больше ошибка произошла не из-за того, что не знаю как, а из-за того,
что собственный код ты себе не представляешь во времени(ну это мне так кажется smile ).

Удачи smile 

Автор: Telepyz 22.7.2007, 20:20
ALeXandrK, Я чет ступил, эт удаление для CheckListBox smile 

Автор: MetalFan 24.7.2007, 07:34
Цитата(Telepyz @  22.7.2007,  20:20 Найти цитируемый пост)
эт удаление для CheckListBox

у CheckListBox тоже есть метод Clear  smile 

Автор: Telepyz 24.7.2007, 09:04
Не, вот код он удаляет выбранные, из него я сделал тот
Код

procedure TForm1.DelClick(Sender: TObject);
begin 
 for i:=CheckListBox.Items.Count-1 downto 0 do
  begin
   if CheckListBox.Checked[i] then  CheckListBox.Items.Delete(i);
  end;
end;




Извените за офтоп

Автор: ALeXandrK 24.7.2007, 10:47
 smile 
Telepyz: Все-равно городишь лишнее.

Вот удаление выбранных:
Код

chklst1.DeleteSelected;


Вот очистка списка:
Код

chklst1.Clear;


 smile Help открывает много возможностей компонентов! Пользуйся им smile 


Автор: Telepyz 24.7.2007, 13:51
ALeXandrK, Да, Help хорошая штука, был бы он на русском, былоб ваабще весело, а то переводчики коряво переводят...
Хотя и так все пронятно.. smile  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)