TBucket class について

解決


naao  2006-11-06 13:59:37  No: 23756  IP: 192.*.*.*

使いこなせばきっと便利なものに違いないという思い込みから
TBucket classについての解説記事を探しています。
検索ではあまりかかってきません。
ご存知の方おられましたら教えてください。

編集 削除
なんかやだな  2006-11-06 14:11:06  No: 23757  IP: 192.*.*.*

そのclessについては思い当たりませんが、どんなものなのでしょう。
それよりも「おられましたら」がイヤッ。「居る」じゃ謙譲語だからこういう場合には「いらっしゃいましたら」が正しい日本語。

編集 削除
えーとね  2006-11-06 14:26:28  No: 23758  IP: 192.*.*.*

たしかハッシュ・リストだと思います。

編集 削除
えーとね  2006-11-06 16:49:12  No: 23759  IP: 192.*.*.*

> 使いこなせばきっと便利なものに違いないという思い込みから
内部のアルゴリズムが良くないので、避けられているようです。

> 解説記事を探しています。
意味不明なサンプルですが。

uses
  contnrs;

var
  ob: TObjectBucketList;
  res : Pointer;

  procedure FocusControlWithCombo(AInfo, AItem, AData: Pointer; out AContinue: Boolean);
  begin
    if TObject(AData) is TComboBox then
    begin
      TWinControl(AItem).SetFocus;
      AContinue := false;
  end
  else
    AContinue := true;
  end;
begin
  ohash := TObjectBucketList.Create(TBucketListSizes(2));
  try
    ob.Add(Memo1, Label3);
    ob.Add(Edit1, Label1);
    ob.Add(Edit2, ComboBox1);

    ob.ForEach(@FocusControlWithCombo);

    if ob.Find(Edit1, res) then
      if TObject(res) is TLabel then
        TLabel(res).Caption := 'Found';
  finally
    FreeAndNil(ob);
  end;
end;

編集 削除
えーとね  2006-11-06 16:54:24  No: 23760  IP: 192.*.*.*

> ohash := TObjectBucketList.Create(TBucketListSizes(2));
ob := TObjectBucketList.Create(bl4);
に変えてください。

編集 削除
naao  2006-11-07 13:04:09  No: 23761  IP: 192.*.*.*

えーとね様ありがとうございました。

編集 削除