Ensaya lo siguiente para la primera pregunta, para la segunda pregunta como dice David es necesario conocer mas detalles para poderte ayudar.
Código Delphi
[-]unit MiUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, ExtCtrls, DBCtrls, ComCtrls, StdCtrls, Mask;
type
TForm1 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
Table1Fecha: TDateTimeField;
DateTimePicker1: TDateTimePicker;
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure DataSource1UpdateData(Sender: TObject);
procedure DateTimePicker1Change(Sender: TObject);
procedure DateTimePicker1Exit(Sender: TObject);
private
FCambiandoFecha: Boolean;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
if not FCambiandofecha then
try
FCambiandoFecha := True;
DateTimePicker1.Date := Table1Fecha.Value;
finally
FCambiandoFecha := False;
end;
end;
procedure TForm1.DataSource1UpdateData(Sender: TObject);
begin
Table1Fecha.Value := DateTimePicker1.Date;
end;
procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
if not FCambiandoFecha then
try
FCambiandoFecha := True;
DataSource1.Edit;
finally
FCambiandoFecha := False;
end;
end;
procedure TForm1.DateTimePicker1Exit(Sender: TObject);
begin
if dataSource1.State in dsEditModes then
Table1.UpdateRecord;
end;
end.