16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:履歴保存ComboBox"
この発言は #00515 U10 さんの履歴保存ComboBox に対するコメントです
U10 さん、はじめまして。HATENA です。
添削というわけでは、ないですが同様な処理をしたことがありますので、
コメントさせていただきます。
保存する履歴の最大数を設定できるようにしました。
procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
var i: integer;
begin
If Key = Chr(Vk_Return) then begin //リターンキーが押されたら
i := ComboBox1.Items.IndexOf(ComboBox1.Text); //同じのがあるか検索
If i >= 0 Then begin //あったら
// ComboBox1.Items.Insert(0,ComboBox1.Text); //リストの最初に登録して
// ComboBox1.Items.Delete(i+1); //古いのを消す
{上の2行は Move を使えば1行ですみます。}
ComboBox1.Items.Move(i, 0); //一致したデータを先頭に移動
// ComboBox1.Text := ComboBox1.Items[0]; //テキストを書き直す
{IndexOf でデータは一致してますのでこの行は、なくてもいい気がしますが。}
end
Else //なければ
ComboBox1.Items.Insert(0,ComboBox1.Text); //リストの最初に登録する
{履歴の最大数の設定処理。}
if ComboBox1.Items.Count > 20 then //履歴が 20以上なら
ComboBox1.Items.Delete(20); //削除する
end;
end;
98/04/29(水) 03:43 HATENA(GFC03235@niftyserve.or.jp)
☆彡はてな倶楽部 http://www2s.biglobe.ne.jp/~hatena/
☆彡 ClipBase V1.61,NifRes32 V1.28 etc.公開中
☆彡 Delphiプログラミング入門講座 連載中 談話室あり
Original document by HATENA 氏 ID:(GFC03235)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|