ComboBox??

解決


しろうと  2003-08-08 18:49:43  No: 4369

ホント、初歩的なことで恥ずかしいのですが
ComboBoxを使って、プログラムを組んだのですが
プログラムを実行して、ComboBoxに何かを表示させたいときに
a:=copy(ComboBox1.Text,b,c)
のようにすればよいのはわかったのですが
上のbとcが何を意味してるのかわかりません。。。
多分、cはバイト数を意味してるのかと思うのですが
どなたか、ご指導お願いします。。


takk  2003-08-08 19:06:28  No: 4370

ヘルプは見ましたか?

S は,文字列型または動的配列型の式です。Index と Count は整数型の式です。Copy 関数は,S[Index] から Count 個の文字または要素の入った部分文字列または部分配列を返します。
Index が S より長い場合,Copy は空の文字列または要素を返します。
コピーできる文字または要素より多い値が Count に指定されている場合,S[Index] から S の終わりまでの文字または配列要素が返されます。

だそうです。

> プログラムを実行して、ComboBoxに何かを表示させたいときに
> a:=copy(ComboBox1.Text,b,c)
> のようにすればよいのはわかったのですが

??
これでは変数aにComboBox1.Textの文字列の一部がコピーされるだけですよ。

表示させたいなら
ComboBox1.Text := '文字列';
とかだと思いますが。


にしの  2003-08-08 19:09:50  No: 4371

a, b, cの変数の型がわからないので、なんとも言えませんが、少なくとも、
a:=copy(ComboBox1.Text,b,c)
ではComboBoxに表示できません。

Delphiでは、IDEでTComboBoxを貼り付け、オブジェクトインスペクタでItemsプロパティに値を入れれば表示はできます。
まずはコードを書かずに、どのプロパティがどういう働きをしているか、ヘルプを見ながら確認してみてください。
Copyに関しても、ヘルプを見れば引数の意味がわかります。
ヘルプを活用しましょう。


しろうと  2003-08-08 19:43:41  No: 4372

説明不足ですいません。。。
以下のようなソートを書きました。
procedure TForm1.FormActive(Sender:TObject);
begin
Combobox1.Item.Add('+');
Combobox1.Item.Add('-');
Combobox1.Item.Add('*');
Combobox1.Item.Add('÷');
end;

procedure TForm1.Button1Click(Sender:TObject);
Var
 a,b,c: interger;
 s:string;
begin
 a:=StrToInt(Edit1.Text);
 b:=StrToInt(Edit2.Text);
 s:=copy(ComboBox1.Text,1,2);
if s='+' then
 c:=a+b
else if s='-' then
 c:=a-b
else if s='*' then
 c:=a*b
else
 c:=a div b;
 Edit3.Text:=IntToStr(c);
 Form1.ActiveComtorol:=Edit3;
end;


Halbow  2003-08-08 20:10:07  No: 4373

Halbow です。

普通は ItemIndex でどの項目が選択されているのか分かりますので

case ComboBox1.ItemIndex of
  0: c := a+b;
  1: c := a-b;
....

のように書くのではないでしょうか。


しろうと  2003-08-08 20:51:53  No: 4374

ありがとうございます。。
たいかに、cas文のほうがわかりやすいです!!
上のソートの 
 s:=copy(ComboBox1.Text,1,2);
という文の  1.2は何を意味してるのでしょうか??


  2003-08-08 21:23:00  No: 4375

>cas文のほうがわかりやすいです
cas文などありません
(caseです)

>上のソートの 
ソート??
並び替えですか。

>s:=copy(ComboBox1.Text,1,2);
>という文の  1.2は何を意味してるのでしょうか??
にしのさんが答えてますよ


OOHirosi  2003-08-20 04:04:52  No: 4376

>s:=copy(ComboBox1.Text,1,2);

の式はまずComboBox1.TextでComboBox1の現在選択中の文字列を表します。
この場合は、'+'・'-'・'*'・'÷'のいずれかになります。が、あらかじめ選択したかどうかも調べてください。これは、ItemIndexが0以上であるかどうかです。
選択した文字列は全て2バイトですから1番目から2バイトということになり、一文字を表しています。この場合は、Halbowさんの方法のほうがはるかにスマートですね。


しろうと  2003-08-20 17:35:21  No: 4377

解決しました。。
みなさま、わかりやすい説明ありがとうございました。。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加