こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

C++Builder6.0 Memoの表示内容を1つのButtonをクリックごとに表示内容を変える

Form上のMemoコンポーネントにButtonを1度クリックすると

Memo1->Lines->LoadFromFile->(\"a.txt\");

a.txtをMemoに表示し、(ここまでは表示できています)

同じButtonをクリック(2回目)すると

a.txtとは違う内容をLoadFromFileを使って表示したいのですが、どのように表記したらよいのでしょうか。

ちなみにクリック3回目も違う内容の.txtを読み込みたいと思っているのですが…

アドバイスございましたら宜しくお願いします。

投稿日時 - 2005-01-21 13:56:17

QNo.1178717

すぐに回答ほしいです

質問者が選んだベストアンサー

void __fastcall TForm1::Button1Click(TObject *Sender)
{
static int cnt = 0;
switch(cnt) {
case 0:
Memo1->Lines->LoadFromFile("a.txt");
break;
case 1:
Memo1->Lines->LoadFromFile("b.txt");
break;
case 2:
Memo1->Lines->LoadFromFile("c.txt");
break;
}
cnt = (cnt + 1) % 3;
}

投稿日時 - 2005-01-21 17:05:10

ANo.4

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

void __fastcall TForm1::Button1Click(TObject *Sender)
{
static int cnt = 0;
char fname[][10] = {"a.txt", "b.txt", "c.txt"};
Memo1->Lines->LoadFromFile(fname[cnt++ % 3]);
}

投稿日時 - 2005-01-21 17:21:22

お礼

#4の御礼もご一緒にさせていただきます。

私の考えと、それよりもっと短い表現の両方から書いて下さり、ご親切にありがとうございました。

以前にも私の質問にyasuchさんがお答えしくれたのをおぼえております。

こんな初心者にもかかわらず、お答えを下さり、ありがとうございます。
大変参考になりました。

投稿日時 - 2005-01-22 14:58:41

ANo.3

> 1回目はa.txt
> 2回目はb.txt
> を読みこむということがSwitch~Caseでできないかなと私が考えたまでです。

…なにが問題なのかわからんです。

const char* files[N] = { "a.txt", "b.txt", ... };
int count; // 0..N-1 の範囲
を用意し、ボタンが押されるたびに ++count して
files[count] を LoadFromFile に与えればいいと思うけど。

投稿日時 - 2005-01-21 15:43:16

お礼

お返事ありがとうございます。

私の知識の乏しさから、お話が上手くできなかったみたいですみませんでした。お答えありがとうございました。

投稿日時 - 2005-01-22 14:54:52

ANo.2

> ButtonのClickをカウントするなんてことは可能でしょうか。

…何が問題なのかしら? カウンタとなる変数を用意して、ボタンが押されるたびにインクリメントすればいい。

投稿日時 - 2005-01-21 15:09:04

お礼

Buttonをカウントすることによって

1回目はa.txt
2回目はb.txt

を読みこむということがSwitch~Caseでできないかなと私が考えたまでです。

まったく初心者なものですみません…。

参考書にLoadFromFileを見つけたのですが、

epistemeさんのはじめにおっしゃった文字列に置き換えるというのを、よろしければ教えて頂けませんか。

ネットでもヘルプ読んでも書き方が理解できなくて…
すみません。具体的に書いて頂けたらありがたいです。

投稿日時 - 2005-01-21 15:26:19

ANo.1

"a.txt"改め適当な文字列型の変数にしておいて、クリックされるたびにその内容を書き換えれば。

投稿日時 - 2005-01-21 14:21:57

お礼

お早くお返事ありがとうございます。

>クリックされるたびにその内容を書き換えれば。

変数の内容はどのように書けばいいのでしょうか。


私が考えた案ではButtonClickをカウントして、Switch~Caseでできないかと考えたのですが、ButtonのClickをカウントするなんてことは可能でしょうか。

投稿日時 - 2005-01-21 14:56:42

あなたにオススメの質問