フォーム上でcomboboxのアイテムを追加できるようにしたいと思っています。
たとえば、1つTEDITを用意しておいて、そこにcomboboxに追加したいアイテムの内容を入力、そしてボタンをクリックすると、新しくcomboboxにアイテムが追加されるというものです。
やり方が分からず困っています。ご存知のかたいますか?
delphi version6です
ボタンのクリックイベントで、
コンボボックスのItemsプロパティのAddメソッドで追加するのはいかがですか?
こんな感じ?
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;
ボタンを押した場合ですね。
procedure TForm1.Button1Click(Sender: TObject);
begin
if Edit1.Text <> '' then
ComboBox1.Items.Add(Edit1.Text);
end;
ありがとうございます。早速実行しましたら、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;
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;
他には、データーベースに保存するとか、いろいろ方法はあります。
調べてください。
テキストファイルにセーブする方法で使用いたしました。いろいろとありがとうございました。
ツイート | ![]() |