DBEditに値を代入する

 DBEditなどの DataControlに値を代入してもフォーカスがそのコントロールに来た時点で代入前の状態に戻ってしまいます。こういう場合はそのコントロールに代入するのではなく、そのコントロールに割り当てられているフィールドに代入をします。
 なお、データコントロールでデータセットを編集する場合は RequestLiveプロパティが Trueでないといけません。

■ DBEditに値を直接代入する例
  procedure TForm1.Button1Click(Sender: TObject);
  begin
    Query1.Close;
    Query1.RequestLive    :=    True;
    Query1.Open;
    Query1.First;
    Query1.Edit;
    //値を代入
    //  ↓これだとDBEditにフォーカスが移ったときに内容が消えてしまう。  
    DBEdit1.Text            :=  'DELPHI';
    //  ↓こっちが正解
    DBEdit1.Field.AsString  :=  'DELPHI';
    //  ↓もしくはこう
    Query1.FieldByName('FIELDNAME').AsString  :=  'DELPHI';
  end;