DBLookUpComboについてですが、参照内容に意図とした内容が無い場合追加できるように参照元のテーブルの保守画面が開くようにしています。
(DBLookUpComboの横に、参照元テーブル保守画面を開くボタンをおいています。)
追加の場合は、参照元のテーブルの保守画面を閉じたあとで
DBLookUpComboのリストを開き選択するので、問題はありません。
が、DBLookUpComboで既に 何かを選択していた場合対応した 参照フィールドの値が、DBLookUpCombo.TEXTには表示されています。
例えば、'YUU' と表示されているとします。
現在選択してる状態で、参照元の保守画面を開き選択している項目を
'YUU'から 'YUU123'と変更し保守フォームを閉じたとき
DBLookUpComboの'YUUの'表示を、'YUU123'の最新に反映させるには
どうすれば 良いでしょうか。
(リスト展開すれば、ちゃんと反映していますが コンボのTEXTが変更前のまま)
色々試して、参照元テーブル保守フォームを閉じたあと
参照元テーブル.active := False
参照元テーブル.active := True
とすれば、反映しますが この様に一旦開きなおすしか方法は無いでしょうか?
(D7)
TDBLookupComboBox の Protected メンバに
KeyValueChanged メソッドがあるので、下記のような方法もあります。
type
TDBLookupComboBoxEx = class(TDBLookupComboBox);
procedure TForm1.Button1Click(Sender: TObject);
begin
TDBLookupComboBoxEx(DBLookupComboBox1).KeyValueChanged;
end;
Basserさん、教えていただいた方法で出来ました。
参照元変更後、画面上も変わりました。
参照元を、閉じて開くのは気持ちが悪いので
(問題があるのか、無いのか不明ですが?)
教えて頂いたように、KeyValueChangedを呼びたいと重います。
Basserさん、ありがとうございました。
訂正! 重います > 思います
編集 削除