AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBGrid- und TLabel-Anzeige nicht identisch
Thema durchsuchen
Ansicht
Themen-Optionen

DBGrid- und TLabel-Anzeige nicht identisch

Ein Thema von LOMBI · begonnen am 29. Mär 2006 · letzter Beitrag vom 31. Mär 2006
Antwort Antwort
Seite 2 von 2     12   
LOMBI
(Gast)

n/a Beiträge
 
#11

Re: DBGrid- und TLabel-Anzeige nicht identisch

  Alt 31. Mär 2006, 07:03
Guten Morgen,

habe das schon wie von marabu empfohlen auf OnAfterScroll geändert.
Aber was ist mit meinen Codes Insert,Edit,Speichern von gestern?
Da scheint etwas nicht in Ordnung zu sein.

Gruß
Lombi
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: DBGrid- und TLabel-Anzeige nicht identisch

  Alt 31. Mär 2006, 07:13
Ich vermut mal, das hier der Fehler liegt, da hier was zu fehlen scheint:

Du versuchst in .BtnSpeichernClick was in die Datenbank zurückzuschhreiben hat aber in Table1AfterScroll nur die Werte des aktuellen DS in die Editfelder kopiert. Wenn du nun Änderungen zurückschreiben willst, mußt du zuerst die werte der Edits wieder in das DS zurückschreiben.
Markus Kinzler
  Mit Zitat antworten Zitat
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
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz