Показать сообщение отдельно
  #7  
Старый 29.05.2010, 12:47
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Привет. Добрался до форума. Продолжаем разговор.
Значит мы остановились на том, что надо организовать совместную работу базы и DateTimePicker.
Поскольку компонент не оснащен методами автоматического получения/изменения данных в таблице, значит делать придется самому ручками.
1. Озаботимся тем, что-бы данные из текущей записи в таблице автоматом попадали в наш компонент DateTimePicker. Для этого в событиях AfterScroll и AfterPost для TAdoTable или TAdoQuery пропишем такой код:
Код:
procedure TForm1.AdoQuery1AfterScroll(DataSet: TDataSet);
begin
 if DataSet.State = dsBrowse
 then DateTimePicker1.DateTime := DataSet.FieldByName('MyDate').AsDateTime;
end;

procedure TForm1.AdoQuery1AfterPost(DataSet: TDataSet);
begin
 DateTimePicker1.DateTime := DataSet.FieldByName('MyDate').AsDateTime;
end;
2. Теперь надо сделать так, что-бы изменения в DateTimePicker вносились в БД. В событии OnChange для нашего DateTimePicker припишем такой код:
Код:
procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
 if AdoQuery1.FieldByName('MyDate').AsDateTime <> DateTimePicker1.DateTime
 then begin
      AdoQuery1.Edit;
      AdoQuery1.FieldByName('MyDate').AsDateTime := DateTimePicker1.DateTime;
      AdoQuery1.Post;
      end;
end;

Вот собственно и все.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием