Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3
  Alt 1. Jan 2003, 20:37
Hi,

ich habe Forms mit 3 Seiten voler Datenfeldern. Dann müßte man aber eine globale Routine haben, die alle Felder automatisch abcheckt. Würde mich mal interessieren, wie das geht. Aber es geht einfacher : Die DataSets haben eine Funktion "modified" :

Code:
procedure Form1.Button2Click(Sender: TObject);
begin
  IF NOT LiefModul.LiefDS.IsEmpty THEN BEGIN
showmessage ('LJLÖK');
    IF LiefModul.LiefDS.Modified THEN BEGIN
      if MessageDlg('Soll der Datensatz gespeichert werden ?',
        mtInformation, [mbYes, mbNo, mbCancel], 0) = mrYes then begin
        LiefModul.LiefDS.post;
        LiefModul.TransAction.Commit;
      END
      ELSE
        LiefModul.Transaction.Rollback;
    END
    ELSE
      LiefModul.Transaction.Rollback;
  END;
  LiefStamm.FormShow (Sender);
end;
Die arbeitet intern anscheinend wie die meisten Editoren. Bei einer Änderung wird ein Flag gesetzt. Was aber den Nachteil hat, beim rückgängig machen, ist der Datensatz immer noch als geändert gekennzeichnet. Erkläre mir aber mal einer wieso bei obigem Programm das ganze Programm verlassen wird ? Steht die ShowMessage (ziemlich am Anfang) im Quelltext, wird auch das FormShow am Schluß ausgeführt, dann habe ich wieder eine leere Form. Mache ich es weg, wird das Programm beendet. Wie immer Da hat man doch tatsächlich viel schneller als man dachte ein Problem gelöst und die Lösung verursacht das nächste.

Gruß
Hansa

hier ist noch das FormShow (mache ich den Showmessage Kommentar weg, ja dann geht es auch ):
Code:
procedure Form1.FormShow(Sender: TObject);
begin
// showmessage ('2Ä');
  Edit1.Enabled := true;
  Edit1.Text := '';
  Edit1.SetFocus;
  Button1.Enabled := true;
  Button2.Enabled := true;
end;
  Mit Zitat antworten Zitat