DB対応コントロールの作成


PIO  2006-07-25 11:29:26  No: 22724

DBComboBoxから派生させ、内部から他のデータセットの項目を参照できるコン
ポーネントを作成したいのですが、プロパティがオブジェクトインスペクタで
上手く設定出来ません。

追加したコードは以下です。
private
 FDataLink: TFieldDataLink;
published
  property ListField: string read GetListField write SetListField;
  property ListSource: TDataSource read GetListSource write  SetListSource;

constructor XXX.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FDataLink := TFieldDataLink.Create;
  FDataLink.Control := Self;
end;

destructor XXX.Destroy;
begin
  FDataLink.Free;
  FDataLink := nil;
  inherited Destroy;
end;

function XXX.GetListField: string;
begin
  Result := FDataLink.FieldName;
end;

procedure XXX.SetListField(const Value: string);
begin
  FDataLink.FieldName := Value;
end;

function XXX.GetListSource: TDataSource;
begin
  Result := FDataLink.DataSource;
end;

procedure XXX.SetListSource(const Value: TDataSource);
begin
  FDataLink.DataSource := Value;
end;

ListSourceのプロパティはインスペクタ上で参照可能なデータソースが
コンボボックス内にリストアップされるのですが、ListFieldプロパティは
ListSource.DataSet内の項目がリストアップされません。
一般のDB対応コントロールのDataFieldプロパティの用にフィールドを
インスペクタ上で選択可能にするにはどのようにしたら良いのでしょうか?


HOta  2006-07-25 16:48:28  No: 22725

DbLookupComboBoxが同じ機能でありますが、これだとまずいのですか?


PIS  2006-07-25 19:46:23  No: 22726

>データセットの項目を参照できる
書き方がまずくて上手く伝わりませんでした。
DBComboBoxのItemsプロパティを他のデータセットから自動で取り込む様な
処理にしたいのです。
コンボボックスのアイテムから選択する場合と、コンボボックス上でテキスト
入力する場合と両方あるのでLookupComboBoxでは代用が出来ません。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加