Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: DBGrid- und TLabel-Anzeige nicht identisch

  Alt 31. Mär 2006, 10:33
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
  Mit Zitat antworten Zitat