ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


Tips >   

Edit に入力された文字列の履歴を保持

更新 : 2009/10/05

 



解説:
開いたファイルの履歴を保持しておくアプリケーションはよく見かけます。
文字列の入力支援としては、 ComboBox などで文字列を保持しておくことがあります。

ここでは、ちょっと変わった例として Edit に代入した文字列を履歴として利用してみます。


使用例:
例では、Edit に代入した文字列を記録して、下矢印キーを押下することで、履歴として表示させています。

コンポーネントは、 Edit と Button を適当に配置してください。

ヘッダーファイルに以下の変数を宣言しておきます。
文字列を格納する配列の要素数は、適当に設定してありますので、適宜変えてください。
    int count;
    int hold;
    AnsiString str[10];

コンストラクタで count と hold を初期化します。

Button1 の OnClick は、Edit1 に代入された文字列を str 変数に記録しています。
count と hold の数を合わせておきます。
hold は次の用意にひとつ進めておきます。

OnKeyUp で下矢印キーが押下されたときの処理を記述します。
まず記録された数を超えるようであれば先頭に戻します。それ以外は現在位置からひとつ進めて文字列を表示させます。

ここでは下矢印キーだけの対応ですが、上矢印にも対応させてみてください。

//-------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
    count = 0;
    hold = 0;
}
//-------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    str[hold] = Edit1->Text;
    count = hold;
    hold++;
}
//-------------------------------------------------------------------
void __fastcall TForm1::Edit1KeyUp(TObject *Sender, WORD &Key,
TShiftState Shift)
{
    if (Key == VK_DOWN) {
        if (count == hold - 1) count = -1;
        count++;
        Edit1->Text = str[count];
    }
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.