初めまして、初心者でわからなくて困っています。
ComboBoxを使って追加入力したものがきちんとできているか
確かめるためにメッセージボックスとラベルを使っているのですが、
始めからItemで記述したものに関してはきちんと表示されるのですが
追加入力したものでは、最初の1文字しか表示されません。
色々とオブジェクトインスペクタをいじっているのですが、一向にらちがあきません。どこを設定しなおせばきちんと表示されるのでしょうか?識者の方いらっしゃればお願いします。プログラムは以下のようにしています。
procedure TForm1.ComboBox1Change(Sender: TObject);
begin if ComboBox1.ItemIndex = 0 then SAM := ComboBox1.Text; //ここに入力したいのです Itemは’-------’と入力しています。
if ComboBox1.ItemIndex = 1 then SAM := 'Au';
if ComboBox1.ItemIndex = 2 then SAM := 'HOPG';
if ComboBox1.ItemIndex = 3 then SAM := 'DFU';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin MessageDlg(SAM,mtInformation,[mbOK],0);
Label1.Caption := SAM;
end;
「ツジ」ネエネエ、ComboBoxに入力した文字をチェックしたらオカスイんだって。
「カゴ」モー、ツジちゃんたらオカシ食べ過ぎよ。モームスじゃなくて牛(モー)娘じゃん。
「ツジ」そんなさぶい駄洒落言うのダジャレ〜?
「裕子」もー、二人ともふざけとらんと、ちゃんと答えてあげな失礼やろ。
「ツジ」だってぇアタシ指揮者じゃないもん♪って、これもさぶすぎ〜(^^ゞ
「カゴ」ネエ、ComboBoxに入力した文字列の Indexって「0」なの?
「ツジ」え〜?違うよ〜。「-1」じゃん♪
「裕子」そやな。入力した文字列はまだ Add しとらんで、ItemIndexが「-1」ちゅうわけや。んで、こないなふうに直したら確かめられるンちゃうか?
var
SAM : string;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
case ComboBox1.ItemIndex of
-1: SAM := ComboBox1.Text;
0: SAM := '-------';
1: SAM := 'Au';
2: SAM := 'HOPG';
3: SAM := 'DFU';
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
MessageDlg(SAM, mtInformation, [mbOK], 0);
Label1.Caption := SAM;
end;
なるほど、できました!ありがとうございます。
モームスさん最高です!
ツイート | ![]() |