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; |