Laboratory of Mobile Agricultural Chemicals Searcher
携帯農薬検索実験室

研究会

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
11 / 114 ツリー <前へ | 次へ>

〔974〕ACFinder 090801test版 kabe (09/08/01 22:54)

〔1014〕Re:KeyUp 時のみ表示 Hidemi Oya (09/08/13 18:54)

〔1014〕Re:KeyUp 時のみ表示
 Hidemi Oya WEB  (09/08/13 18:54)

引用なし
   >Selected 変数を初期化しなくてすむので新たなバグを生みにくいですが
 すみません、寝ぼけてたようです(^_^;)。FList1Selected は、同じアイテムが選択されたときに表示ルーチンを実行しないために設定してるので、こちらの方法でも必要です。

//Form の private に、リストボックスの数だけ下記の2行を追加。
FList1KeyDown: boolean;
FList1Selected: integer; // リスト更新時に -1 に設定すること

// ListBox1 の OnKeyUp イベント処理
procedure TForm1.ListBox1KeyUp(...);
begin
FList1KeyDown := false;
ListBox1Click(Sender);
end;

// ListBox1 の OnKeyDown イベント処理
procedure TForm1.ListBox1KeyDown(...);
begin
FList1KeyDown := true;
end;

// ListBox1 の OnClick イベント処理
procedure TForm1.ListBox1Click(Sender: TObject);
begin
// KeyDown 時は無処理
if FList1KeyDown then Exit;
// 同じアイテムが選択された場合は無処理
if ListBox1.ItemIndex = FList1Selected then Exit;
(* ここに表示処理 *)
FList1Selectd := ListBox1.ItemIndex; // 現在の表示アイテムを保存
end;

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
11 / 114 ツリー <前へ | 次へ>
ページ:  ┃  記事番号:   
(SS)C-BOARD vv3.8 is Free.