combobox アイテム追加

解決


優奈  2010-01-24 20:20:35  No: 37242  IP: 192.*.*.*

フォーム上でcomboboxのアイテムを追加できるようにしたいと思っています。

たとえば、1つTEDITを用意しておいて、そこにcomboboxに追加したいアイテムの内容を入力、そしてボタンをクリックすると、新しくcomboboxにアイテムが追加されるというものです。

やり方が分からず困っています。ご存知のかたいますか?


delphi version6です

編集 削除
igy  2010-01-24 20:51:33  No: 37243  IP: 192.*.*.*

ボタンのクリックイベントで、
コンボボックスのItemsプロパティのAddメソッドで追加するのはいかがですか?

編集 削除
KHE00221  2010-01-24 23:43:11  No: 37244  IP: 192.*.*.*

こんな感じ?

procedure TForm3.ComboBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if Key = 13 then
    begin
      if ComboBox1.Items.IndexOf(ComboBox1.Text) = -1 then
      begin
        ComboBox1.Items.Add(ComboBox1.Text)
      end;
    end;
end;

編集 削除
HOta  2010-01-25 07:16:09  No: 37245  IP: 192.*.*.*

ボタンを押した場合ですね。

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Edit1.Text <> '' then
    ComboBox1.Items.Add(Edit1.Text);
end;

編集 削除
優奈  2010-02-03 20:48:17  No: 37246  IP: 192.*.*.*

ありがとうございます。早速実行しましたら、itemをcomboboxに追加することはできたのですが、一度プログラムを閉じると、リストの内容が消えてしまいます。comboboxのプロパティのTStringのところに、書き込むと同じように、プログラムが終了しても、打ち込んだitemがなくならない方法はないのでしょうか?(以下が、私が書いたコードです。deleteボタンで、itemが消せるようにしました)

procedure TForm3.ComboBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if Key = 13 then
    begin
      if ComboBox1.Items.IndexOf(ComboBox1.Text) = -1 then
      begin
        ComboBox1.Items.Add(ComboBox1.Text)
      end;
    end;
    if Key = VK_DELETE then
      begin
       ComboBox1.Items.Delete(ComboBox1.itemindex)
      end;
end;

編集 削除
HOta  2010-02-03 21:13:43  No: 37247  IP: 192.*.*.*

FormのCloseでTextに保存しておいて、Createで読み込みます。

procedure Form1.FormCreate(Sender: TObject);
begin
  if FileExist('hogehoge.txt') then
    ComboBox1.Items.Loadfromfile('hogehoge.txt')
  else
    ComboBox1.Items.Clear;
end;

procedure Form1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if ComboBox1.Items.Count > 0 then
    ComboBox1.Items.Savetofile('hogehoge.txt');
end;

他には、データーベースに保存するとか、いろいろ方法はあります。
調べてください。

編集 削除
優奈  2010-02-04 23:13:24  No: 37248  IP: 192.*.*.*

テキストファイルにセーブする方法で使用いたしました。いろいろとありがとうございました。

編集 削除