Hallo Lombi.
Ich vermute FAdrListe ist die Form mit der mittels DBGrid realisierten Listenansicht und FAdr ist die Form mit den Detailinformationen zu einem Datensatz. Vermutlich hast du das DBGrid auf ReadOnly gesetzt, um den Datensatz auf deine Weise bearbeiten zu können. Du benutzt das DBGrid dann nur zum verschieben des Satzzeigers. Für das Einfügen eines neuen Datensatzes hast du einen Button, wie für das Speichern.
Das Ändern eines Datensatzes über das klicken in eine Zelle zu beginnen halte ich für keine gute Idee. Ich verwende dazu oft ein Kontextmenü. In deiner Detailform könntest du eine Methode zum Bearbeiten des aktuellen Datensatzes bereit halten:
Delphi-Quellcode:
function TFAdr.UpdateRecord(ds: TDataSet): Boolean;
begin
CBAnrede.Text := ds['Anrede'];
EditName.Text := ds['Name'];
Result := ShowModal = mrOK;
if Result then
begin
ds.Edit;
ds['Anrede'] := CBAnrede.Text;
ds['Name'] := EditName.Text;
ds.Post;
end;
end;
Wenn du dann eine EditAction auf deiner Listenform hast, dann würde folgendes funktionieren:
Delphi-Quellcode:
procedure TFadrListe.EditAction(Sender: TObject);
begin
with TFadr.Create(nil) do
if UpdateRecord(TableAdr) then
TableAdr.Refresh;
end;
Getippt und nicht getestet.
Grüße vom marabu