текущее сфокусированное поле TClientDataSet - PullRequest
1 голос
/ 06 января 2011

У меня есть ситуация, когда я должен разрешить пользователю обновить любое из 2 полей базы данных dbgrid (подключенной к CDS), сохраняя последнее введенное поле.Поэтому (после того, как пользователь введет данные), мне нужно получить текущий фокусированный элемент управления , чтобы я удалил предыдущие данные поля, если они есть.У меня также есть другие поля, кроме этих двух.

Настаивало не использовать какие-либо события, связанные с сеткой, я должен использовать только событие CDS, чтобы достичь этого.

Заранее спасибо, Виджай.

1 Ответ

4 голосов
/ 06 января 2011

Используйте событие поля OnChange и просто очистите другое значение поля, если оно есть:

Примерно так:

TForm1.cdsField1Change(Sender: TField);
begin
  if not Sender.IsNull then
    cdsField2.Clear;
end;

TForm1.cdsField2Change(Sender: TField);
begin
  if not Sender.IsNull then
    cdsField1.Clear;
end;
...