コンボボックスの各Itemをクリックした時に、それぞれに対応するエディットを作成するには?


もり  2008-01-10 11:32:12  No: 29264  IP: 192.*.*.*

超初心者です。

Button1をクリックすると
コンボボックスにfor文で1〜100の値を入れるようにしています。
その後に、コンボボックス内の値をクリックすると、横に
配置している1つのエディットに入力ができ、さらにその数値を保持
しておいたまま、コンボボックスの別の値をクリックすると同エディットに
新しく入力が出来るといったプログラムが作成したいと思っています。
最終的には各値を使い、計算をしたいのです。
コンボボックス内の1つ1つのアイテムに対応したエディットの
作成は出来るのでしょうか?

どなたか助けてください、お願いいたします。

編集 削除
省リソース  2008-01-10 11:57:56  No: 29265  IP: 192.*.*.*

自動生成で100個の Editを作りたいってこと?
それはリソースのムダというもの。
TStringsまたは、TStringListを使いなさい。

編集 削除
または...  2008-01-10 16:55:30  No: 29266  IP: 192.*.*.*

要素数100の配列を用意してもいいね。
Editは、入力用に1個だけあればOK。

編集 削除
KHE00221  URL  2008-01-10 17:07:30  No: 29267  IP: 192.*.*.*

質問の答えにはなってないけど

こんな感じでどうかな?

procedure TForm10.FormCreate(Sender: TObject);
var
    I : Integer;
begin
    for I:=0 to 100 do
    begin
      ComboBox1.Items.AddObject(IntToStr(I),TObject(-1));
    end;
    ItemIndex := -1;
    Select := False;
end;

procedure TForm10.Button1Click(Sender: TObject);
var
    G,I,J : Integer;
begin
    G := 0;
    for I:=0 to ComboBox1.Items.Count -1 do
    begin
      J := Integer(ComboBox1.Items.Objects[I]);
      if J<>-1 then
      begin
        G := G + J;
      end;
    end;
    G := G + StrToIntDef(Edit1.Text,0);
    Label1.Caption := '合計は '+IntToStr(G);
end;

procedure TForm10.ComboBox1CloseUp(Sender: TObject);
begin
    if Select = True then
    begin
      ComboBox1.Items.Objects[ItemIndex] := TObject(StrToIntDef(Edit1.Text,-1));
    end;
    Edit1.Text := '';
    Select := False;
end;

procedure TForm10.ComboBox1Select(Sender: TObject);
begin
    ItemIndex := ComboBox1.ItemIndex;
    if Integer(ComboBox1.Items.Objects[ItemIndex]) <> -1 then
    begin
      Label1.Caption := '既に入力されています';
    end;
    Select := True;
end;

編集 削除
うん...  2008-01-10 17:16:09  No: 29268  IP: 192.*.*.*

もし、入力する値が整数値限定なら、この↑Objects利用でいいね。

編集 削除